From 312fa782406964385f8fc826dd7fe3374a61f451 Mon Sep 17 00:00:00 2001 From: Psychotoxical <171614930+Psychotoxical@users.noreply.github.com> Date: Tue, 30 Jun 2026 19:59:38 +0200 Subject: [PATCH] refactor(playback,playlist): move player-bar overflow/popover/delay + bulk-picker hooks into their features --- src/features/favorites/pages/Favorites.tsx | 2 +- src/features/fullscreenPlayer/components/FsPlayBtn.tsx | 2 +- src/features/nowPlaying/components/MobilePlayerView.tsx | 2 +- src/features/playback/components/PlayerBar.tsx | 4 ++-- .../playback/components/playerBar/PlayerPlaybackRate.tsx | 2 +- .../playback/components/playerBar/PlayerTransportControls.tsx | 2 +- src/{ => features/playback}/hooks/usePlaybackDelayPress.ts | 0 .../playback}/hooks/usePlayerBarAnchoredPopover.ts | 0 src/{ => features/playback}/hooks/useUtilityOverflowMenu.ts | 0 .../playlist}/hooks/useBulkPlPickerOutsideClick.ts | 0 src/features/playlist/pages/PlaylistDetail.tsx | 2 +- 11 files changed, 8 insertions(+), 8 deletions(-) rename src/{ => features/playback}/hooks/usePlaybackDelayPress.ts (100%) rename src/{ => features/playback}/hooks/usePlayerBarAnchoredPopover.ts (100%) rename src/{ => features/playback}/hooks/useUtilityOverflowMenu.ts (100%) rename src/{ => features/playlist}/hooks/useBulkPlPickerOutsideClick.ts (100%) diff --git a/src/features/favorites/pages/Favorites.tsx b/src/features/favorites/pages/Favorites.tsx index 39cf36d4..f75882cf 100644 --- a/src/features/favorites/pages/Favorites.tsx +++ b/src/features/favorites/pages/Favorites.tsx @@ -8,7 +8,7 @@ import FavoritesSongsTracklist from '@/features/favorites/components/FavoritesSo import { useFavoritesData } from '@/features/favorites/hooks/useFavoritesData'; import { useFavoritesSongFiltering } from '@/features/favorites/hooks/useFavoritesSongFiltering'; import { useFavoritesSelection } from '@/features/favorites/hooks/useFavoritesSelection'; -import { useBulkPlPickerOutsideClick } from '@/hooks/useBulkPlPickerOutsideClick'; +import { useBulkPlPickerOutsideClick } from '@/features/playlist/hooks/useBulkPlPickerOutsideClick'; import { AlbumRow } from '@/features/album'; import { ArtistRow } from '@/features/artist'; import { usePlayerStore } from '@/features/playback/store/playerStore'; diff --git a/src/features/fullscreenPlayer/components/FsPlayBtn.tsx b/src/features/fullscreenPlayer/components/FsPlayBtn.tsx index afd7b83c..92b2f59c 100644 --- a/src/features/fullscreenPlayer/components/FsPlayBtn.tsx +++ b/src/features/fullscreenPlayer/components/FsPlayBtn.tsx @@ -2,7 +2,7 @@ import React, { memo, useRef } from 'react'; import { Moon, Pause, Play, Sunrise } from 'lucide-react'; import { useTranslation } from 'react-i18next'; import { usePlayerStore } from '@/features/playback/store/playerStore'; -import { usePlaybackDelayPress } from '@/hooks/usePlaybackDelayPress'; +import { usePlaybackDelayPress } from '@/features/playback/hooks/usePlaybackDelayPress'; import { usePlaybackScheduleRemaining } from '@/utils/format/playbackScheduleFormat'; import PlaybackDelayModal from '@/features/playback/components/PlaybackDelayModal'; import PlaybackScheduleBadge from '@/features/playback/components/PlaybackScheduleBadge'; diff --git a/src/features/nowPlaying/components/MobilePlayerView.tsx b/src/features/nowPlaying/components/MobilePlayerView.tsx index c1cca45d..6b1b5958 100644 --- a/src/features/nowPlaying/components/MobilePlayerView.tsx +++ b/src/features/nowPlaying/components/MobilePlayerView.tsx @@ -23,7 +23,7 @@ import { subscribeQueueResolver, } from '@/features/playback/store/queueTrackResolver'; import { LyricsPane } from '@/features/lyrics'; -import { usePlaybackDelayPress } from '@/hooks/usePlaybackDelayPress'; +import { usePlaybackDelayPress } from '@/features/playback/hooks/usePlaybackDelayPress'; import PlaybackDelayModal from '@/features/playback/components/PlaybackDelayModal'; import PlaybackScheduleBadge from '@/features/playback/components/PlaybackScheduleBadge'; import { usePlaybackScheduleRemaining } from '@/utils/format/playbackScheduleFormat'; diff --git a/src/features/playback/components/PlayerBar.tsx b/src/features/playback/components/PlayerBar.tsx index 2e494823..3f546261 100644 --- a/src/features/playback/components/PlayerBar.tsx +++ b/src/features/playback/components/PlayerBar.tsx @@ -17,7 +17,7 @@ import { useTranslation } from 'react-i18next'; import { usePlaybackLibraryNavigate } from '@/features/playback/hooks/usePlaybackLibraryNavigate'; import { useRadioMetadata } from '@/features/radio'; import { useRadioMprisSync } from '@/features/radio'; -import { usePlaybackDelayPress } from '@/hooks/usePlaybackDelayPress'; +import { usePlaybackDelayPress } from '@/features/playback/hooks/usePlaybackDelayPress'; import PlaybackDelayModal from '@/features/playback/components/PlaybackDelayModal'; import { usePlaybackScheduleRemaining } from '@/utils/format/playbackScheduleFormat'; import { usePreviewStore } from '@/features/playback/store/previewStore'; @@ -31,7 +31,7 @@ import { PlayerPlaybackRate } from '@/features/playback/components/playerBar/Pla import { PlayerVolume } from '@/features/playback/components/playerBar/PlayerVolume'; import { PlayerOverflowMenu } from '@/features/playback/components/playerBar/PlayerOverflowMenu'; import { useFloatingPlayerBar } from '@/features/playback/hooks/useFloatingPlayerBar'; -import { useUtilityOverflowMenu } from '@/hooks/useUtilityOverflowMenu'; +import { useUtilityOverflowMenu } from '@/features/playback/hooks/useUtilityOverflowMenu'; import { usePlayerBarLayoutStore, type PlayerBarLayoutItemId, diff --git a/src/features/playback/components/playerBar/PlayerPlaybackRate.tsx b/src/features/playback/components/playerBar/PlayerPlaybackRate.tsx index 319096fd..d9ceb1a9 100644 --- a/src/features/playback/components/playerBar/PlayerPlaybackRate.tsx +++ b/src/features/playback/components/playerBar/PlayerPlaybackRate.tsx @@ -15,7 +15,7 @@ import { varispeedSpeedFromSemitones, } from '@/features/playback/utils/audio/playbackRateHelpers'; import { isOrbitPlaybackSyncActive } from '@/features/orbit'; -import { usePlayerBarAnchoredPopover } from '@/hooks/usePlayerBarAnchoredPopover'; +import { usePlayerBarAnchoredPopover } from '@/features/playback/hooks/usePlayerBarAnchoredPopover'; const POPOVER_WIDTH = 320; diff --git a/src/features/playback/components/playerBar/PlayerTransportControls.tsx b/src/features/playback/components/playerBar/PlayerTransportControls.tsx index ffa7f66f..75bbff75 100644 --- a/src/features/playback/components/playerBar/PlayerTransportControls.tsx +++ b/src/features/playback/components/playerBar/PlayerTransportControls.tsx @@ -6,7 +6,7 @@ import type { PlayerState } from '@/features/playback/store/playerStoreTypes'; import { useAutodjTransitionUi } from '@/features/playback/store/autodjTransitionUi'; import { usePreviewStore } from '@/features/playback/store/previewStore'; import PlaybackScheduleBadge from '@/features/playback/components/PlaybackScheduleBadge'; -import { usePlaybackDelayPress } from '@/hooks/usePlaybackDelayPress'; +import { usePlaybackDelayPress } from '@/features/playback/hooks/usePlaybackDelayPress'; import { usePlaybackScheduleRemaining } from '@/utils/format/playbackScheduleFormat'; type RepeatMode = PlayerState['repeatMode']; diff --git a/src/hooks/usePlaybackDelayPress.ts b/src/features/playback/hooks/usePlaybackDelayPress.ts similarity index 100% rename from src/hooks/usePlaybackDelayPress.ts rename to src/features/playback/hooks/usePlaybackDelayPress.ts diff --git a/src/hooks/usePlayerBarAnchoredPopover.ts b/src/features/playback/hooks/usePlayerBarAnchoredPopover.ts similarity index 100% rename from src/hooks/usePlayerBarAnchoredPopover.ts rename to src/features/playback/hooks/usePlayerBarAnchoredPopover.ts diff --git a/src/hooks/useUtilityOverflowMenu.ts b/src/features/playback/hooks/useUtilityOverflowMenu.ts similarity index 100% rename from src/hooks/useUtilityOverflowMenu.ts rename to src/features/playback/hooks/useUtilityOverflowMenu.ts diff --git a/src/hooks/useBulkPlPickerOutsideClick.ts b/src/features/playlist/hooks/useBulkPlPickerOutsideClick.ts similarity index 100% rename from src/hooks/useBulkPlPickerOutsideClick.ts rename to src/features/playlist/hooks/useBulkPlPickerOutsideClick.ts diff --git a/src/features/playlist/pages/PlaylistDetail.tsx b/src/features/playlist/pages/PlaylistDetail.tsx index 985c7f1c..f5b91c28 100644 --- a/src/features/playlist/pages/PlaylistDetail.tsx +++ b/src/features/playlist/pages/PlaylistDetail.tsx @@ -38,7 +38,7 @@ import { usePlaylistPreview } from '@/features/playlist/hooks/usePlaylistPreview import { usePlaylistBulkPlayCallbacks } from '@/features/playlist/hooks/usePlaylistBulkPlayCallbacks'; import { usePlaylistDerived } from '@/features/playlist/hooks/usePlaylistDerived'; import { usePlaylistRouteEffects } from '@/features/playlist/hooks/usePlaylistRouteEffects'; -import { useBulkPlPickerOutsideClick } from '@/hooks/useBulkPlPickerOutsideClick'; +import { useBulkPlPickerOutsideClick } from '@/features/playlist/hooks/useBulkPlPickerOutsideClick'; import { usePlaylistDnDReorder } from '@/features/playlist/hooks/usePlaylistDnDReorder'; import { useOfflineBrowseContext } from '@/features/offline'; import { offlineActionPolicy } from '@/features/offline';