import { Suspense } from 'react'; import { useParams, useSearchParams } from 'react-router'; import { AlbumListView, OverrideAlbumListQuery, } from '/@/renderer/features/albums/components/album-list-content'; import { AlbumArtistListView, OverrideAlbumArtistListQuery, } from '/@/renderer/features/artists/components/album-artist-list-content'; import { AnimatedPage } from '/@/renderer/features/shared/components/animated-page'; import { OverrideSongListQuery, SongListView, } from '/@/renderer/features/songs/components/song-list-content'; import { useListSettings } from '/@/renderer/store'; import { Spinner } from '/@/shared/components/spinner/spinner'; import { AlbumArtistListSort, AlbumListSort, LibraryItem, SongListSort, SortOrder, } from '/@/shared/types/domain-types'; import { ItemListKey } from '/@/shared/types/types'; export const SearchContent = () => { const { itemType } = useParams() as { itemType: LibraryItem }; return ( }> {itemType === LibraryItem.ALBUM && } {itemType === LibraryItem.SONG && } {itemType === LibraryItem.ALBUM_ARTIST && } ); }; const AlbumSearch = () => { const { display, grid, itemsPerPage, pagination, table } = useListSettings(ItemListKey.ALBUM); const [searchParams] = useSearchParams(); const albumQuery: OverrideAlbumListQuery = { searchTerm: searchParams.get('query') || '', sortBy: AlbumListSort.NAME, sortOrder: SortOrder.ASC, }; return ( ); }; const SongSearch = () => { const { display, grid, itemsPerPage, pagination, table } = useListSettings(ItemListKey.SONG); const [searchParams] = useSearchParams(); const songQuery: OverrideSongListQuery = { searchTerm: searchParams.get('query') || '', sortBy: SongListSort.NAME, sortOrder: SortOrder.ASC, }; return ( ); }; const ArtistSearch = () => { const { display, grid, itemsPerPage, pagination, table } = useListSettings(ItemListKey.ARTIST); const [searchParams] = useSearchParams(); const albumArtistQuery: OverrideAlbumArtistListQuery = { searchTerm: searchParams.get('query') || '', sortBy: AlbumArtistListSort.NAME, sortOrder: SortOrder.ASC, }; return ( ); };