From 9480199fe38e03ac288c18a65317dc96bc79dd95 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Fri, 17 May 2024 07:10:18 -0600 Subject: [PATCH] Fix recording layout previews --- web/src/components/player/PreviewPlayer.tsx | 58 ++++++++++++--------- web/src/views/events/RecordingView.tsx | 4 +- 2 files changed, 35 insertions(+), 27 deletions(-) diff --git a/web/src/components/player/PreviewPlayer.tsx b/web/src/components/player/PreviewPlayer.tsx index b6f98a540..364fd8898 100644 --- a/web/src/components/player/PreviewPlayer.tsx +++ b/web/src/components/player/PreviewPlayer.tsx @@ -40,6 +40,33 @@ export default function PreviewPlayer({ }: PreviewPlayerProps) { const [currentHourFrame, setCurrentHourFrame] = useState(); + const currentPreview = useMemo(() => { + return cameraPreviews.find( + (preview) => + preview.camera == camera && + Math.round(preview.start) >= timeRange.after && + Math.floor(preview.end) <= timeRange.before, + ); + }, [cameraPreviews, camera, timeRange]); + + if (currentPreview) { + return ( + + ); + } + if (isCurrentHour(timeRange.before)) { return ( - ); +
+ No Preview Found +
+ ) } export abstract class PreviewController { @@ -89,6 +107,7 @@ type PreviewVideoPlayerProps = { camera: string; timeRange: TimeRange; cameraPreviews: Preview[]; + initialPreview?: Preview; startTime?: number; isScrubbing: boolean; currentHourFrame?: string; @@ -101,6 +120,7 @@ function PreviewVideoPlayer({ camera, timeRange, cameraPreviews, + initialPreview, startTime, isScrubbing, currentHourFrame, @@ -147,18 +167,6 @@ function PreviewVideoPlayer({ const [firstLoad, setFirstLoad] = useState(true); - const initialPreview = useMemo(() => { - return cameraPreviews.find( - (preview) => - preview.camera == camera && - Math.round(preview.start) >= timeRange.after && - Math.floor(preview.end) <= timeRange.before, - ); - - // we only want to calculate this once - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - const [currentPreview, setCurrentPreview] = useState(initialPreview); const onPreviewSeeked = useCallback(() => { diff --git a/web/src/views/events/RecordingView.tsx b/web/src/views/events/RecordingView.tsx index ce9a7eebc..2f3efa715 100644 --- a/web/src/views/events/RecordingView.tsx +++ b/web/src/views/events/RecordingView.tsx @@ -544,7 +544,7 @@ export function RecordingView({ className={cn( "flex gap-2 overflow-auto", mainCameraAspect == "tall" - ? "h-full w-48 flex-col" + ? "h-full w-72 flex-col" : `h-28 w-full`, previewRowOverflows ? "" : "items-center justify-center", )} @@ -559,7 +559,7 @@ export function RecordingView({