Files
jellyfin-audio-player/src/utility/useQueue.ts

26 lines
752 B
TypeScript
Raw Normal View History

2020-06-16 17:51:51 +02:00
import { useEffect, useState } from 'react';
import TrackPlayer, { usePlaybackState, Track } from 'react-native-track-player';
import { useTypedSelector } from 'store';
2020-06-16 17:51:51 +02:00
/**
* This hook retrieves the current playing track from TrackPlayer
*/
export default function useQueue(): Track[] {
2020-06-16 17:51:51 +02:00
const state = usePlaybackState();
const [queue, setQueue] = useState<Track[]>([]);
const addedTrackCount = useTypedSelector(state => state.player);
2020-06-16 17:51:51 +02:00
useEffect(() => {
TrackPlayer.getQueue().then(setQueue);
}, [state, addedTrackCount]);
2020-06-16 17:51:51 +02:00
return queue;
}
/**
* Shorthand helper to determine whether a queue exists
*/
export function useHasQueue(): boolean {
const queue = useQueue();
return !!queue && queue.length > 1;
}