homeShellRoutes top-level property

List homeShellRoutes
final

Implementation

final homeShellRoutes = [
  GoRoute(
    name: Routes.dashboard.name,
    path: Routes.dashboard.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const Dashboard(),
      );
    },
  ),

  // ---- SETTINGS
  GoRoute(
    name: Routes.settings.name,
    path: Routes.settings.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const SettingsPage(isFullPage: true),
      );
    },
  ),
  GoRoute(
    name: Routes.licenses.name,
    path: Routes.licenses.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const SettingsLicensesPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.settingsLabs.name,
    path: Routes.settingsLabs.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const SettingsLabsPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.settingsChat.name,
    path: Routes.settingsChat.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const ChatSettingsPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.settingNotifications.name,
    path: Routes.settingNotifications.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const NotificationsSettingsPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.settingsSuperInvites.name,
    path: Routes.settingsSuperInvites.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const SuperInvitesPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.info.name,
    path: Routes.info.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const SettingsInfoPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.myProfile.name,
    path: Routes.myProfile.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const MyProfilePage(),
      );
    },
  ),
  GoRoute(
    name: Routes.settingSessions.name,
    path: Routes.settingSessions.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const SessionsPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.settingBackup.name,
    path: Routes.settingBackup.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const BackupPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.settingLanguage.name,
    path: Routes.settingLanguage.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const LanguageSelectPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.emailAddresses.name,
    path: Routes.emailAddresses.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const EmailAddressesPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.blockedUsers.name,
    path: Routes.blockedUsers.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const BlockedUsersPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.changePassword.name,
    path: Routes.changePassword.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const ChangePasswordPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.subSpaces.name,
    path: Routes.subSpaces.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('subSpaces route needs spaceId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: SubSpacesPage(spaceId: spaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.subChats.name,
    path: Routes.subChats.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('subChats route needs spaceId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: SubChatsPage(spaceId: spaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.organizeCategories.name,
    path: Routes.organizeCategories.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('organizeCategories route needs spaceId as path param');
      final categoriesFor = state.pathParameters['categoriesFor']
          .expect('organizeCategories route needs categoriesFor as path param');
      return MaterialPage(
        key: state.pageKey,
        child: OrganizeCategoriesPage(
          spaceId: spaceId,
          categoriesFor: CategoryUtils().getCategoryEnumFromName(categoriesFor),
        ),
      );
    },
  ),
  GoRoute(
    name: Routes.spaceMembers.name,
    path: Routes.spaceMembers.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('spaceMembers route needs spaceId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: SpaceMembersPage(spaceIdOrAlias: spaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.spacePins.name,
    path: Routes.spacePins.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('spacePins route needs spaceId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: PinsListPage(spaceId: spaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.spaceEvents.name,
    path: Routes.spaceEvents.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('spaceEvents route needs spaceId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: EventListPage(spaceId: spaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.spaceTasks.name,
    path: Routes.spaceTasks.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('spaceTasks route needs spaceId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: TasksListPage(spaceId: spaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.spaceUpdates.name,
    path: Routes.spaceUpdates.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('spaceUpdates route needs spaceId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: NewsListPage(spaceId: spaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.searchPublicDirectory.name,
    path: Routes.searchPublicDirectory.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final query = state.uri.queryParameters['query'];
      return MaterialPage(
        key: state.pageKey,
        child: SearchPublicDirectory(query: query),
      );
    },
  ),
  GoRoute(
    name: Routes.space.name,
    path: Routes.space.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('space route needs spaceId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: SpaceDetailsPage(spaceId: spaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.spaces.name,
    path: Routes.spaces.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final searchQuery = state.uri.queryParameters['searchQuery'];
      return MaterialPage(
        key: state.pageKey,
        child: SpaceListPage(searchQuery: searchQuery),
      );
    },
  ),
  // ---- Space SETTINGS
  GoRoute(
    name: Routes.spaceSettings.name,
    path: Routes.spaceSettings.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('spaceSettings route needs spaceId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: SpaceSettingsMenuIndexPage(spaceId: spaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.spaceSettingsApps.name,
    path: Routes.spaceSettingsApps.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('spaceSettingsApps route needs spaceId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: SpaceAppsSettingsPage(spaceId: spaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.spaceSettingsVisibility.name,
    path: Routes.spaceSettingsVisibility.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('spaceSettingsVisibility route needs spaceId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: WithSidebar(
          sidebar: SpaceSettingsMenu(spaceId: spaceId),
          child: VisibilityAccessibilityPage(roomId: spaceId),
        ),
      );
    },
  ),
  GoRoute(
    name: Routes.spaceSettingsNotifications.name,
    path: Routes.spaceSettingsNotifications.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId'].expect(
        'spaceSettingsNotifications route needs spaceId as path param',
      );
      return MaterialPage(
        key: state.pageKey,
        child: SpaceNotificationConfigurationPage(spaceId: spaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.tasks.name,
    path: Routes.tasks.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final searchQuery = state.uri.queryParameters['searchQuery'];
      return MaterialPage(
        key: state.pageKey,
        child: TasksListPage(searchQuery: searchQuery),
      );
    },
  ),
  GoRoute(
    name: Routes.taskItemDetails.name,
    path: Routes.taskItemDetails.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final taskListId = state.pathParameters['taskListId']
          .expect('taskItemDetails route needs taskListId as path param');
      final taskId = state.pathParameters['taskId']
          .expect('taskItemDetails route needs taskId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: TaskItemDetailPage(
          taskListId: taskListId,
          taskId: taskId,
        ),
      );
    },
  ),
  GoRoute(
    name: Routes.taskListDetails.name,
    path: Routes.taskListDetails.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final taskListId = state.pathParameters['taskListId']
          .expect('taskListDetails route needs taskListId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: TaskListDetailPage(taskListId: taskListId),
      );
    },
  ),
  GoRoute(
    name: Routes.pins.name,
    path: Routes.pins.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final searchQuery = state.uri.queryParameters['searchQuery'];
      return MaterialPage(
        key: state.pageKey,
        child: PinsListPage(searchQuery: searchQuery),
      );
    },
  ),
  GoRoute(
    name: Routes.pin.name,
    path: Routes.pin.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final pinId = state.pathParameters['pinId']
          .expect('pin route needs pinId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: PinDetailsPage(pinId: pinId),
      );
    },
  ),
  GoRoute(
    name: Routes.calendarEvents.name,
    path: Routes.calendarEvents.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final searchQuery = state.uri.queryParameters['searchQuery'];
      return MaterialPage(
        key: state.pageKey,
        child: EventListPage(searchQuery: searchQuery),
      );
    },
  ),
  GoRoute(
    name: Routes.createEvent.name,
    path: Routes.createEvent.route,
    pageBuilder: (context, state) {
      final extra = state.extra;
      CalendarEvent? templateEvent;
      if (extra != null && extra is CalendarEvent) {
        templateEvent = extra;
      }
      final String? spaceId = state.uri.queryParameters['spaceId'];
      return MaterialPage(
        key: state.pageKey,
        child: CreateEventPage(
          initialSelectedSpace: spaceId?.isNotEmpty == true ? spaceId : null,
          templateEvent: templateEvent,
        ),
      );
    },
  ),
  GoRoute(
    name: Routes.calendarEvent.name,
    path: Routes.calendarEvent.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final calendarId = state.pathParameters['calendarId']
          .expect('calendarEvent route needs calendarId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: EventDetailPage(calendarId: calendarId),
      );
    },
  ),

  GoRoute(
    name: Routes.updateList.name,
    path: Routes.updateList.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      return MaterialPage(
        key: state.pageKey,
        child: const NewsListPage(),
      );
    },
  ),
  GoRoute(
    name: Routes.createSpace.name,
    path: Routes.createSpace.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final parentSpaceId = state.uri.queryParameters['parentSpaceId'];
      return MaterialPage(
        key: state.pageKey,
        child: CreateSpacePage(initialParentsSpaceId: parentSpaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.spaceInvite.name,
    path: Routes.spaceInvite.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final spaceId = state.pathParameters['spaceId']
          .expect('spaceInvite route needs spaceId as path param');
      return MaterialPage(
        key: state.pageKey,
        child: InvitePage(roomId: spaceId),
      );
    },
  ),
  GoRoute(
    name: Routes.inviteIndividual.name,
    path: Routes.inviteIndividual.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final roomId = state.uri.queryParameters['roomId']
          .expect('inviteIndividual route needs roomId as query param');
      return MaterialPage(
        key: state.pageKey,
        child: InviteIndividualUsers(roomId: roomId),
      );
    },
  ),
  GoRoute(
    name: Routes.inviteSpaceMembers.name,
    path: Routes.inviteSpaceMembers.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final roomId = state.uri.queryParameters['roomId']
          .expect('inviteSpaceMembers route needs roomId as query param');
      return MaterialPage(
        key: state.pageKey,
        child: InviteSpaceMembers(roomId: roomId),
      );
    },
  ),
  GoRoute(
    name: Routes.shareInviteCode.name,
    path: Routes.shareInviteCode.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final inviteCode = state.uri.queryParameters['inviteCode']
          .expect('shareInviteCode route needs inviteCode as query param');
      final roomId = state.uri.queryParameters['roomId']
          .expect('shareInviteCode route needs roomId as query param');
      return MaterialPage(
        key: state.pageKey,
        child: ShareInviteCode(
          inviteCode: inviteCode,
          roomId: roomId,
        ),
      );
    },
  ),
  GoRoute(
    name: Routes.invitePending.name,
    path: Routes.invitePending.route,
    redirect: authGuardRedirect,
    pageBuilder: (context, state) {
      final roomId = state.uri.queryParameters['roomId']
          .expect('invitePending route needs roomId as query param');
      return MaterialPage(
        key: state.pageKey,
        child: InvitePending(roomId: roomId),
      );
    },
  ),
];