diff --git a/web/src/components/player/PreviewPlayer.tsx b/web/src/components/player/PreviewPlayer.tsx index eb2665e4d..82b9ca8e7 100644 --- a/web/src/components/player/PreviewPlayer.tsx +++ b/web/src/components/player/PreviewPlayer.tsx @@ -323,7 +323,7 @@ function PreviewVideoPlayer({ {cameraPreviews && !currentPreview && (
- No Preview Found + No Preview Found for {camera.replaceAll("_", " ")}
)} {firstLoad && } @@ -536,7 +536,7 @@ function PreviewFramesPlayer({ /> {previewFrames?.length === 0 && (
- No Preview Found + No Preview Found for {camera.replaceAll("_", " ")}
)} {firstLoad && } diff --git a/web/src/views/events/RecordingView.tsx b/web/src/views/events/RecordingView.tsx index e9743eeec..f42e83a17 100644 --- a/web/src/views/events/RecordingView.tsx +++ b/web/src/views/events/RecordingView.tsx @@ -196,6 +196,19 @@ export function RecordingView({ updateSelectedSegment, ]); + const manuallySetCurrentTime = useCallback( + (time: number) => { + setCurrentTime(time); + + if (currentTimeRange.after <= time && currentTimeRange.before >= time) { + mainControllerRef.current?.seekToTimestamp(time, true); + } else { + updateSelectedSegment(time, true); + } + }, + [currentTimeRange, updateSelectedSegment], + ); + useEffect(() => { if (!scrubbing) { if (Math.abs(currentTime - playerTime) > 10) { @@ -580,6 +593,7 @@ export function RecordingView({ currentTime={currentTime} exportRange={exportMode == "timeline" ? exportRange : undefined} setCurrentTime={setCurrentTime} + manuallySetCurrentTime={manuallySetCurrentTime} setScrubbing={setScrubbing} setExportRange={setExportRange} /> @@ -597,6 +611,7 @@ type TimelineProps = { currentTime: number; exportRange?: TimeRange; setCurrentTime: React.Dispatch>; + manuallySetCurrentTime: (time: number, force: boolean) => void; setScrubbing: React.Dispatch>; setExportRange: (range: TimeRange) => void; }; @@ -609,6 +624,7 @@ function Timeline({ currentTime, exportRange, setCurrentTime, + manuallySetCurrentTime, setScrubbing, setExportRange, }: TimelineProps) { @@ -693,9 +709,10 @@ function Timeline({ event={review} currentTime={currentTime} onClick={() => { - setScrubbing(true); - setCurrentTime(review.start_time - REVIEW_PADDING); - setScrubbing(false); + manuallySetCurrentTime( + review.start_time - REVIEW_PADDING, + true, + ); }} /> );