diff --git a/web/src/components/player/PreviewThumbnailPlayer.tsx b/web/src/components/player/PreviewThumbnailPlayer.tsx index 1e3c8db92..bd8c88190 100644 --- a/web/src/components/player/PreviewThumbnailPlayer.tsx +++ b/web/src/components/player/PreviewThumbnailPlayer.tsx @@ -2,7 +2,7 @@ import VideoPlayer from "./VideoPlayer"; import React, { useCallback, useEffect, useRef, useState } from "react"; import { useApiHost } from "@/api"; import Player from "video.js/dist/types/player"; -import { formatUnixTimestampToDateTime, isCurrentHour } from "@/utils/dateUtil"; +import { formatUnixTimestampToDateTime } from "@/utils/dateUtil"; import { isSafari } from "@/utils/browserUtil"; import { ReviewSegment } from "@/types/review"; import { Slider } from "../ui/slider"; @@ -34,12 +34,12 @@ export default function PreviewThumbnailPlayer({ setReviewed, onClick, }: PreviewPlayerProps) { + const apiHost = useApiHost(); const { data: config } = useSWR("config"); const playerRef = useRef(null); const [visible, setVisible] = useState(false); const [hover, setHover] = useState(false); - const [isInitiallyVisible, setIsInitiallyVisible] = useState(false); const [progress, setProgress] = useState(0); const onPlayback = useCallback( @@ -48,24 +48,18 @@ export default function PreviewThumbnailPlayer({ return; } - if (!playerRef.current) { - if (isHovered) { - setIsInitiallyVisible(true); - } - - return; - } - if (isHovered) { setHover(true); - playerRef.current.play(); } else { setHover(false); setProgress(0); - playerRef.current.pause(); - playerRef.current.currentTime( - review.start_time - relevantPreview.start - ); + + if (playerRef.current) { + playerRef.current.pause(); + playerRef.current.currentTime( + review.start_time - relevantPreview.start + ); + } } }, [relevantPreview, review, playerRef] @@ -127,17 +121,23 @@ export default function PreviewThumbnailPlayer({ onMouseEnter={() => onPlayback(true)} onMouseLeave={() => onPlayback(false)} > - + {hover ? ( + + ) : ( + + )} {!hover && (review.severity == "alert" || review.severity == "detection") && (
@@ -184,7 +184,6 @@ type PreviewContentProps = { review: ReviewSegment; relevantPreview: Preview | undefined; isVisible: boolean; - isInitiallyVisible: boolean; isMobile: boolean; setProgress?: (progress: number) => void; setReviewed?: () => void; @@ -195,13 +194,11 @@ function PreviewContent({ review, relevantPreview, isVisible, - isInitiallyVisible, isMobile, setProgress, setReviewed, onClick, }: PreviewContentProps) { - const apiHost = useApiHost(); const slowPlayack = isSafari(); // handle touchstart -> touchend as click @@ -228,23 +225,7 @@ function PreviewContent({ }); }, [playerRef, touchStart]); - if (relevantPreview && !isVisible) { - return
; - } else if (!relevantPreview && isCurrentHour(review.start_time)) { - return ( - - ); - } else if (!relevantPreview && !isCurrentHour(review.start_time)) { - return ( - - ); - } else { + if (relevantPreview && isVisible) { return ( { diff --git a/web/src/pages/Events.tsx b/web/src/pages/Events.tsx index ea72b5efd..ace4c631f 100644 --- a/web/src/pages/Events.tsx +++ b/web/src/pages/Events.tsx @@ -211,7 +211,6 @@ export default function Events() {
{reviewItems[severity]?.map((value, segIdx) => { const lastRow = segIdx == reviewItems[severity].length - 1; - const detectConfig = config.cameras[value.camera].detect; const relevantPreview = Object.values(allPreviews || []).find( (preview) => preview.camera == value.camera && @@ -223,10 +222,7 @@ export default function Events() {
; + return ; + case "cat": + return ; case "dog": - return ; + return ; case "package": return ; case "person": - return ; + return ; default: return ; }