chatShellRoutes top-level property

List chatShellRoutes
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']!,
        ),
      );
    },
  ),
];