From b715eff839f0cf5be82362b4b2d26a98eacd3e2d Mon Sep 17 00:00:00 2001 From: Krille Date: Sun, 13 Aug 2023 16:07:15 +0200 Subject: [PATCH] refactor: Migrate from pathsegment routing --- lib/pages/chat/chat.dart | 4 ++-- lib/pages/chat/chat_app_bar_title.dart | 2 +- lib/pages/chat/encryption_button.dart | 3 +-- .../chat_encryption_settings_view.dart | 3 +-- lib/pages/chat_list/chat_list_item.dart | 4 ++-- lib/pages/chat_list/space_view.dart | 2 +- lib/pages/chat_list/stories_header.dart | 2 +- lib/pages/new_group/new_group.dart | 2 +- lib/pages/story/story_page.dart | 2 +- lib/pages/user_bottom_sheet/user_bottom_sheet.dart | 2 +- lib/utils/background_push.dart | 3 +-- lib/utils/url_launcher.dart | 6 +++--- lib/widgets/chat_settings_popup_menu.dart | 4 ++-- lib/widgets/local_notifications_extension.dart | 2 +- lib/widgets/public_room_bottom_sheet.dart | 2 +- 15 files changed, 20 insertions(+), 23 deletions(-) diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index c8ef93a5..c26b0484 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -218,7 +218,7 @@ class ChatController extends State { ); final roomId = success.result; if (roomId == null) return; - context.go(['', 'rooms', roomId].join('/')); + context.go('/rooms/$roomId'); } void leaveChat() async { @@ -1055,7 +1055,7 @@ class ChatController extends State { future: room.leave, ); if (result.error == null) { - context.go(['', 'rooms', result.result!].join('/')); + context.go('/rooms/${result.result!}'); } } diff --git a/lib/pages/chat/chat_app_bar_title.dart b/lib/pages/chat/chat_app_bar_title.dart index 6f022b3f..ae659fa0 100644 --- a/lib/pages/chat/chat_app_bar_title.dart +++ b/lib/pages/chat/chat_app_bar_title.dart @@ -23,7 +23,7 @@ class ChatAppBarTitle extends StatelessWidget { highlightColor: Colors.transparent, onTap: controller.isArchived ? null - : () => context.go(['', 'rooms', room.id, 'details'].join('/')), + : () => context.go('/rooms/${room.id}/details'), child: Row( children: [ Hero( diff --git a/lib/pages/chat/encryption_button.dart b/lib/pages/chat/encryption_button.dart index 9a60d8d5..d5a4481c 100644 --- a/lib/pages/chat/encryption_button.dart +++ b/lib/pages/chat/encryption_button.dart @@ -38,8 +38,7 @@ class EncryptionButton extends StatelessWidget { ? Colors.orange : null, ), - onPressed: () => - context.go(['', 'rooms', room.id, 'encryption'].join('/')), + onPressed: () => context.go('/rooms/${room.id}/encryption'), ), ); }, diff --git a/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart b/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart index 8b0cdc03..fc78f30a 100644 --- a/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart +++ b/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart @@ -28,8 +28,7 @@ class ChatEncryptionSettingsView extends StatelessWidget { appBar: AppBar( leading: IconButton( icon: const Icon(Icons.close_outlined), - onPressed: () => - context.go(['', 'rooms', controller.roomId!].join('/')), + onPressed: () => context.go('/rooms/${controller.roomId!}'), ), title: Text(L10n.of(context)!.encryption), actions: [ diff --git a/lib/pages/chat_list/chat_list_item.dart b/lib/pages/chat_list/chat_list_item.dart index 9941bf5b..623056cb 100644 --- a/lib/pages/chat_list/chat_list_item.dart +++ b/lib/pages/chat_list/chat_list_item.dart @@ -61,7 +61,7 @@ class ChatListItem extends StatelessWidget { } if (room.membership == Membership.leave) { - context.go(['', 'archive', room.id].join('/')); + context.go('/rooms/archive/${room.id}'); } if (room.membership == Membership.join) { @@ -86,7 +86,7 @@ class ChatListItem extends StatelessWidget { Matrix.of(context).shareContent = null; } - context.go(['', 'rooms', room.id].join('/')); + context.go('/rooms/${room.id}'); } } diff --git a/lib/pages/chat_list/space_view.dart b/lib/pages/chat_list/space_view.dart index 1d8a7ba8..5f0ca23e 100644 --- a/lib/pages/chat_list/space_view.dart +++ b/lib/pages/chat_list/space_view.dart @@ -79,7 +79,7 @@ class _SpaceViewState extends State { } return; } - context.go(['', 'rooms', spaceChild.roomId].join('/')); + context.go('/rooms/${spaceChild.roomId}'); } void _onSpaceChildContextMenu([ diff --git a/lib/pages/chat_list/stories_header.dart b/lib/pages/chat_list/stories_header.dart index 75ab67cd..ea85f6ab 100644 --- a/lib/pages/chat_list/stories_header.dart +++ b/lib/pages/chat_list/stories_header.dart @@ -35,7 +35,7 @@ class StoriesHeader extends StatelessWidget { ); if (result.error != null) return; } - context.go(['', 'stories', roomId].join('/')); + context.go('/stories/$roomId'); } void _contextualActions(BuildContext context, Room room) async { diff --git a/lib/pages/new_group/new_group.dart b/lib/pages/new_group/new_group.dart index dc5423d5..70ea22ef 100644 --- a/lib/pages/new_group/new_group.dart +++ b/lib/pages/new_group/new_group.dart @@ -37,7 +37,7 @@ class NewGroupController extends State { }, ); if (roomID.error == null) { - context.go(['', 'rooms', roomID.result!, 'invite'].join('/')); + context.go('/rooms/${roomID.result!}/invite'); } } diff --git a/lib/pages/story/story_page.dart b/lib/pages/story/story_page.dart index ebae8ee7..1fafdf0f 100644 --- a/lib/pages/story/story_page.dart +++ b/lib/pages/story/story_page.dart @@ -497,7 +497,7 @@ class StoryPageController extends State { currentEvent!.senderFromMemoryOrFallback.startDirectChat(), ); if (roomIdResult.error != null) return; - context.go(['', 'rooms', roomIdResult.result!].join('/')); + context.go('/rooms/${roomIdResult.result!}'); break; } diff --git a/lib/pages/user_bottom_sheet/user_bottom_sheet.dart b/lib/pages/user_bottom_sheet/user_bottom_sheet.dart index da316d65..491f86ef 100644 --- a/lib/pages/user_bottom_sheet/user_bottom_sheet.dart +++ b/lib/pages/user_bottom_sheet/user_bottom_sheet.dart @@ -208,7 +208,7 @@ class UserBottomSheetController extends State { .startDirectChat(user?.id ?? widget.profile!.userId), ); if (roomIdResult.error != null) return; - widget.outerContext.go(['', 'rooms', roomIdResult.result!].join('/')); + widget.outerContext.go('/rooms/${roomIdResult.result!}'); Navigator.of(context, rootNavigator: false).pop(); break; case UserBottomSheetAction.ignore: diff --git a/lib/utils/background_push.dart b/lib/utils/background_push.dart index 821f31b7..88cf1067 100644 --- a/lib/utils/background_push.dart +++ b/lib/utils/background_push.dart @@ -312,8 +312,7 @@ class BackgroundPush { ?.content .tryGet('type') == ClientStoriesExtension.storiesRoomType; - FluffyChatApp.router - .go(['', isStory ? 'stories' : 'rooms', roomId].join('/')); + FluffyChatApp.router.go('/${isStory ? 'stories' : 'rooms'}/$roomId'); } catch (e, s) { Logs().e('[Push] Failed to open room', e, s); } diff --git a/lib/utils/url_launcher.dart b/lib/utils/url_launcher.dart index 8d76d691..d6c86838 100644 --- a/lib/utils/url_launcher.dart +++ b/lib/utils/url_launcher.dart @@ -172,7 +172,7 @@ class UrlLauncher { if (room != null) { if (room.isSpace) { // TODO: Implement navigate to space - context.go(['', 'rooms'].join('/')); + context.go('/rooms/${room.id}'); return; } @@ -185,7 +185,7 @@ class UrlLauncher { ).toString(), ); } else { - context.go(['', 'rooms', room.id].join('/')); + context.go('/rooms/${room.id}'); } return; } else { @@ -226,7 +226,7 @@ class UrlLauncher { ).toString(), ); } else { - context.go(['', 'rooms', response.result!].join('/')); + context.go('/rooms/${response.result!}'); } } } diff --git a/lib/widgets/chat_settings_popup_menu.dart b/lib/widgets/chat_settings_popup_menu.dart index 78e1b578..13dcb5fc 100644 --- a/lib/widgets/chat_settings_popup_menu.dart +++ b/lib/widgets/chat_settings_popup_menu.dart @@ -196,9 +196,9 @@ class ChatSettingsPopupMenuState extends State { void _showChatDetails() { if (GoRouterState.of(context).uri.path.endsWith('/details')) { - context.go(['', 'rooms', widget.room.id].join('/')); + context.go('/rooms/${widget.room.id}'); } else { - context.go(['', 'rooms', widget.room.id, 'details'].join('/')); + context.go('/rooms/${widget.room.id}/details'); } } } diff --git a/lib/widgets/local_notifications_extension.dart b/lib/widgets/local_notifications_extension.dart index ace40fef..1e1cb5b5 100644 --- a/lib/widgets/local_notifications_extension.dart +++ b/lib/widgets/local_notifications_extension.dart @@ -113,7 +113,7 @@ extension LocalNotificationsExtension on MatrixState { room.setReadMarker(event.eventId, mRead: event.eventId); break; case DesktopNotificationActions.openChat: - context.go(['', 'rooms', room.id].join('/')); + context.go('/rooms/${room.id}'); break; } }); diff --git a/lib/widgets/public_room_bottom_sheet.dart b/lib/widgets/public_room_bottom_sheet.dart index 818afd17..87ee5025 100644 --- a/lib/widgets/public_room_bottom_sheet.dart +++ b/lib/widgets/public_room_bottom_sheet.dart @@ -53,7 +53,7 @@ class PublicRoomBottomSheet extends StatelessWidget { navigator.pop(); // don't open the room if the joined room is a space if (!client.getRoomById(result.result!)!.isSpace) { - context.go(['', 'rooms', result.result!].join('/')); + context.go('/rooms/${result.result!}'); } return; }