diff --git a/lib/config/routes.dart b/lib/config/routes.dart index 7d6653866..df0d64d6e 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -255,6 +255,18 @@ abstract class AppRoutes { final resp = await loggedOutRedirect(context, state); final spaceId = state.uri.queryParameters['spaceId']; + final roomId = state.pathParameters['roomid']; + final room = roomId != null + ? Matrix.of(context).client.getRoomById(roomId) + : null; + + if (room != null && + room.isSpace && + !FluffyThemes.isColumnMode(context) && + (state.fullPath?.endsWith(':roomid') ?? false)) { + return '/rooms?spaceId=${room.id}'; + } + if (resp != null || !state.uri.queryParameters.containsKey('spaceId') || spaceId == 'clear' || diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index 9b7f8162f..24adcd1f4 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -42,7 +42,6 @@ import '../../widgets/matrix.dart'; import 'package:fluffychat/utils/tor_stub.dart' if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; - enum PopupMenuAction { settings, invite, diff --git a/lib/pages/invitation_selection/invitation_selection_view.dart b/lib/pages/invitation_selection/invitation_selection_view.dart index 05588a60e..4638c4213 100644 --- a/lib/pages/invitation_selection/invitation_selection_view.dart +++ b/lib/pages/invitation_selection/invitation_selection_view.dart @@ -288,7 +288,11 @@ class InvitationSelectionView extends StatelessWidget { ), ], ), - onPressed: () => context.go("/rooms/${room.id}"), + onPressed: () => context.go( + room.isSpace + ? "/rooms?spaceId=${room.id}" + : "/rooms/${room.id}", + ), ), ), ],