From 70c5f03e8ddfa3cc8bb8cfa32ac3219f6d615481 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Sun, 19 Oct 2025 13:16:39 +0200 Subject: [PATCH] chore: Better routing to space id --- lib/config/routes.dart | 2 ++ lib/pages/chat_list/chat_list.dart | 3 +++ lib/widgets/adaptive_dialogs/public_room_dialog.dart | 2 ++ 3 files changed, 7 insertions(+) diff --git a/lib/config/routes.dart b/lib/config/routes.dart index 9871a013f..8f92d4c6d 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -114,6 +114,7 @@ abstract class AppRoutes { ? TwoColumnLayout( mainView: ChatList( activeChat: state.pathParameters['roomid'], + activeSpace: state.uri.queryParameters['spaceId'], displayNavigationRail: state.path?.startsWith('/rooms/settings') != true, ), @@ -132,6 +133,7 @@ abstract class AppRoutes { ? const EmptyPage() : ChatList( activeChat: state.pathParameters['roomid'], + activeSpace: state.uri.queryParameters['spaceId'], ), ), routes: [ diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index ac3df32ae..8bb8680af 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -72,11 +72,13 @@ extension LocalizedActiveFilter on ActiveFilter { class ChatList extends StatefulWidget { static BuildContext? contextForVoip; final String? activeChat; + final String? activeSpace; final bool displayNavigationRail; const ChatList({ super.key, required this.activeChat, + this.activeSpace, this.displayNavigationRail = false, }); @@ -400,6 +402,7 @@ class ChatListController extends State @override void initState() { _initReceiveSharingIntent(); + _activeSpaceId = widget.activeSpace; scrollController.addListener(_onScroll); _waitForFirstSync(); diff --git a/lib/widgets/adaptive_dialogs/public_room_dialog.dart b/lib/widgets/adaptive_dialogs/public_room_dialog.dart index add44c89d..6b11d45c9 100644 --- a/lib/widgets/adaptive_dialogs/public_room_dialog.dart +++ b/lib/widgets/adaptive_dialogs/public_room_dialog.dart @@ -66,6 +66,8 @@ class PublicRoomDialog extends StatelessWidget { if (chunk?.roomType != 'm.space' && !client.getRoomById(result.result!)!.isSpace) { context.go('/rooms/$roomId'); + } else { + context.go('/rooms?spaceId=$roomId'); } return; }