/** * Copyright (c) Double Symmetry GmbH * Commercial use requires a license. See https://rntp.dev/pricing */ import { useEffect, useState } from 'react'; import * as TrackPlayer from '../audio'; import type { Progress } from '../interfaces'; /** * Returns the current playback progress, polling at the given interval. * @param updateInterval Polling interval in seconds (default: 1) */ export function useProgress(updateInterval: number = 1): Progress { const [progress, setProgress] = useState(() => TrackPlayer.getProgress() ); useEffect(() => { const id = setInterval(() => { setProgress(TrackPlayer.getProgress()); }, updateInterval * 1000); return () => clearInterval(id); }, [updateInterval]); return progress; }