diff --git a/src/components/PagedSongList.tsx b/src/features/search/components/PagedSongList.tsx similarity index 92% rename from src/components/PagedSongList.tsx rename to src/features/search/components/PagedSongList.tsx index eb7daedb..0334fae3 100644 --- a/src/components/PagedSongList.tsx +++ b/src/features/search/components/PagedSongList.tsx @@ -1,7 +1,7 @@ import type { SubsonicSong } from '@/lib/api/subsonicTypes'; import React, { useRef } from 'react'; -import SongRow, { SongListHeader } from './SongRow'; -import { useInpageScrollSentinel } from '../hooks/useInpageScrollSentinel'; +import SongRow, { SongListHeader } from '@/features/search/components/SongRow'; +import { useInpageScrollSentinel } from '@/hooks/useInpageScrollSentinel'; import InpageScrollSentinel from '@/ui/InpageScrollSentinel'; interface Props { diff --git a/src/components/tracks/SongBrowseSection.tsx b/src/features/search/components/SongBrowseSection.tsx similarity index 95% rename from src/components/tracks/SongBrowseSection.tsx rename to src/features/search/components/SongBrowseSection.tsx index 6aedd24a..eb388df7 100644 --- a/src/components/tracks/SongBrowseSection.tsx +++ b/src/features/search/components/SongBrowseSection.tsx @@ -1,7 +1,7 @@ import type { SubsonicSong } from '@/lib/api/subsonicTypes'; import React from 'react'; import { useTranslation } from 'react-i18next'; -import PagedSongList from '../PagedSongList'; +import PagedSongList from '@/features/search/components/PagedSongList'; interface Props { title?: string; diff --git a/src/components/SongRow.tsx b/src/features/search/components/SongRow.tsx similarity index 100% rename from src/components/SongRow.tsx rename to src/features/search/components/SongRow.tsx diff --git a/src/components/tracks/TracksPageChrome.tsx b/src/features/search/components/TracksPageChrome.tsx similarity index 97% rename from src/components/tracks/TracksPageChrome.tsx rename to src/features/search/components/TracksPageChrome.tsx index bb82e98b..067efc51 100644 --- a/src/components/tracks/TracksPageChrome.tsx +++ b/src/features/search/components/TracksPageChrome.tsx @@ -1,16 +1,16 @@ -import { AlbumCoverArtImage } from '../../cover/AlbumCoverArtImage'; +import { AlbumCoverArtImage } from '@/cover/AlbumCoverArtImage'; import { getRandomSongs } from '@/lib/api/subsonicLibrary'; import type { SubsonicSong } from '@/lib/api/subsonicTypes'; import { songToTrack } from '@/lib/media/songToTrack'; import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { Play, ListPlus, RefreshCw, Sparkles } from 'lucide-react'; import { useTranslation } from 'react-i18next'; -import { useAuthStore } from '../../store/authStore'; +import { useAuthStore } from '@/store/authStore'; import { usePlayerStore } from '@/features/playback/store/playerStore'; import { SongRail } from '@/features/home'; import { playSongNow } from '@/features/playback/utils/playback/playSong'; import { ndListSongs, ndInvalidateSongsCache } from '@/lib/api/navidromeBrowse'; -import { usePerfProbeFlags } from '../../utils/perf/perfFlags'; +import { usePerfProbeFlags } from '@/utils/perf/perfFlags'; import { useNavigateToAlbum } from '@/features/album'; import { useNavigateToArtist } from '@/features/artist'; import { OpenArtistRefInline } from '@/features/artist'; diff --git a/src/components/VirtualSongList.tsx b/src/features/search/components/VirtualSongList.tsx similarity index 80% rename from src/components/VirtualSongList.tsx rename to src/features/search/components/VirtualSongList.tsx index 79c94d1b..6436bedc 100644 --- a/src/components/VirtualSongList.tsx +++ b/src/features/search/components/VirtualSongList.tsx @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { useSongBrowseList } from '../hooks/useSongBrowseList'; -import SongBrowseSection from './tracks/SongBrowseSection'; +import { useSongBrowseList } from '@/features/search/hooks/useSongBrowseList'; +import SongBrowseSection from '@/features/search/components/SongBrowseSection'; interface Props { title?: string; diff --git a/src/hooks/useSongBrowseList.test.ts b/src/features/search/hooks/useSongBrowseList.test.ts similarity index 92% rename from src/hooks/useSongBrowseList.test.ts rename to src/features/search/hooks/useSongBrowseList.test.ts index 886d6b65..7b3104cb 100644 --- a/src/hooks/useSongBrowseList.test.ts +++ b/src/features/search/hooks/useSongBrowseList.test.ts @@ -2,9 +2,9 @@ import { renderHook, waitFor } from '@testing-library/react'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import type { SubsonicSong } from '@/lib/api/subsonicTypes'; -import { useSongBrowseList } from './useSongBrowseList'; -import { useAuthStore } from '../store/authStore'; -import { useLibraryIndexStore } from '../store/libraryIndexStore'; +import { useSongBrowseList } from '@/features/search/hooks/useSongBrowseList'; +import { useAuthStore } from '@/store/authStore'; +import { useLibraryIndexStore } from '@/store/libraryIndexStore'; vi.mock('@/lib/api/subsonicSearch', () => ({ searchSongsPaged: vi.fn(async () => []), diff --git a/src/hooks/useSongBrowseList.ts b/src/features/search/hooks/useSongBrowseList.ts similarity index 98% rename from src/hooks/useSongBrowseList.ts rename to src/features/search/hooks/useSongBrowseList.ts index dd93a555..04e281eb 100644 --- a/src/hooks/useSongBrowseList.ts +++ b/src/features/search/hooks/useSongBrowseList.ts @@ -12,8 +12,8 @@ import { runLocalBrowseSongPage, runNetworkBrowseSongPage, } from '@/lib/library/browseTextSearch'; -import { useAuthStore } from '../store/authStore'; -import { useLibraryIndexStore } from '../store/libraryIndexStore'; +import { useAuthStore } from '@/store/authStore'; +import { useLibraryIndexStore } from '@/store/libraryIndexStore'; import { useOfflineBrowseContext } from '@/features/offline'; import { useOfflineBrowseReloadToken } from '@/features/offline'; import { diff --git a/src/features/search/pages/SearchBrowsePage.tsx b/src/features/search/pages/SearchBrowsePage.tsx index ca20ca89..1a210918 100644 --- a/src/features/search/pages/SearchBrowsePage.tsx +++ b/src/features/search/pages/SearchBrowsePage.tsx @@ -8,7 +8,7 @@ import { SlidersVertical, Search, X } from 'lucide-react'; import { useTranslation } from 'react-i18next'; import { AlbumRow } from '@/features/album'; import { ArtistRow } from '@/features/artist'; -import PagedSongList from '@/components/PagedSongList'; +import PagedSongList from '@/features/search/components/PagedSongList'; import CustomSelect from '@/ui/CustomSelect'; import StarFilterButton from '@/ui/StarFilterButton'; import { tooltipAttrs } from '@/ui/tooltipAttrs'; @@ -58,9 +58,9 @@ import { import { useLibraryIndexStore } from '@/store/libraryIndexStore'; import { MOOD_GROUP_IDS } from '@/config/moodGroups'; import { usePerfProbeFlags } from '@/utils/perf/perfFlags'; -import { useSongBrowseList, type SongBrowseListRestore } from '@/hooks/useSongBrowseList'; -import TracksPageChrome from '@/components/tracks/TracksPageChrome'; -import SongBrowseSection from '@/components/tracks/SongBrowseSection'; +import { useSongBrowseList, type SongBrowseListRestore } from '@/features/search/hooks/useSongBrowseList'; +import TracksPageChrome from '@/features/search/components/TracksPageChrome'; +import SongBrowseSection from '@/features/search/components/SongBrowseSection'; import { useLiveSearchScopeStore, useScopedBrowseSearchQuery,