refactor(player): E.42 — migrate playerStore re-exports to direct imports (#607)

Migrates ~74 call sites away from the playerStore re-export shims that
were kept during M0–E.41 to avoid touching 30+ imports per PR. Now
that the bigger refactor work is done, each helper goes back to its
real home:

- `initAudioListeners`, `installQueueUndoHotkey`, `flushPlayQueuePosition`
  → from their own store modules
- `getPlaybackProgressSnapshot`, `subscribePlaybackProgress`,
  `PlaybackProgressSnapshot` → from `playbackProgress`
- `resolveReplayGainDb`, `shuffleArray`, `songToTrack`
  → from `utils/*`
- `_resetQueueUndoStacksForTest`, `consumePendingQueueListScrollTop`,
  `registerQueueListScrollTopReader` → from `queueUndo`
- `PlayerState`, `Track` types → from `playerStoreTypes`

Drops the corresponding 13 re-export stubs from `playerStore.ts` and
the now-unused imports. Also drops dead section banners + per-wrapper
comments above one-line action delegates. Trims one stale "(separate
PR)" note in `transportLightActions.ts` since that follow-up landed
in E.39.

`playerStore.ts`: 180 → 112 LOC (−68). Down from Phase E's starting
3732 LOC.

`bootstrap.test.ts` mock target updated from `../store/playerStore`
to `../store/queueUndoHotkey` to keep the spy reachable after the
import change.
This commit is contained in:
Frank Stellmacher
2026-05-12 22:46:13 +02:00
committed by GitHub
parent e92535a5f5
commit 9fac6eb490
81 changed files with 155 additions and 236 deletions
+2 -6
View File
@@ -24,12 +24,8 @@ type SetState = (
type GetState = () => PlayerState;
/**
* Queue-mutation actions factored out of the playerStore `create()` body.
* All eleven members of the cluster: insertion (`enqueue`, `enqueueAt`,
* `playNext`, `enqueueRadio`, `setRadioArtistId`), pruning (`clearQueue`,
* `pruneUpcomingToCurrent`, `removeTrack`), and rearrangement
* (`reorderQueue`, `shuffleQueue`, `shuffleUpcomingQueue`). All but
* `setRadioArtistId` push a queue-undo snapshot and call
* Eleven queue-mutation actions. Shared invariant: every action except
* `setRadioArtistId` pushes a queue-undo snapshot and calls
* `syncQueueToServer` so the Navidrome `savePlayQueue` stays in sync.
*/
export function createQueueMutationActions(set: SetState, get: GetState): Pick<