chatsListUI function

dynamic chatsListUI(
  1. dynamic ref,
  2. String parentId,
  3. List<String> chats,
  4. int chatsLimit, {
  5. bool showOptions = false,
  6. bool showSuggestedMarkIfGiven = true,
})

Implementation

Widget chatsListUI(
  WidgetRef ref,
  String parentId,
  List<String> chats,
  int chatsLimit, {
  bool showOptions = false,
  bool showSuggestedMarkIfGiven = true,
}) {
  final suggestedId =
      ref.watch(suggestedIdsProvider(parentId)).valueOrNull ?? [];
  return ListView.builder(
    shrinkWrap: true,
    itemCount: chatsLimit,
    padding: EdgeInsets.zero,
    physics: const NeverScrollableScrollPhysics(),
    itemBuilder: (context, index) {
      final roomId = chats[index];
      return RoomCard(
        roomId: roomId,
        showParents: false,
        showSuggestedMark:
            showSuggestedMarkIfGiven && suggestedId.contains(roomId),
        onTap: () => goToChat(context, roomId),
        trailing: showOptions
            ? RoomHierarchyOptionsMenu(
                isSuggested: suggestedId.contains(roomId),
                childId: roomId,
                parentId: parentId,
              )
            : null,
      );
    },
  );
}