From 31266164ed97e78b3589c942e47e00fa860cd21e Mon Sep 17 00:00:00 2001 From: Thiago Zimmermann Date: Fri, 29 Apr 2022 13:50:37 +0200 Subject: [PATCH] nui bug fix --- .../src/components/CurrentTrack/index.tsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Hypnonema.NUI/src/components/CurrentTrack/index.tsx b/src/Hypnonema.NUI/src/components/CurrentTrack/index.tsx index a2ee6bd..1a9b460 100644 --- a/src/Hypnonema.NUI/src/components/CurrentTrack/index.tsx +++ b/src/Hypnonema.NUI/src/components/CurrentTrack/index.tsx @@ -18,9 +18,11 @@ interface CurrentTrackProps { } export const CurrentTrack: FC = (props) => { + const [startedAt, setStartedAt] = useState(props.startedAt); + const [currentTime, setCurrentTime] = useState( Math.floor( - (new Date().getTime() - new Date(`${props.startedAt}`).getTime()) / 1000 + (new Date().getTime() - new Date(`${startedAt}`).getTime()) / 1000 ) ); @@ -38,11 +40,18 @@ export const CurrentTrack: FC = (props) => { if (currentTime < props.duration) { setCurrentTime((currentTime) => currentTime + 1); } else { + // start from beginning again if repeating + // TODO: find correct way + if (props.repeat) { + setCurrentTime(0); + setStartedAt(new Date().toISOString()); + return; + } setCurrentTime(props.duration); } }, 1000); return () => clearInterval(interval); - }, [currentTime, props.duration, props.isPaused]); + }, [currentTime, props.duration, props.isPaused, props.repeat]); function valueLabelFormat(value: number) { return new Date(1000 * value).toISOString().substr(11, 8);