import { lazy, Suspense } from 'react'; import { HashRouter, Route, Routes } from 'react-router'; import { RouterErrorBoundary } from '/@/renderer/features/shared/components/router-error-boundary'; import { AuthenticationOutlet } from '/@/renderer/layouts/authentication-outlet'; import { ResponsiveLayout } from '/@/renderer/layouts/responsive-layout'; import { AppOutlet } from '/@/renderer/router/app-outlet'; import { AppRoute } from '/@/renderer/router/routes'; import { TitlebarOutlet } from '/@/renderer/router/titlebar-outlet'; import { BaseContextModal, ModalsProvider } from '/@/shared/components/modal/modal'; import { Spinner } from '/@/shared/components/spinner/spinner'; const NowPlayingRoute = lazy( () => import('/@/renderer/features/now-playing/routes/now-playing-route'), ); const AlbumListRoute = lazy(() => import('/@/renderer/features/albums/routes/album-list-route')); const SongListRoute = lazy(() => import('/@/renderer/features/songs/routes/song-list-route')); const PlaylistDetailSongListRoute = lazy( () => import('/@/renderer/features/playlists/routes/playlist-detail-song-list-route'), ); const PlaylistListRoute = lazy( () => import('/@/renderer/features/playlists/routes/playlist-list-route'), ); const ActionRequiredRoute = lazy( () => import('/@/renderer/features/action-required/routes/action-required-route'), ); const InvalidRoute = lazy( () => import('/@/renderer/features/action-required/routes/invalid-route'), ); const LoginRoute = lazy(() => import('/@/renderer/features/login/routes/login-route')); const NoNetworkRoute = lazy( () => import('/@/renderer/features/action-required/routes/no-network-route'), ); const HomeRoute = lazy(() => import('/@/renderer/features/home/routes/home-route')); const ArtistListRoute = lazy(() => import('/@/renderer/features/artists/routes/artist-list-route')); const AlbumArtistListRoute = lazy( () => import('/@/renderer/features/artists/routes/album-artist-list-route'), ); const AlbumArtistDetailRoute = lazy( () => import('/@/renderer/features/artists/routes/album-artist-detail-route'), ); const AlbumArtistDetailTopSongsListRoute = lazy( () => import('../features/artists/routes/album-artist-detail-top-songs-list-route'), ); const AlbumArtistDetailFavoriteSongsListRoute = lazy( () => import('../features/artists/routes/album-artist-detail-favorite-songs-list-route'), ); const AlbumDetailRoute = lazy( () => import('/@/renderer/features/albums/routes/album-detail-route'), ); const DummyAlbumDetailRoute = lazy( () => import('/@/renderer/features/albums/routes/dummy-album-detail-route'), ); const GenreListRoute = lazy(() => import('/@/renderer/features/genres/routes/genre-list-route')); const GenreDetailRoute = lazy( () => import('/@/renderer/features/genres/routes/genre-detail-route'), ); const FolderListRoute = lazy(() => import('/@/renderer/features/folders/routes/folder-list-route')); const RadioListRoute = lazy(() => import('/@/renderer/features/radio/routes/radio-list-route')); const SearchRoute = lazy(() => import('/@/renderer/features/search/routes/search-route')); const FavoritesRoute = lazy(() => import('/@/renderer/features/favorites/routes/favorites-route')); const SettingsRoute = lazy(() => import('/@/renderer/features/settings/routes/settings-route')); const LazyLyricsSettingsContextModal = lazy(() => import('/@/renderer/features/lyrics/components/lyrics-settings-modal').then((module) => ({ default: module.LyricsSettingsContextModal, })), ); const LyricsSettingsContextModal = (props: any) => ( }> ); const LazyShuffleAllContextModal = lazy(() => import('/@/renderer/features/player/components/shuffle-all-modal').then((module) => ({ default: module.ShuffleAllContextModal, })), ); const ShuffleAllContextModal = (props: any) => ( }> ); const LazyAddToPlaylistContextModal = lazy(() => import('/@/renderer/features/playlists/components/add-to-playlist-context-modal').then( (module) => ({ default: module.AddToPlaylistContextModal, }), ), ); const AddToPlaylistContextModal = (props: any) => ( }> ); const LazySaveAndReplaceContextModal = lazy(() => import('/@/renderer/features/playlists/components/save-and-replace-context-modal').then( (module) => ({ default: module.SaveAndReplaceContextModal, }), ), ); const SaveAndReplaceContextModal = (props: any) => ( }> ); const LazyUpdatePlaylistContextModal = lazy(() => import('/@/renderer/features/playlists/components/update-playlist-form').then((module) => ({ default: module.UpdatePlaylistContextModal, })), ); const UpdatePlaylistContextModal = (props: any) => ( }> ); const LazySettingsContextModal = lazy(() => import('/@/renderer/features/settings/components/settings-modal').then((module) => ({ default: module.SettingsContextModal, })), ); const SettingsContextModal = (props: any) => ( }> ); const LazyShareItemContextModal = lazy(() => import('/@/renderer/features/sharing/components/share-item-context-modal').then((module) => ({ default: module.ShareItemContextModal, })), ); const ShareItemContextModal = (props: any) => ( }> ); const LazyVisualizerSettingsContextModal = lazy(() => import('/@/renderer/features/visualizer/components/audiomotionanalyzer/visualizer-settings-modal').then( (module) => ({ default: module.VisualizerSettingsContextModal, }), ), ); const VisualizerSettingsContextModal = (props: any) => ( }> ); const appRouterModals = { addToPlaylist: AddToPlaylistContextModal, base: BaseContextModal, lyricsSettings: LyricsSettingsContextModal, saveAndReplace: SaveAndReplaceContextModal, settings: SettingsContextModal, shareItem: ShareItemContextModal, shuffleAll: ShuffleAllContextModal, updatePlaylist: UpdatePlaylistContextModal, visualizerSettings: VisualizerSettingsContextModal, }; export const AppRouter = () => { const router = ( }> }> }> }> } index /> } path={AppRoute.HOME} /> } path={AppRoute.SEARCH} /> } path={AppRoute.FAVORITES} /> } path={AppRoute.SETTINGS} /> } path={AppRoute.NOW_PLAYING} /> } index /> } path={AppRoute.LIBRARY_GENRES_DETAIL} /> } path={AppRoute.LIBRARY_ALBUMS} /> } path={AppRoute.LIBRARY_ALBUMS_DETAIL} /> } path={AppRoute.LIBRARY_ARTISTS} /> } index /> } path={AppRoute.LIBRARY_ARTISTS_DETAIL_DISCOGRAPHY} /> } path={AppRoute.LIBRARY_ARTISTS_DETAIL_SONGS} /> } path={AppRoute.LIBRARY_ARTISTS_DETAIL_TOP_SONGS} /> } path={ AppRoute.LIBRARY_ARTISTS_DETAIL_FAVORITE_SONGS } /> } path={AppRoute.FAKE_LIBRARY_ALBUM_DETAILS} /> } path={AppRoute.LIBRARY_SONGS} /> } path={AppRoute.LIBRARY_FOLDERS} /> } path={AppRoute.PLAYLISTS} /> } path={AppRoute.RADIO} /> } path={AppRoute.PLAYLISTS_DETAIL_SONGS} /> } index /> } index /> } path={ AppRoute.LIBRARY_ALBUM_ARTISTS_DETAIL_DISCOGRAPHY } /> } path={ AppRoute.LIBRARY_ALBUM_ARTISTS_DETAIL_SONGS } /> } path={ AppRoute.LIBRARY_ALBUM_ARTISTS_DETAIL_TOP_SONGS } /> } path={ AppRoute.LIBRARY_ALBUM_ARTISTS_DETAIL_FAVORITE_SONGS } /> } path="*" /> }> }> } path={AppRoute.ACTION_REQUIRED} /> } path={AppRoute.LOGIN} /> }> } path={AppRoute.NO_NETWORK} /> ); return router; };