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);
}