diff --git a/web/src/components/Statusbar.tsx b/web/src/components/Statusbar.tsx index a210db508..1100ba3ae 100644 --- a/web/src/components/Statusbar.tsx +++ b/web/src/components/Statusbar.tsx @@ -32,7 +32,7 @@ export default function Statusbar() { const { potentialProblems } = useStats(stats); return ( -
+
{cpuPercent && (
diff --git a/web/src/components/filter/ReviewFilterGroup.tsx b/web/src/components/filter/ReviewFilterGroup.tsx index 91e390847..5baece1f9 100644 --- a/web/src/components/filter/ReviewFilterGroup.tsx +++ b/web/src/components/filter/ReviewFilterGroup.tsx @@ -75,6 +75,9 @@ export default function ReviewFilterGroup({ const cameras = filter?.cameras || Object.keys(config.cameras); cameras.forEach((camera) => { + if (camera == "birdseye") { + return; + } const cameraConfig = config.cameras[camera]; cameraConfig.objects.track.forEach((label) => { labels.add(label); @@ -219,24 +222,30 @@ function CamerasFilterButton({ const trigger = ( ); const content = ( <> - - Filter Cameras - - + {isMobile && ( + <> + + Cameras + + + + )}
@@ -664,10 +673,11 @@ function ShowMotionOnlyButton({
diff --git a/web/src/components/player/PreviewPlayer.tsx b/web/src/components/player/PreviewPlayer.tsx index 0237fa706..11ef78c1b 100644 --- a/web/src/components/player/PreviewPlayer.tsx +++ b/web/src/components/player/PreviewPlayer.tsx @@ -235,7 +235,7 @@ function PreviewVideoPlayer({ return (
{video && features.volume && (
@@ -170,9 +170,9 @@ export default function VideoControls({ )}
{isPlaying ? ( - + ) : ( - + )}
{features.seek && ( diff --git a/web/src/views/events/EventView.tsx b/web/src/views/events/EventView.tsx index 657d0c745..def4aa972 100644 --- a/web/src/views/events/EventView.tsx +++ b/web/src/views/events/EventView.tsx @@ -853,7 +853,10 @@ function MotionReview({ onClick={() => onOpenRecording({ camera: camera.name, - startTime: currentTime, + startTime: Math.min( + currentTime, + Date.now() / 1000 - 30, + ), severity: "significant_motion", }) } diff --git a/web/src/views/events/RecordingView.tsx b/web/src/views/events/RecordingView.tsx index a55c7a099..8283701df 100644 --- a/web/src/views/events/RecordingView.tsx +++ b/web/src/views/events/RecordingView.tsx @@ -38,6 +38,7 @@ import MobileCameraDrawer from "@/components/overlay/MobileCameraDrawer"; import MobileTimelineDrawer from "@/components/overlay/MobileTimelineDrawer"; import MobileReviewSettingsDrawer from "@/components/overlay/MobileReviewSettingsDrawer"; import Logo from "@/components/Logo"; +import { Skeleton } from "@/components/ui/skeleton"; const SEGMENT_DURATION = 30; @@ -503,26 +504,30 @@ function Timeline({
{timelineType == "timeline" ? ( - setScrubbing(scrubbing)} - /> + motionData ? ( + setScrubbing(scrubbing)} + /> + ) : ( + + ) ) : (