diff --git a/src/app/AppShell.tsx b/src/app/AppShell.tsx index 678bf760..b2ad3404 100644 --- a/src/app/AppShell.tsx +++ b/src/app/AppShell.tsx @@ -23,7 +23,7 @@ import ThemeMigrationNotice from '../components/ThemeMigrationNotice'; import OrbitAccountPicker from '../components/OrbitAccountPicker'; import OrbitHelpModal from '../components/OrbitHelpModal'; import TooltipPortal from '@/ui/TooltipPortal'; -import OverlayScrollArea from '../components/OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { APP_MAIN_SCROLL_VIEWPORT_ID, mainRouteInpageScrollViewportId, diff --git a/src/components/LyricsPane.tsx b/src/components/LyricsPane.tsx index 0ccc1185..db5ceb2f 100644 --- a/src/components/LyricsPane.tsx +++ b/src/components/LyricsPane.tsx @@ -8,7 +8,7 @@ import { useAuthStore } from '../store/authStore'; import { useTranslation } from 'react-i18next'; import type { Track } from '../store/playerStoreTypes'; import { EaseScroller, targetForFraction } from '../utils/ui/easeScroll'; -import OverlayScrollArea from './OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; interface Props { currentTrack: Track | null; diff --git a/src/components/NowPlayingInfo.tsx b/src/components/NowPlayingInfo.tsx index ba75c3dc..be9ea05d 100644 --- a/src/components/NowPlayingInfo.tsx +++ b/src/components/NowPlayingInfo.tsx @@ -10,7 +10,7 @@ import { useAuthStore } from '../store/authStore'; import { usePlaybackServerId } from '../hooks/usePlaybackServerId'; import { fetchBandsintownEvents, type BandsintownEvent } from '../api/bandsintown'; import CachedImage from './CachedImage'; -import OverlayScrollArea from './OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { primaryTrackArtistRef } from '../utils/playback/trackArtistRefs'; const TOUR_LIMIT = 5; diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx index ed210dd4..913eafed 100644 --- a/src/components/Sidebar.tsx +++ b/src/components/Sidebar.tsx @@ -12,7 +12,7 @@ import { PanelLeft, PanelLeftClose, Trash2 } from 'lucide-react'; import PsysonicLogo from './PsysonicLogo'; import PSmallLogo from './PSmallLogo'; import { usePlaylistStore } from '../store/playlistStore'; -import OverlayScrollArea from './OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { getLibraryItemsForReorder, getSystemItemsForReorder, diff --git a/src/components/miniPlayer/MiniQueue.tsx b/src/components/miniPlayer/MiniQueue.tsx index 824dee58..1a6c5689 100644 --- a/src/components/miniPlayer/MiniQueue.tsx +++ b/src/components/miniPlayer/MiniQueue.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { useVirtualizer } from '@tanstack/react-virtual'; import type { TFunction } from 'i18next'; -import OverlayScrollArea from '../OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import type { MiniSyncPayload, MiniTrackInfo } from '../../utils/miniPlayerBridge'; // Stable initial rect so the virtualizer never re-initializes on re-render (an diff --git a/src/components/queuePanel/QueueList.tsx b/src/components/queuePanel/QueueList.tsx index 08f6dc56..8a0eb01f 100644 --- a/src/components/queuePanel/QueueList.tsx +++ b/src/components/queuePanel/QueueList.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useSyncExternalStore } from 'react'; import { useVirtualizer } from '@tanstack/react-virtual'; import { Play } from 'lucide-react'; import type { TFunction } from 'i18next'; -import OverlayScrollArea from '../OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { usePlayerStore } from '../../store/playerStore'; import { useLuckyMixStore } from '../../store/luckyMixStore'; import type { QueueItemRef, PlayerState } from '../../store/playerStoreTypes'; diff --git a/src/components/search/ShareQueuePreviewModal.tsx b/src/components/search/ShareQueuePreviewModal.tsx index d5b50ee4..6615db22 100644 --- a/src/components/search/ShareQueuePreviewModal.tsx +++ b/src/components/search/ShareQueuePreviewModal.tsx @@ -7,7 +7,7 @@ import type { ServerProfile } from '../../store/authStoreTypes'; import { formatTrackTime } from '../../utils/format/formatDuration'; import type { ShareQueuePreviewState } from '../../hooks/useShareQueuePreview'; import { sharePayloadTotal, type QueueableShareSearchPayload } from '../../utils/share/shareSearch'; -import OverlayScrollArea from '../OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { usePlayerStore } from '../../store/playerStore'; import { COVER_DENSE_SEARCH_CSS_PX } from '../../cover/layoutSizes'; import { COVER_SCOPE_ACTIVE, type CoverServerScope } from '../../cover/types'; diff --git a/src/pages/Albums.tsx b/src/pages/Albums.tsx index c899ea61..d9ca0eb0 100644 --- a/src/pages/Albums.tsx +++ b/src/pages/Albums.tsx @@ -31,7 +31,7 @@ import { useMainstageInpageHeaderTight } from '../hooks/useMainstageInpageHeader import { useInpageScrollViewport } from '../hooks/useInpageScrollViewport'; import InpageScrollSentinel from '../components/InpageScrollSentinel'; import { VirtualCardGrid } from '../components/VirtualCardGrid'; -import OverlayScrollArea from '../components/OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { ALBUMS_INPAGE_SCROLL_VIEWPORT_ID } from '../constants/appScroll'; import { useLibraryIndexStore } from '../store/libraryIndexStore'; import { useAlbumBrowseFilters, useAlbumBrowseScrollSnapshotSync, type AlbumBrowseScrollSnapshot } from '../hooks/useAlbumBrowseFilters'; diff --git a/src/pages/Artists.tsx b/src/pages/Artists.tsx index 3dda0c87..6ac04033 100644 --- a/src/pages/Artists.tsx +++ b/src/pages/Artists.tsx @@ -3,7 +3,7 @@ import { useLocation, useNavigate } from 'react-router-dom'; import { LayoutGrid, List, Images } from 'lucide-react'; import SelectionToggleButton from '../components/SelectionToggleButton'; import StarFilterButton from '../components/StarFilterButton'; -import OverlayScrollArea from '../components/OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { usePlayerStore } from '../store/playerStore'; import { useAuthStore } from '../store/authStore'; import { useTranslation } from 'react-i18next'; diff --git a/src/pages/Composers.tsx b/src/pages/Composers.tsx index b2026070..f49fc50e 100644 --- a/src/pages/Composers.tsx +++ b/src/pages/Composers.tsx @@ -24,7 +24,7 @@ import { ALL_SENTINEL, artistLetterBucket } from '../utils/componentHelpers/arti import { useLibraryIgnoredArticles } from '../hooks/useLibraryIgnoredArticles'; import { usePerfProbeFlags } from '../utils/perf/perfFlags'; import { VirtualCardGrid } from '../components/VirtualCardGrid'; -import OverlayScrollArea from '../components/OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { useVirtualizerScrollMargin } from '../hooks/useVirtualizerScrollMargin'; import { useClientSliceInfiniteScroll } from '../hooks/useClientSliceInfiniteScroll'; import { useInpageScrollViewport } from '../hooks/useInpageScrollViewport'; diff --git a/src/pages/GenreDetail.tsx b/src/pages/GenreDetail.tsx index 92859101..53c31cf5 100644 --- a/src/pages/GenreDetail.tsx +++ b/src/pages/GenreDetail.tsx @@ -5,7 +5,7 @@ import { ArrowLeft, Disc3, Play, ListPlus, Loader2 } from 'lucide-react'; import AlbumCard from '../components/AlbumCard'; import { LongPressWaveOverlay } from '../components/LongPressWaveOverlay'; import InpageScrollSentinel from '../components/InpageScrollSentinel'; -import OverlayScrollArea from '../components/OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { VirtualCardGrid } from '../components/VirtualCardGrid'; import { GENRE_DETAIL_INPAGE_SCROLL_VIEWPORT_ID } from '../constants/appScroll'; import { albumGridWarmCovers } from '../cover/layoutSizes'; diff --git a/src/pages/LosslessAlbums.tsx b/src/pages/LosslessAlbums.tsx index 987713e6..a2dcebe6 100644 --- a/src/pages/LosslessAlbums.tsx +++ b/src/pages/LosslessAlbums.tsx @@ -22,7 +22,7 @@ import { Download, HardDriveDownload, ListPlus } from 'lucide-react'; import SelectionToggleButton from '../components/SelectionToggleButton'; import { albumGridWarmCovers } from '../cover/layoutSizes'; import { VirtualCardGrid } from '../components/VirtualCardGrid'; -import OverlayScrollArea from '../components/OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { LOSSLESS_ALBUMS_INPAGE_SCROLL_VIEWPORT_ID } from '../constants/appScroll'; import { useInpageScrollSentinel } from '../hooks/useInpageScrollSentinel'; import { useInpageScrollViewport } from '../hooks/useInpageScrollViewport'; diff --git a/src/pages/NewReleases.tsx b/src/pages/NewReleases.tsx index 3698ffbd..28610930 100644 --- a/src/pages/NewReleases.tsx +++ b/src/pages/NewReleases.tsx @@ -23,7 +23,7 @@ import { usePerfProbeFlags } from '../utils/perf/perfFlags'; import { useMainstageInpageHeaderTight } from '../hooks/useMainstageInpageHeaderTight'; import { albumGridWarmCovers } from '../cover/layoutSizes'; import { VirtualCardGrid } from '../components/VirtualCardGrid'; -import OverlayScrollArea from '../components/OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { NEW_RELEASES_INPAGE_SCROLL_VIEWPORT_ID } from '../constants/appScroll'; import { useAsyncInpagePagination } from '../hooks/useAsyncInpagePagination'; import { useInpageScrollSentinel } from '../hooks/useInpageScrollSentinel'; diff --git a/src/pages/NowPlaying.tsx b/src/pages/NowPlaying.tsx index d933702a..0cec34fe 100644 --- a/src/pages/NowPlaying.tsx +++ b/src/pages/NowPlaying.tsx @@ -14,7 +14,7 @@ import { useLyricsStore } from '../store/lyricsStore'; import { songToTrack } from '../utils/playback/songToTrack'; import { useRadioMetadata } from '../hooks/useRadioMetadata'; import { useDragDrop } from '../contexts/DragDropContext'; -import OverlayScrollArea from '../components/OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { useNpLayoutStore, NP_CARD_IDS, type NpCardId, type NpColumn, diff --git a/src/pages/RandomAlbums.tsx b/src/pages/RandomAlbums.tsx index 5e966094..d8ac66f2 100644 --- a/src/pages/RandomAlbums.tsx +++ b/src/pages/RandomAlbums.tsx @@ -29,7 +29,7 @@ import { primeAlbumCoversForDisplay, } from '../cover/warmDiskPeek'; import { VirtualCardGrid } from '../components/VirtualCardGrid'; -import OverlayScrollArea from '../components/OverlayScrollArea'; +import OverlayScrollArea from '@/ui/OverlayScrollArea'; import { RANDOM_ALBUMS_INPAGE_SCROLL_VIEWPORT_ID } from '../constants/appScroll'; import { useMainstageInpageHeaderTight } from '../hooks/useMainstageInpageHeaderTight'; import { useInpageScrollViewport } from '../hooks/useInpageScrollViewport'; diff --git a/src/components/OverlayScrollArea.tsx b/src/ui/OverlayScrollArea.tsx similarity index 96% rename from src/components/OverlayScrollArea.tsx rename to src/ui/OverlayScrollArea.tsx index ddc2aa9b..757b35e4 100644 --- a/src/components/OverlayScrollArea.tsx +++ b/src/ui/OverlayScrollArea.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'; -import { computeOverlayScrollbarThumbMeta } from '../utils/ui/overlayScrollbarMetrics'; -import { bindOverlayScrollbarThumbDrag } from '../utils/ui/overlayScrollbarThumb'; -import { usePerfProbeFlags } from '../utils/perf/perfFlags'; +import { computeOverlayScrollbarThumbMeta } from '@/utils/ui/overlayScrollbarMetrics'; +import { bindOverlayScrollbarThumbDrag } from '@/utils/ui/overlayScrollbarThumb'; +import { usePerfProbeFlags } from '@/utils/perf/perfFlags'; export type OverlayScrollRailInset = 'none' | 'mini' | 'panel';