getItem method
- ChatItemId id
Returns a reactive ChatItem by the provided id
.
Implementation
FutureOr<Rx<ChatItem>?> getItem(ChatItemId id) {
Rx<ChatItem>? item;
item = chat?.messages.firstWhereOrNull((e) => e.value.id == id);
item ??=
_fragments
.firstWhereOrNull((e) => e.items.keys.contains(id))
?.items[id];
if (item == null) {
final Future<Rx<ChatItem>?>? future = chat?.single(id).then((
fragment,
) async {
if (fragment != null) {
await fragment.around();
_fragments.add(fragment);
return fragment.items.values.firstOrNull;
}
return null;
});
return future;
}
return item;
}