import { formatUnixTimestampToDateTime } from "@/utils/dateUtil"; import { Dialog, DialogContent, DialogHeader, DialogTitle } from "../ui/dialog"; import useSWR from "swr"; import { FrigateConfig } from "@/types/frigateConfig"; import VideoPlayer from "../player/VideoPlayer"; import { useMemo } from "react"; import { useApiHost } from "@/api"; type TimelinePlayerCardProps = { timeline?: Card; onDismiss: () => void; }; export default function TimelinePlayerCard({ timeline, onDismiss, }: TimelinePlayerCardProps) { const { data: config } = useSWR("config"); const apiHost = useApiHost(); const recordingParams = useMemo(() => { if (!timeline) { return {}; } return { before: timeline.entries.at(-1)!!.timestamp + 30, after: timeline.entries.at(0)!!.timestamp, }; }, [timeline]); const { data: recordings } = useSWR( timeline ? [`${timeline.camera}/recordings`, recordingParams] : null, { revalidateOnFocus: false } ); return ( <> {`${timeline?.camera?.replaceAll( "_", " " )} @ ${formatUnixTimestampToDateTime(timeline?.time ?? 0, { strftime_fmt: config?.ui?.time_format == "24hour" ? "%H:%M:%S" : "%I:%M:%S", })}`} {recordings && recordings.length > 0 && ( )} ); }