chatShellRoutes top-level property
final
Implementation
final chatShellRoutes = [
GoRoute(
name: Routes.chat.name,
path: Routes.chat.route,
redirect: authGuardRedirect,
pageBuilder: (context, state) {
rootNavKey.currentContext
?.read(selectedChatIdProvider.notifier)
.select(null);
return NoTransitionPage(
key: state.pageKey,
child: const ChatLayoutBuilder(),
);
},
),
GoRoute(
name: Routes.chatroom.name,
path: Routes.chatroom.route,
redirect: authGuardRedirect,
pageBuilder: (context, state) {
final roomId = state.pathParameters['roomId']!;
rootNavKey.currentContext
?.read(selectedChatIdProvider.notifier)
.select(roomId);
return NoTransitionPage(
key: state.pageKey,
child: ChatLayoutBuilder(
centerChild: RoomPage(
roomId: roomId,
),
),
);
},
),
GoRoute(
name: Routes.chatProfile.name,
path: Routes.chatProfile.route,
redirect: authGuardRedirect,
pageBuilder: (context, state) {
final roomId = state.pathParameters['roomId']!;
rootNavKey.currentContext
?.read(selectedChatIdProvider.notifier)
.select(roomId);
return NoTransitionPage(
key: state.pageKey,
child: ChatLayoutBuilder(
centerChild: RoomPage(
roomId: roomId,
),
expandedChild: RoomProfilePage(
roomId: roomId,
),
),
);
},
),
GoRoute(
name: Routes.chatSettingsVisibility.name,
path: Routes.chatSettingsVisibility.route,
redirect: authGuardRedirect,
pageBuilder: (context, state) {
final roomId = state.pathParameters['roomId']!;
rootNavKey.currentContext
?.read(selectedChatIdProvider.notifier)
.select(roomId);
return NoTransitionPage(
key: state.pageKey,
child: ChatLayoutBuilder(
centerChild: RoomPage(
roomId: roomId,
),
expandedChild: VisibilityAccessibilityPage(
roomId: roomId,
impliedClose: true,
),
),
);
},
),
GoRoute(
name: Routes.chatInvite.name,
path: Routes.chatInvite.route,
redirect: authGuardRedirect,
pageBuilder: (context, state) {
return NoTransitionPage(
key: state.pageKey,
child: InvitePage(
roomId: state.pathParameters['roomId']!,
),
);
},
),
];