remove review detail dialog and link chip to detail stream in history

This commit is contained in:
Josh Hawkins 2025-10-24 08:44:44 -05:00
parent 696f2062b6
commit 8610a3c4e5
4 changed files with 19 additions and 10 deletions

View File

@ -66,6 +66,7 @@ export default function Events() {
camera: resp.data.camera, camera: resp.data.camera,
startTime, startTime,
severity: resp.data.severity, severity: resp.data.severity,
timelineType: "detail",
}, },
true, true,
); );

View File

@ -37,6 +37,7 @@ export type RecordingStartingPoint = {
camera: string; camera: string;
startTime: number; startTime: number;
severity: ReviewSeverity; severity: ReviewSeverity;
timelineType?: "timeline" | "events" | "detail";
}; };
export type RecordingPlayerError = "stalled" | "startup"; export type RecordingPlayerError = "stalled" | "startup";

View File

@ -53,8 +53,6 @@ import { cn } from "@/lib/utils";
import { FilterList, LAST_24_HOURS_KEY } from "@/types/filter"; import { FilterList, LAST_24_HOURS_KEY } from "@/types/filter";
import { GiSoundWaves } from "react-icons/gi"; import { GiSoundWaves } from "react-icons/gi";
import useKeyboardListener from "@/hooks/use-keyboard-listener"; import useKeyboardListener from "@/hooks/use-keyboard-listener";
import ReviewDetailDialog from "@/components/overlay/detail/ReviewDetailDialog";
import { useTimelineZoom } from "@/hooks/use-timeline-zoom"; import { useTimelineZoom } from "@/hooks/use-timeline-zoom";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
@ -398,6 +396,7 @@ export default function EventView({
onSelectAllReviews={onSelectAllReviews} onSelectAllReviews={onSelectAllReviews}
setSelectedReviews={setSelectedReviews} setSelectedReviews={setSelectedReviews}
pullLatestData={pullLatestData} pullLatestData={pullLatestData}
onOpenRecording={onOpenRecording}
/> />
)} )}
{severity == "significant_motion" && ( {severity == "significant_motion" && (
@ -441,6 +440,7 @@ type DetectionReviewProps = {
onSelectAllReviews: () => void; onSelectAllReviews: () => void;
setSelectedReviews: (reviews: ReviewSegment[]) => void; setSelectedReviews: (reviews: ReviewSegment[]) => void;
pullLatestData: () => void; pullLatestData: () => void;
onOpenRecording: (recordingInfo: RecordingStartingPoint) => void;
}; };
function DetectionReview({ function DetectionReview({
contentRef, contentRef,
@ -460,15 +460,12 @@ function DetectionReview({
onSelectAllReviews, onSelectAllReviews,
setSelectedReviews, setSelectedReviews,
pullLatestData, pullLatestData,
onOpenRecording,
}: DetectionReviewProps) { }: DetectionReviewProps) {
const { t } = useTranslation(["views/events"]); const { t } = useTranslation(["views/events"]);
const reviewTimelineRef = useRef<HTMLDivElement>(null); const reviewTimelineRef = useRef<HTMLDivElement>(null);
// detail
const [reviewDetail, setReviewDetail] = useState<ReviewSegment>();
// preview // preview
const [previewTime, setPreviewTime] = useState<number>(); const [previewTime, setPreviewTime] = useState<number>();
@ -688,8 +685,6 @@ function DetectionReview({
return ( return (
<> <>
<ReviewDetailDialog review={reviewDetail} setReview={setReviewDetail} />
<div <div
ref={contentRef} ref={contentRef}
className="no-scrollbar flex flex-1 flex-wrap content-start gap-2 overflow-y-auto md:gap-4" className="no-scrollbar flex flex-1 flex-wrap content-start gap-2 overflow-y-auto md:gap-4"
@ -750,7 +745,12 @@ function DetectionReview({
detail: boolean, detail: boolean,
) => { ) => {
if (detail) { if (detail) {
setReviewDetail(review); onOpenRecording({
camera: review.camera,
startTime: review.start_time - REVIEW_PADDING,
severity: review.severity,
timelineType: "detail",
});
} else { } else {
onSelectReview(review, ctrl); onSelectReview(review, ctrl);
} }

View File

@ -53,6 +53,7 @@ import {
ASPECT_VERTICAL_LAYOUT, ASPECT_VERTICAL_LAYOUT,
ASPECT_WIDE_LAYOUT, ASPECT_WIDE_LAYOUT,
RecordingSegment, RecordingSegment,
RecordingStartingPoint,
} from "@/types/record"; } from "@/types/record";
import { useResizeObserver } from "@/hooks/resize-observer"; import { useResizeObserver } from "@/hooks/resize-observer";
import { cn } from "@/lib/utils"; import { cn } from "@/lib/utils";
@ -141,9 +142,15 @@ export function RecordingView({
// timeline // timeline
const [recording] = useOverlayState<RecordingStartingPoint>(
"recording",
undefined,
false,
);
const [timelineType, setTimelineType] = useOverlayState<TimelineType>( const [timelineType, setTimelineType] = useOverlayState<TimelineType>(
"timelineType", "timelineType",
"timeline", recording?.timelineType ?? "timeline",
); );
const chunkedTimeRange = useMemo( const chunkedTimeRange = useMemo(