diff --git a/lib/pages/chat_list/space_view.dart b/lib/pages/chat_list/space_view.dart index 3aff52a5e..1c3de7485 100644 --- a/lib/pages/chat_list/space_view.dart +++ b/lib/pages/chat_list/space_view.dart @@ -234,6 +234,7 @@ class _SpaceViewState extends State { _refresh(); } + // @override @override void dispose() { super.dispose(); @@ -330,7 +331,17 @@ class _SpaceViewState extends State { // #Pangea void refreshOnUpdate(SyncUpdate event) { - if (event.isMembershipUpdate(Matrix.of(context).client.userID!) || + /* refresh on leave, invite, and space child update + not join events, because there's already a listener on + onTapSpaceChild, and they interfere with each other */ + if (event.isMembershipUpdateByType( + Membership.leave, + Matrix.of(context).client.userID!, + ) || + event.isMembershipUpdateByType( + Membership.invite, + Matrix.of(context).client.userID!, + ) || event.isSpaceChildUpdate(activeSpaceId)) { _refresh(); }