import {RouteObject, useRoutes} from 'react-router-dom'; import React from 'react'; import {ChannelPage} from '@app/channels/channel-page'; import {TitlePage} from '@app/titles/pages/title-page/title-page'; import {SeasonPage} from '@app/seasons/season-page'; import {EpisodePage} from '@app/episodes/episode-page'; import {useSettings} from '@common/core/settings/use-settings'; import {WatchPage} from '@app/videos/watch-page/watch-page'; import {TitleVideosPage} from '@app/titles/pages/title-videos-page'; import {TitleImagesPage} from '@app/titles/pages/title-images-page'; import {PersonPage} from '@app/people/person-page/person-page'; import {TitleFullCreditsPage} from '@app/titles/pages/title-full-credits-page'; import {EpisodeFullCreditsPage} from '@app/episodes/epispde-full-credits-page'; import {NewsArticlePage} from '@app/news/news-article-page'; import {UserListsIndexPage} from '@app/user-lists/pages/user-lists-index-page/user-lists-index-page'; import {EditUserListPage} from '@app/user-lists/pages/edit-user-list-page'; import {CreateUserListPage} from '@app/user-lists/pages/create-user-list-page'; import {SitePageLayout} from '@app/site-page-layout'; import {UserProfilePage} from '@app/profile/user-profile-page'; import {AuthRoute} from '@common/auth/guards/auth-route'; import {ProfileListsPanel} from '@app/profile/panels/profile-lists-panel'; import {ProfileRatingsPanel} from '@app/profile/panels/profile-ratings-panel'; import {ProfileReviewsPanel} from '@app/profile/panels/profile-reviews-panel'; import {ProfileCommentsPanel} from '@app/profile/panels/profile-comments-panel'; import {ProfileFollowersPanel} from '@app/profile/panels/profile-followers-panel'; import {ProfileFollowedUsersPanel} from '@app/profile/panels/profile-followed-users-panel'; import {SearchPage} from '@app/search/search-page'; import {NotFoundPage} from '@common/ui/not-found-page/not-found-page'; const RouteConfig: RouteObject[] = [ { index: true, element: , }, { path: 'search', element: , }, { path: 'search/:query', element: , }, // Watch { path: 'watch/:videoId', element: , }, // Titles { path: '/titles/:titleId/:titleSlug', element: , }, { path: '/titles/:titleId/:titleSlug/videos', element: , }, { path: '/titles/:titleId/:titleSlug/images', element: , }, { path: '/titles/:titleId/:titleSlug/full-credits', element: , }, { path: '/titles/:titleId/:titleSlug/season/:season', element: , }, { path: '/titles/:titleId/:titleSlug/season/:season/episode/:episode', element: , }, { path: '/titles/:titleId/:titleSlug/season/:season/episode/:episode/full-credits', element: , }, // People { path: '/people/:personId', element: , }, { path: '/people/:personId/:personSlug', element: , }, // News { path: '/news/:articleId', element: , }, // Profile page { path: 'user/:userId/:slug', element: , children: [ { index: true, element: , }, { path: 'lists', element: , }, { path: 'ratings', element: , }, { path: 'reviews', element: , }, { path: 'comments', element: , }, { path: 'followers', element: , }, { path: 'followed-users', element: , }, ], }, { path: 'user/:userId/:slug/:tab', element: , }, // User Lists { path: '/lists', element: ( ), }, { path: '/lists/new', element: ( ), }, { path: '/lists/:slugOrId', element: , }, { path: '/lists/:slugOrId/edit', element: ( ), }, // Channels { path: ':slugOrId', element: , }, { path: 'channel/:slugOrId', element: , }, { path: ':slugOrId/:restriction', element: , }, { path: 'channel/:slugOrId/:restriction', element: , }, { path: '*', element: , }, ]; function HomepageChannelPage() { const {homepage} = useSettings(); let slugOrId = 'homepage'; if (homepage?.type === 'channel' && homepage.value) { slugOrId = homepage.value; } return ; } export default function SiteRoutes() { return useRoutes(RouteConfig); }