Files
mtdb_movie/common/resources/client/player/utils/player-local-storage.ts
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

34 lines
1.1 KiB
TypeScript
Executable File

import {getFromLocalStorage} from '@common/utils/hooks/local-storage';
import {PlayerStoreOptions} from '@common/player/state/player-store-options';
import {PlayerState} from '@common/player/state/player-state';
export interface PersistablePlayerState {
muted?: PlayerState['muted'];
repeat?: PlayerState['repeat'];
shuffling?: PlayerState['shuffling'];
volume?: PlayerState['volume'];
}
export interface PlayerInitialData {
state?: PersistablePlayerState;
queue?: PlayerState['originalQueue'];
cuedMediaId?: string | number;
}
export function getPlayerStateFromLocalStorage(
id: string | number,
options?: PlayerStoreOptions
): PlayerInitialData {
const defaultVolume = options?.defaultVolume || 30;
return {
state: {
muted: getFromLocalStorage(`player.${id}.muted`) ?? false,
repeat: getFromLocalStorage(`player.${id}.repeat`) ?? 'all',
shuffling: getFromLocalStorage(`player.${id}.shuffling`) ?? false,
volume: getFromLocalStorage(`player.${id}.volume`) ?? defaultVolume,
},
queue: getFromLocalStorage(`player.${id}.queue`, []),
cuedMediaId: getFromLocalStorage(`player.${id}.cuedMediaId`),
};
}