Files
maher 511fad8199
Build / run (push) Has been cancelled
Initial commit
2026-05-14 13:42:10 +02:00

44 lines
1.1 KiB
TypeScript
Executable File

import {MediaItem} from '@common/player/media-item';
import {PlayerState} from '@common/player/state/player-state';
export function playerQueue(state: () => PlayerState) {
const getPointer = (): number => {
if (state().cuedMedia) {
return (
state().shuffledQueue.findIndex(
item => item.id === state().cuedMedia?.id
) || 0
);
}
return 0;
};
const getCurrent = (): MediaItem | undefined => {
return state().shuffledQueue[getPointer()];
};
const getFirst = (): MediaItem | undefined => {
return state().shuffledQueue[0];
};
const getLast = (): MediaItem | undefined => {
return state().shuffledQueue[state().shuffledQueue.length - 1];
};
const getNext = (): MediaItem | undefined => {
return state().shuffledQueue[getPointer() + 1];
};
const getPrevious = (): MediaItem | undefined => {
return state().shuffledQueue[getPointer() - 1];
};
const isLast = (): boolean => {
return getPointer() === state().originalQueue.length - 1;
};
return {
getPointer,
getCurrent,
getFirst,
getLast,
getNext,
getPrevious,
isLast,
};
}