diff --git a/lib/pages/chat_list/chat_list_body.dart b/lib/pages/chat_list/chat_list_body.dart index bdc282486..f0c12dda6 100644 --- a/lib/pages/chat_list/chat_list_body.dart +++ b/lib/pages/chat_list/chat_list_body.dart @@ -1,6 +1,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:badges/badges.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; @@ -17,6 +18,7 @@ import 'package:fluffychat/utils/stream_extension.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/hover_builder.dart'; import 'package:fluffychat/widgets/public_room_bottom_sheet.dart'; +import 'package:fluffychat/widgets/unread_rooms_badge.dart'; import '../../config/themes.dart'; import '../../widgets/matrix.dart'; @@ -214,34 +216,46 @@ class ChatListViewBody extends StatelessWidget { ), onTap: () => controller.setActiveFilter(filter), - child: Container( - padding: const EdgeInsets.symmetric( - horizontal: 12, - vertical: 6, + // #Pangea + child: UnreadRoomsBadge( + filter: (_) => + filter == ActiveFilter.unread, + badgePosition: BadgePosition.topEnd( + top: -12, + end: -6, ), - decoration: BoxDecoration( - color: filter == - controller.activeFilter - ? theme.colorScheme.primary - : theme.colorScheme - .secondaryContainer, - borderRadius: BorderRadius.circular( - AppConfig.borderRadius, + // Pangea# + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 12, + vertical: 6, ), - ), - alignment: Alignment.center, - child: Text( - filter.toLocalizedString(context), - style: TextStyle( - fontWeight: filter == - controller.activeFilter - ? FontWeight.bold - : FontWeight.normal, + decoration: BoxDecoration( color: filter == controller.activeFilter - ? theme.colorScheme.onPrimary + ? theme.colorScheme.primary : theme.colorScheme - .onSecondaryContainer, + .secondaryContainer, + borderRadius: + BorderRadius.circular( + AppConfig.borderRadius, + ), + ), + alignment: Alignment.center, + child: Text( + filter.toLocalizedString(context), + style: TextStyle( + fontWeight: filter == + controller.activeFilter + ? FontWeight.bold + : FontWeight.normal, + color: filter == + controller.activeFilter + ? theme + .colorScheme.onPrimary + : theme.colorScheme + .onSecondaryContainer, + ), ), ), ),