chore: add unread room badge to unread room filter (#2014)

This commit is contained in:
ggurdin 2025-02-28 15:37:24 -05:00 committed by GitHub
parent 2b17945194
commit d833cb8b5e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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,
),
),
),
),