/* eslint-disable react-refresh/only-export-components */ import { lazy, type ReactElement } from 'react' import { Navigate } from 'react-router-dom' const HomePage = lazy(() => import('./pages/HomePage').then((m) => ({ default: m.HomePage }))) const LibraryPage = lazy(() => import('./pages/LibraryPage').then((m) => ({ default: m.LibraryPage }))) const LibrariesPage = lazy(() => import('./pages/LibrariesPage').then((m) => ({ default: m.LibrariesPage }))) const SearchPage = lazy(() => import('./pages/SearchPage').then((m) => ({ default: m.SearchPage }))) const FavouritesPage = lazy(() => import('./pages/FavouritesPage').then((m) => ({ default: m.FavouritesPage }))) const PlaylistsPage = lazy(() => import('./pages/PlaylistsPage').then((m) => ({ default: m.PlaylistsPage }))) const PlaylistDetailPage = lazy(() => import('./pages/PlaylistDetailPage').then((m) => ({ default: m.PlaylistDetailPage })), ) const MediaDetailPage = lazy(() => import('./pages/MediaDetailPage').then((m) => ({ default: m.MediaDetailPage }))) const PlayerPage = lazy(() => import('./pages/PlayerPage').then((m) => ({ default: m.PlayerPage }))) const AdminPage = lazy(() => import('./pages/AdminPage').then((m) => ({ default: m.AdminPage }))) const DownloadsPage = lazy(() => import('./pages/DownloadsPage').then((m) => ({ default: m.DownloadsPage }))) const SubscriptionsPage = lazy(() => import('./pages/SubscriptionsPage').then((m) => ({ default: m.SubscriptionsPage })), ) const ProfilePage = lazy(() => import('./pages/ProfilePage').then((m) => ({ default: m.ProfilePage }))) const StatsPage = lazy(() => import('./pages/StatsPage').then((m) => ({ default: m.StatsPage }))) const DiscoverPage = lazy(() => import('./pages/DiscoverPage').then((m) => ({ default: m.DiscoverPage }))) const TasksPage = lazy(() => import('./pages/TasksPage').then((m) => ({ default: m.TasksPage }))) const RecycleBinPage = lazy(() => import('./pages/RecycleBinPage').then((m) => ({ default: m.RecycleBinPage }))) const DlnaPage = lazy(() => import('./pages/DlnaPage').then((m) => ({ default: m.DlnaPage }))) const FileManagerPage = lazy(() => import('./pages/FileManagerPage').then((m) => ({ default: m.FileManagerPage })), ) const StoragePage = lazy(() => import('./pages/StoragePage').then((m) => ({ default: m.StoragePage }))) const DuplicatesPage = lazy(() => import('./pages/DuplicatesPage').then((m) => ({ default: m.DuplicatesPage }))) const SchedulerPage = lazy(() => import('./pages/SchedulerPage').then((m) => ({ default: m.SchedulerPage }))) const WatchHistoryPage = lazy(() => import('./pages/WatchHistoryPage').then((m) => ({ default: m.WatchHistoryPage })), ) const PosterWallPage = lazy(() => import('./pages/PosterWallPage').then((m) => ({ default: m.PosterWallPage }))) const SitesPage = lazy(() => import('./pages/SitesPage').then((m) => ({ default: m.SitesPage }))) const SiteSearchPage = lazy(() => import('./pages/SiteSearchPage').then((m) => ({ default: m.SiteSearchPage }))) const AIAssistantPage = lazy(() => import('./pages/AIAssistantPage').then((m) => ({ default: m.AIAssistantPage })), ) const StrmPage = lazy(() => import('./pages/StrmPage').then((m) => ({ default: m.StrmPage }))) const ProfileManagementPage = lazy(() => import('./pages/ProfileManagementPage').then((m) => ({ default: m.ProfileManagementPage })), ) const NotifyChannelsPage = lazy(() => import('./pages/NotifyChannelsPage').then((m) => ({ default: m.NotifyChannelsPage })), ) const SettingsPage = lazy(() => import('./pages/SettingsPage').then((m) => ({ default: m.SettingsPage }))) const AssistantChatPage = lazy(() => import('./pages/AssistantChatPage').then((m) => ({ default: m.AssistantChatPage })), ) const DownloadClientsPage = lazy(() => import('./pages/DownloadClientsPage').then((m) => ({ default: m.DownloadClientsPage })), ) const StorageConfigPage = lazy(() => import('./pages/StorageConfigPage').then((m) => ({ default: m.StorageConfigPage })), ) const LicensePage = lazy(() => import('./pages/LicensePage').then((m) => ({ default: m.LicensePage }))) export type AppRoute = { path?: string index?: boolean element: ReactElement adminOnly?: boolean } export const appRoutes: AppRoute[] = [ { index: true, element: }, { path: 'libraries', element: }, { path: 'library/:id', element: }, { path: 'discover', element: }, { path: 'search', element: }, { path: 'favourites', element: }, { path: 'playlists', element: }, { path: 'playlist/:id', element: }, { path: 'media/:id', element: }, { path: 'play/:id', element: }, { path: 'downloads', element: }, { path: 'subscriptions', element: }, { path: 'profile', element: }, { path: 'dlna', element: }, { path: 'history', element: }, { path: 'poster-wall', element: }, { path: 'site-search', element: }, { path: 'ai', element: }, { path: 'play-profiles', element: }, { path: 'api-configs', element: }, { path: 'tools', element: }, { path: 'sites', element: , adminOnly: true }, { path: 'files', element: , adminOnly: true }, { path: 'storage', element: , adminOnly: true }, { path: 'duplicates', element: , adminOnly: true }, { path: 'scheduler', element: , adminOnly: true }, { path: 'tasks', element: , adminOnly: true }, { path: 'recycle', element: , adminOnly: true }, { path: 'strm', element: , adminOnly: true }, { path: 'notify-channels', element: , adminOnly: true }, { path: 'settings', element: , adminOnly: true }, { path: 'assistant', element: , adminOnly: true }, { path: 'download-clients', element: , adminOnly: true }, { path: 'license', element: , adminOnly: true }, { path: 'storage-config', element: , adminOnly: true }, { path: 'stats', element: , adminOnly: true }, { path: 'admin', element: , adminOnly: true }, ]