Review summary (#10196)

* Create review summary api to get information about reviewed and unreviewed events on each day

* remove unused

* Fix tests

* Format tests

* Fix
This commit is contained in:
Nicolas Mowen
2024-03-03 17:19:02 -07:00
committed by GitHub
parent fa0f509e18
commit d3f9fd1a60
8 changed files with 197 additions and 24 deletions

View File

@@ -1,5 +1,8 @@
import ActivityIndicator from "@/components/indicators/activity-indicator";
import useApiFilter from "@/hooks/use-api-filter";
import { useTimezone } from "@/hooks/use-date-utils";
import useOverlayState from "@/hooks/use-overlay-state";
import { FrigateConfig } from "@/types/frigateConfig";
import { Preview } from "@/types/preview";
import { ReviewFilter, ReviewSegment, ReviewSeverity } from "@/types/review";
import DesktopRecordingView from "@/views/events/DesktopRecordingView";
@@ -12,6 +15,9 @@ import useSWRInfinite from "swr/infinite";
const API_LIMIT = 100;
export default function Events() {
const { data: config } = useSWR<FrigateConfig>("config");
const timezone = useTimezone(config);
// recordings viewer
const [severity, setSeverity] = useState<ReviewSeverity>("alert");
@@ -100,6 +106,14 @@ export default function Events() {
const reloadData = useCallback(() => setBeforeTs(Date.now() / 1000), []);
// review summary
const { data: reviewSummary } = useSWR([
"review/summary",
{ timezone: timezone },
{ revalidateOnFocus: false },
]);
// preview videos
const previewTimes = useMemo(() => {
@@ -200,6 +214,10 @@ export default function Events() {
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [selectedReviewId, reviewPages]);
if (!timezone) {
return <ActivityIndicator />;
}
if (selectedData) {
return (
<DesktopRecordingView
@@ -212,6 +230,7 @@ export default function Events() {
return (
<EventView
reviewPages={reviewPages}
reviewSummary={reviewSummary}
relevantPreviews={allPreviews}
timeRange={selectedTimeRange}
reachedEnd={isDone}