From 7550ad627ce3651d0315d87efefb3903dc45743b Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Tue, 12 Mar 2024 10:43:12 -0600 Subject: [PATCH] Show skeleton when switching previews --- web/src/components/player/PreviewPlayer.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/web/src/components/player/PreviewPlayer.tsx b/web/src/components/player/PreviewPlayer.tsx index fd9248697..cda436162 100644 --- a/web/src/components/player/PreviewPlayer.tsx +++ b/web/src/components/player/PreviewPlayer.tsx @@ -13,6 +13,7 @@ import { PreviewPlayback } from "@/types/playback"; import { isCurrentHour } from "@/utils/dateUtil"; import { baseUrl } from "@/api/baseUrl"; import { isAndroid } from "react-device-detect"; +import { Skeleton } from "../ui/skeleton"; type PreviewPlayerProps = { className?: string; @@ -119,6 +120,7 @@ function PreviewVideoPlayer({ // initial state + const [loaded, setLoaded] = useState(false); const initialPreview = useMemo(() => { return cameraPreviews.find( (preview) => @@ -152,6 +154,7 @@ function PreviewVideoPlayer({ Math.round(preview.start) >= timeRange.start && Math.floor(preview.end) <= timeRange.end, ); + setLoaded(false); setCurrentPreview(preview); controller.newPlayback({ @@ -186,6 +189,8 @@ function PreviewVideoPlayer({ disableRemotePlayback onSeeked={onPreviewSeeked} onLoadedData={() => { + setLoaded(true); + if (controller) { controller.previewReady(); } else { @@ -201,6 +206,7 @@ function PreviewVideoPlayer({ )} + {!loaded && } {cameraPreviews && !currentPreview && (
No Preview Found