forked from Github/frigate
Tweaks and fixes (#11541)
* Update config version to be stored inside of the config * Don't remove items from list when navigating back * Use video api instead of webps for live current hour filmstrip * Check that the config file is writable * Show camera name when camera is offline * Show camera name when offline * Cleanup
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
||||
ReviewSegment,
|
||||
ReviewSeverity,
|
||||
ReviewSummary,
|
||||
SegmentedReviewData,
|
||||
} from "@/types/review";
|
||||
import { getTimestampOffset } from "@/utils/dateUtil";
|
||||
import EventView from "@/views/events/EventView";
|
||||
@@ -138,6 +139,66 @@ export default function Events() {
|
||||
},
|
||||
);
|
||||
|
||||
const reviewItems = useMemo<SegmentedReviewData>(() => {
|
||||
if (!reviews) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const all: ReviewSegment[] = [];
|
||||
const alerts: ReviewSegment[] = [];
|
||||
const detections: ReviewSegment[] = [];
|
||||
const motion: ReviewSegment[] = [];
|
||||
|
||||
reviews?.forEach((segment) => {
|
||||
all.push(segment);
|
||||
|
||||
switch (segment.severity) {
|
||||
case "alert":
|
||||
alerts.push(segment);
|
||||
break;
|
||||
case "detection":
|
||||
detections.push(segment);
|
||||
break;
|
||||
default:
|
||||
motion.push(segment);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
all: all,
|
||||
alert: alerts,
|
||||
detection: detections,
|
||||
significant_motion: motion,
|
||||
};
|
||||
}, [reviews]);
|
||||
|
||||
const currentItems = useMemo(() => {
|
||||
if (!reviewItems || !severity) {
|
||||
return null;
|
||||
}
|
||||
|
||||
let current;
|
||||
|
||||
if (reviewFilter?.showAll) {
|
||||
current = reviewItems.all;
|
||||
} else {
|
||||
current = reviewItems[severity];
|
||||
}
|
||||
|
||||
if (!current || current.length == 0) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if (reviewFilter?.showReviewed != 1) {
|
||||
return current.filter((seg) => !seg.has_been_reviewed);
|
||||
} else {
|
||||
return current;
|
||||
}
|
||||
// only refresh when severity or filter changes
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [severity, reviewFilter, reviewItems?.all.length]);
|
||||
|
||||
// review summary
|
||||
|
||||
const { data: reviewSummary, mutate: updateSummary } = useSWR<ReviewSummary>(
|
||||
@@ -353,7 +414,8 @@ export default function Events() {
|
||||
} else {
|
||||
return (
|
||||
<EventView
|
||||
reviews={reviews}
|
||||
reviewItems={reviewItems}
|
||||
currentReviewItems={currentItems}
|
||||
reviewSummary={reviewSummary}
|
||||
relevantPreviews={allPreviews}
|
||||
timeRange={selectedTimeRange}
|
||||
|
||||
Reference in New Issue
Block a user