mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
feat(queue): add Timeline display mode (#1004)
* feat(queue): add Timeline display mode A third queue display mode alongside Queue and Playlist. Timeline shows the full queue anchored on the current track — played history above (dimmed), upcoming below — with 'History' and 'Up next' dividers and the current row auto-centered. It already follows shuffle order since the queue is stored in play order. The header mode button now cycles queue → timeline → playlist; Settings gains a third option. * i18n(queue): Timeline mode strings (9 locales) * docs(changelog): note Timeline queue mode (#1004)
This commit is contained in:
committed by
GitHub
parent
41157ccaca
commit
1c23305887
@@ -106,7 +106,7 @@ export function computeAuthStoreRehydration(state: AuthState): Partial<AuthState
|
||||
|
||||
// Missing key (pre-feature persist) / garbage maps to 'queue' — the default
|
||||
// mode, which lists only upcoming tracks.
|
||||
const VALID_QUEUE_DISPLAY_MODES = new Set<string>(['playlist', 'queue']);
|
||||
const VALID_QUEUE_DISPLAY_MODES = new Set<string>(['playlist', 'queue', 'timeline']);
|
||||
const queueDisplayModeMigrated = VALID_QUEUE_DISPLAY_MODES.has(
|
||||
(state as { queueDisplayMode?: unknown }).queueDisplayMode as string,
|
||||
)
|
||||
|
||||
@@ -42,7 +42,7 @@ export type DurationMode = 'total' | 'remaining' | 'eta';
|
||||
* - `queue`: the list shows upcoming tracks only — the current track lives in
|
||||
* the header and drops out of the list once it has played.
|
||||
*/
|
||||
export type QueueDisplayMode = 'playlist' | 'queue';
|
||||
export type QueueDisplayMode = 'playlist' | 'queue' | 'timeline';
|
||||
export type LoggingMode = 'off' | 'normal' | 'debug';
|
||||
/**
|
||||
* Wall-clock format for ETA / sleep-timer labels. `'auto'` follows the user's
|
||||
@@ -185,7 +185,9 @@ export interface AuthState {
|
||||
queueNowPlayingCollapsed: boolean;
|
||||
/** Queue header duration chip mode (cycle: total → remaining → ETA). */
|
||||
queueDurationDisplayMode: DurationMode;
|
||||
/** Queue panel render mode: full timeline (`playlist`) vs. upcoming-only (`queue`). */
|
||||
/** Queue panel render mode: full list from top (`playlist`), upcoming-only
|
||||
* (`queue`), or full list centered on the current track with history above
|
||||
* and up-next below (`timeline`). */
|
||||
queueDisplayMode: QueueDisplayMode;
|
||||
|
||||
/** Alpha: native hi-res sample rate output (disabled = safe 44.1 kHz mode) */
|
||||
|
||||
Reference in New Issue
Block a user