File tree Expand file tree Collapse file tree 2 files changed +19
-5
lines changed Expand file tree Collapse file tree 2 files changed +19
-5
lines changed Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ import 'package:whitenoise/config/providers/chat_search_provider.dart';
99import 'package:whitenoise/config/providers/follow_provider.dart' ;
1010import 'package:whitenoise/config/providers/follows_provider.dart' ;
1111import 'package:whitenoise/config/providers/group_provider.dart' ;
12+ import 'package:whitenoise/config/states/group_state.dart' ;
1213import 'package:whitenoise/domain/models/dm_chat_data.dart' ;
1314import 'package:whitenoise/domain/models/user_model.dart' ;
1415import 'package:whitenoise/domain/services/dm_chat_service.dart' ;
Original file line number Diff line number Diff line change @@ -16,16 +16,34 @@ class _GroupChatInfoState extends ConsumerState<GroupChatInfo> {
1616 bool isLoadingMembers = false ;
1717 String ? currentUserNpub;
1818 String ? groupImagePath;
19+ ProviderSubscription <GroupsState >? _groupsSubscription;
20+
1921 @override
2022 void initState () {
2123 super .initState ();
2224 WidgetsBinding .instance.addPostFrameCallback ((_) {
2325 _loadGroup ();
2426 _loadMembers ();
2527 _loadCurrentUserNpub ();
28+
29+ setState (() {
30+ groupImagePath = ref.read (groupsProvider.notifier).getCachedGroupImagePath (widget.groupId);
31+ });
32+
33+ _groupsSubscription = ref.listenManual (groupsProvider, (previous, next) {
34+ if (mounted) {
35+ _loadMembers ();
36+ }
37+ });
2638 });
2739 }
2840
41+ @override
42+ void dispose () {
43+ _groupsSubscription? .close ();
44+ super .dispose ();
45+ }
46+
2947 Future <void > _loadGroup () async {
3048 final groupDetails = ref.read (groupsProvider).groupsMap? [widget.groupId];
3149 if (groupDetails? .nostrGroupId != null ) {
@@ -127,11 +145,6 @@ class _GroupChatInfoState extends ConsumerState<GroupChatInfo> {
127145 @override
128146 Widget build (BuildContext context) {
129147 final groupDetails = ref.watch (groupsProvider).groupsMap? [widget.groupId];
130- final groupsNotifier = ref.watch (groupsProvider.notifier);
131- ref.listen (groupsProvider, (previous, next) {
132- groupImagePath = groupsNotifier.getCachedGroupImagePath (widget.groupId);
133- _loadMembers ();
134- });
135148 final isAdmin = groupAdmins.any ((admin) {
136149 if (currentUserNpub == null ) {
137150 return false ;
You can’t perform that action at this time.
0 commit comments