forked from Github/frigate
Review improvements (#11879)
* Update segment even when number of active objects is the same * add score to frigate+ chip * Add support for selecting zones * Add api support for filtering on zones * Adjust UI * Update filtering logic * Clean up
This commit is contained in:
@@ -49,6 +49,7 @@ import scrollIntoView from "scroll-into-view-if-needed";
|
||||
import { Toaster } from "@/components/ui/sonner";
|
||||
import { toast } from "sonner";
|
||||
import { cn } from "@/lib/utils";
|
||||
import { FilterList } from "@/types/filter";
|
||||
|
||||
type EventViewProps = {
|
||||
reviewItems?: SegmentedReviewData;
|
||||
@@ -203,8 +204,9 @@ export default function EventView({
|
||||
|
||||
// review filter info
|
||||
|
||||
const reviewLabels = useMemo(() => {
|
||||
const reviewFilterList = useMemo<FilterList>(() => {
|
||||
const uniqueLabels = new Set<string>();
|
||||
const uniqueZones = new Set<string>();
|
||||
|
||||
reviewItems?.all?.forEach((rev) => {
|
||||
rev.data.objects.forEach((obj) =>
|
||||
@@ -213,7 +215,11 @@ export default function EventView({
|
||||
rev.data.audio.forEach((aud) => uniqueLabels.add(aud));
|
||||
});
|
||||
|
||||
return [...uniqueLabels];
|
||||
reviewItems?.all?.forEach((rev) => {
|
||||
rev.data.zones.forEach((zone) => uniqueZones.add(zone));
|
||||
});
|
||||
|
||||
return { labels: [...uniqueLabels], zones: [...uniqueZones] };
|
||||
}, [reviewItems]);
|
||||
|
||||
if (!config) {
|
||||
@@ -282,7 +288,7 @@ export default function EventView({
|
||||
reviewSummary={reviewSummary}
|
||||
filter={filter}
|
||||
motionOnly={motionOnly}
|
||||
filterLabels={reviewLabels}
|
||||
filterList={reviewFilterList}
|
||||
onUpdateFilter={updateFilter}
|
||||
setMotionOnly={setMotionOnly}
|
||||
/>
|
||||
|
||||
@@ -111,7 +111,7 @@ export function RecordingView({
|
||||
() => chunkedTimeRange[selectedRangeIdx],
|
||||
[selectedRangeIdx, chunkedTimeRange],
|
||||
);
|
||||
const reviewLabels = useMemo(() => {
|
||||
const reviewFilterList = useMemo(() => {
|
||||
const uniqueLabels = new Set<string>();
|
||||
|
||||
reviewItems?.forEach((rev) => {
|
||||
@@ -121,7 +121,13 @@ export function RecordingView({
|
||||
rev.data.audio.forEach((aud) => uniqueLabels.add(aud));
|
||||
});
|
||||
|
||||
return [...uniqueLabels];
|
||||
const uniqueZones = new Set<string>();
|
||||
|
||||
reviewItems?.forEach((rev) => {
|
||||
rev.data.zones.forEach((zone) => uniqueZones.add(zone));
|
||||
});
|
||||
|
||||
return { labels: [...uniqueLabels], zones: [...uniqueZones] };
|
||||
}, [reviewItems]);
|
||||
|
||||
// export
|
||||
@@ -391,7 +397,7 @@ export function RecordingView({
|
||||
reviewSummary={reviewSummary}
|
||||
filter={filter}
|
||||
motionOnly={false}
|
||||
filterLabels={reviewLabels}
|
||||
filterList={reviewFilterList}
|
||||
onUpdateFilter={updateFilter}
|
||||
setMotionOnly={() => {}}
|
||||
/>
|
||||
@@ -434,7 +440,8 @@ export function RecordingView({
|
||||
latestTime={timeRange.before}
|
||||
mode={exportMode}
|
||||
range={exportRange}
|
||||
allLabels={reviewLabels}
|
||||
allLabels={reviewFilterList.labels}
|
||||
allZones={reviewFilterList.zones}
|
||||
onUpdateFilter={updateFilter}
|
||||
setRange={setExportRange}
|
||||
setMode={setExportMode}
|
||||
|
||||
Reference in New Issue
Block a user