From e05d4280600d7adb66accb29427bf44d2433b444 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 28 Feb 2024 08:41:31 -0700 Subject: [PATCH] Add ability to open to recordings from event gif --- .../components/image/AnimatedEventThumbnail.tsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/web/src/components/image/AnimatedEventThumbnail.tsx b/web/src/components/image/AnimatedEventThumbnail.tsx index affd668ad..a504c8956 100644 --- a/web/src/components/image/AnimatedEventThumbnail.tsx +++ b/web/src/components/image/AnimatedEventThumbnail.tsx @@ -1,11 +1,12 @@ import { baseUrl } from "@/api/baseUrl"; import TimeAgo from "../dynamic/TimeAgo"; import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/tooltip"; -import { useMemo } from "react"; +import { useCallback, useMemo } from "react"; import { useApiHost } from "@/api"; import useSWR from "swr"; import { FrigateConfig } from "@/types/frigateConfig"; import { ReviewSegment } from "@/types/review"; +import { useNavigate } from "react-router-dom"; type AnimatedEventThumbnailProps = { event: ReviewSegment; @@ -14,6 +15,15 @@ export function AnimatedEventThumbnail({ event }: AnimatedEventThumbnailProps) { const apiHost = useApiHost(); const { data: config } = useSWR("config"); + // interaction + + const navigate = useNavigate(); + const onOpenReview = useCallback(() => { + navigate("events", { state: { review: event.id } }); + }, [navigate, event]); + + // image behavior + const imageUrl = useMemo(() => { if (Date.now() / 1000 < event.start_time + 20) { return `${apiHost}api/preview/${event.camera}/${event.start_time}/thumbnail.jpg`; @@ -35,11 +45,12 @@ export function AnimatedEventThumbnail({ event }: AnimatedEventThumbnailProps) {