Viewing File: /home/markqprx/iniasli.pro/client/player/player-queue.ts
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,
};
}
Back to Directory
File Manager