chatTypingEventProvider top-level property

dynamic chatTypingEventProvider
final

Implementation

final chatTypingEventProvider = StreamProvider.autoDispose
    .family<List<types.User>, String>((ref, roomId) async* {
  final client = ref.watch(alwaysClientProvider);
  final userId = ref.watch(myUserIdStrProvider);
  yield [];
  await for (final event in client.subscribeToTypingEventStream(roomId)) {
    yield event
        .userIds()
        .toList()
        .map((i) => i.toString())
        .where((id) => id != userId) // remove our User ID
        .map(
          (id) => types.User(
            id: id,
            firstName: id,
          ),
        )
        .toList();
  }
});