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