import TimeAgo from "@/components/dynamic/TimeAgo"; import ActivityIndicator from "@/components/ui/activity-indicator"; import { Button } from "@/components/ui/button"; import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; import { FrigateConfig } from "@/types/frigateConfig"; import { ReviewSegment, ReviewSeverity } from "@/types/review"; import { formatUnixTimestampToDateTime } from "@/utils/dateUtil"; import { useMemo, useState } from "react"; import { LuCalendar, LuFilter, LuVideo } from "react-icons/lu"; import { MdCircle } from "react-icons/md"; import useSWR from "swr"; export default function Events() { const { data: config } = useSWR("config"); const [severity, setSeverity] = useState("alert"); const { data: reviewSegments } = useSWR("review"); const previewTimes = useMemo(() => { if (!reviewSegments) { return undefined; } const startDate = new Date(); startDate.setMinutes(0, 0, 0); const endDate = new Date(reviewSegments.at(-1)!!.end_time); endDate.setHours(0, 0, 0, 0); return { start: startDate.getTime() / 1000, end: endDate.getTime() / 1000, }; }, [reviewSegments]); const { data: allPreviews } = useSWR( previewTimes ? `preview/all/start/${previewTimes.start}/end/${previewTimes.end}` : null, { revalidateOnFocus: false } ); if (!config) { return ; } return ( <>
setSeverity(value)} > Alerts Detections Motion
{reviewSegments?.map((value) => { if (value.severity == severity) { return (
{value.camera} {value.data.objects}
{formatUnixTimestampToDateTime(value.start_time, { strftime_fmt: config.ui.time_format == "24hour" ? "%b %-d, %H:%M" : "%b %-d, %I:%M %p", })}
); } })}
); }