Merge branch 'soru/escape-routes' into 'main'
fix: Properly encode and decode vRouter paths See merge request famedly/fluffychat!487
This commit is contained in:
commit
f1e76fbb10
22 changed files with 47 additions and 38 deletions
|
|
@ -620,7 +620,7 @@ class ChatController extends State<Chat> {
|
|||
future: room.leave,
|
||||
);
|
||||
if (result.error == null) {
|
||||
VRouter.of(context).to('/rooms/${result.result}');
|
||||
VRouter.of(context).toSegments(['rooms', result.result]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ class ChatListController extends State<ChatList> {
|
|||
void editSpace(BuildContext context, String spaceId) async {
|
||||
Scaffold.of(context).openEndDrawer();
|
||||
await Matrix.of(context).client.getRoomById(spaceId).postLoad();
|
||||
VRouter.of(context).to('/spaces/$spaceId');
|
||||
VRouter.of(context).toSegments(['spaces', spaceId]);
|
||||
}
|
||||
|
||||
List<Room> get spaces =>
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class NewGroupController extends State<NewGroup> {
|
|||
),
|
||||
);
|
||||
if (roomID.error == null) {
|
||||
VRouter.of(context).to('/rooms/${roomID.result}/invite');
|
||||
VRouter.of(context).toSegments(['rooms', roomID.result, 'invite']);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ class NewPrivateChatController extends State<NewPrivateChat> {
|
|||
);
|
||||
|
||||
if (roomID.error == null) {
|
||||
VRouter.of(context).to('/rooms/${roomID.result}');
|
||||
VRouter.of(context).toSegments(['rooms', roomID.result]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ class NewSpaceController extends State<NewSpace> {
|
|||
),
|
||||
);
|
||||
if (roomID.error == null) {
|
||||
VRouter.of(context).to('/rooms/${roomID.result}/details');
|
||||
VRouter.of(context).toSegments(['rooms', roomID.result, 'details']);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ class SearchController extends State<Search> {
|
|||
),
|
||||
);
|
||||
if (success.error == null) {
|
||||
VRouter.of(context).to('/rooms/${success.result}');
|
||||
VRouter.of(context).toSegments(['rooms', success.result]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -88,7 +88,8 @@ class UserBottomSheetController extends State<UserBottomSheet> {
|
|||
future: () => widget.user.startDirectChat(),
|
||||
);
|
||||
if (roomIdResult.error != null) return;
|
||||
VRouter.of(widget.outerContext).to('/rooms/${roomIdResult.result}');
|
||||
VRouter.of(widget.outerContext)
|
||||
.toSegments(['rooms', roomIdResult.result]);
|
||||
Navigator.of(context, rootNavigator: false).pop();
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,11 +52,11 @@ class ChatDetailsView extends StatelessWidget {
|
|||
SliverAppBar(
|
||||
leading: IconButton(
|
||||
icon: Icon(Icons.close_outlined),
|
||||
onPressed: () => VRouter.of(context)
|
||||
.path
|
||||
.startsWith('/spaces/')
|
||||
? VRouter.of(context).pop()
|
||||
: VRouter.of(context).to('/rooms/${controller.roomId}'),
|
||||
onPressed: () =>
|
||||
VRouter.of(context).path.startsWith('/spaces/')
|
||||
? VRouter.of(context).pop()
|
||||
: VRouter.of(context)
|
||||
.toSegments(['rooms', controller.roomId]),
|
||||
),
|
||||
elevation: Theme.of(context).appBarTheme.elevation,
|
||||
expandedHeight: 300.0,
|
||||
|
|
@ -264,7 +264,8 @@ class ChatDetailsView extends StatelessWidget {
|
|||
.visibilityOfTheChatHistory),
|
||||
subtitle: Text(
|
||||
room.historyVisibility.getLocalizedString(
|
||||
MatrixLocals(L10n.of(context))),
|
||||
MatrixLocals(L10n.of(context))) ??
|
||||
'',
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ class ChatEncryptionSettingsView extends StatelessWidget {
|
|||
leading: IconButton(
|
||||
icon: Icon(Icons.close_outlined),
|
||||
onPressed: () =>
|
||||
VRouter.of(context).to('/rooms/${controller.roomId}'),
|
||||
VRouter.of(context).toSegments(['rooms', controller.roomId]),
|
||||
),
|
||||
title: Text(L10n.of(context).tapOnDeviceToVerify),
|
||||
bottom: PreferredSize(
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@ class ChatPermissionsSettingsView extends StatelessWidget {
|
|||
? null
|
||||
: IconButton(
|
||||
icon: Icon(Icons.close_outlined),
|
||||
onPressed: () =>
|
||||
VRouter.of(context).to('/rooms/${controller.roomId}'),
|
||||
onPressed: () => VRouter.of(context)
|
||||
.toSegments(['rooms', controller.roomId]),
|
||||
),
|
||||
title: Text(L10n.of(context).editChatPermissions),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -98,8 +98,8 @@ class ChatView extends StatelessWidget {
|
|||
'${controller.room.getUserByMXIDSync(controller.room.directChatMatrixID).mention} ',
|
||||
),
|
||||
)
|
||||
: () => VRouter.of(context)
|
||||
.to('/rooms/${controller.room.id}/details'),
|
||||
: () => VRouter.of(context).toSegments(
|
||||
['rooms', controller.room.id, 'details']),
|
||||
title: Text(
|
||||
controller.room.getLocalizedDisplayname(
|
||||
MatrixLocals(L10n.of(context))),
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@ class InvitationSelectionView extends StatelessWidget {
|
|||
? null
|
||||
: IconButton(
|
||||
icon: Icon(Icons.close_outlined),
|
||||
onPressed: () =>
|
||||
VRouter.of(context).to('/rooms/${controller.roomId}'),
|
||||
onPressed: () => VRouter.of(context)
|
||||
.toSegments(['rooms', controller.roomId]),
|
||||
),
|
||||
titleSpacing: 0,
|
||||
title: DefaultAppBarSearchField(
|
||||
|
|
|
|||
|
|
@ -238,7 +238,8 @@ class SearchView extends StatelessWidget {
|
|||
.startDirectChat(foundProfile.userId),
|
||||
);
|
||||
if (roomID.error == null) {
|
||||
VRouter.of(context).to('/rooms/${roomID.result}');
|
||||
VRouter.of(context)
|
||||
.toSegments(['rooms', roomID.result]);
|
||||
}
|
||||
},
|
||||
leading: Avatar(
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ class MultipleEmotesSettingsView extends StatelessWidget {
|
|||
return ListTile(
|
||||
title: Text(packName),
|
||||
onTap: () async {
|
||||
VRouter.of(context)
|
||||
.to('/rooms/${room.id}/details/emotes/${keys[i]}');
|
||||
VRouter.of(context).toSegments(
|
||||
['rooms', room.id, 'details', 'emotes', keys[i]]);
|
||||
},
|
||||
);
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue