first commit
Some checks failed
Build / run (push) Has been cancelled

This commit is contained in:
maher
2025-10-29 11:42:25 +01:00
commit 703f50a09d
4595 changed files with 385164 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
import {useContext, useMemo} from 'react';
import {PlayerStoreContext} from '@common/player/player-context';
import {MediaItem} from '@common/player/media-item';
export type PlayerActions = ReturnType<typeof usePlayerActions>;
export function usePlayerActions() {
const store = useContext(PlayerStoreContext);
return useMemo(() => {
const s = store.getState();
const overrideQueueAndPlay = async (
mediaItems: MediaItem[],
queuePointer?: number
) => {
s.stop();
await s.overrideQueue(mediaItems, queuePointer);
return s.play();
};
return {
play: s.play,
playNext: s.playNext,
playPrevious: s.playPrevious,
pause: s.pause,
subscribe: s.subscribe,
emit: s.emit,
getCurrentTime: s.getCurrentTime,
seek: s.seek,
toggleRepeatMode: s.toggleRepeatMode,
toggleShuffling: s.toggleShuffling,
getState: store.getState,
setVolume: s.setVolume,
setMuted: s.setMuted,
appendToQueue: s.appendToQueue,
removeFromQueue: s.removeFromQueue,
enterFullscreen: s.enterFullscreen,
exitFullscreen: s.exitFullscreen,
toggleFullscreen: s.toggleFullscreen,
enterPip: s.enterPip,
exitPip: s.exitPip,
setTextTrackVisibility: s.setTextTrackVisibility,
setCurrentTextTrack: s.setCurrentTextTrack,
setCurrentAudioTrack: s.setCurrentAudioTrack,
setIsSeeking: s.setIsSeeking,
setControlsVisible: s.setControlsVisible,
cue: s.cue,
overrideQueueAndPlay,
overrideQueue: s.overrideQueue,
setPlaybackRate: s.setPlaybackRate,
setPlaybackQuality: s.setPlaybackQuality,
};
}, [store]);
}