mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-14 15:15:22 +03:00
Fix filter args in events
This commit is contained in:
parent
90c1cc3e3b
commit
f35cb39515
@ -1,6 +1,6 @@
|
||||
import { Button } from "../ui/button";
|
||||
import { CameraGroupConfig } from "@/types/frigateConfig";
|
||||
import { useMemo, useState } from "react";
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
import {
|
||||
DropdownMenu,
|
||||
DropdownMenuContent,
|
||||
@ -53,6 +53,20 @@ export function CamerasFilterButton({
|
||||
}`;
|
||||
}, [allCamerasSelected, currentCameras]);
|
||||
|
||||
// ui
|
||||
|
||||
useEffect(
|
||||
() => {
|
||||
setCurrentCameras(
|
||||
selectedCameras === undefined ? [...allCameras] : selectedCameras,
|
||||
);
|
||||
setAllCamerasSelected(selectedCameras === undefined);
|
||||
},
|
||||
// only refresh when state changes
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
[selectedCameras],
|
||||
);
|
||||
|
||||
const trigger = (
|
||||
<Button
|
||||
className="flex items-center gap-2 capitalize"
|
||||
|
||||
@ -2,7 +2,7 @@ import { Button } from "../ui/button";
|
||||
import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover";
|
||||
import useSWR from "swr";
|
||||
import { FrigateConfig } from "@/types/frigateConfig";
|
||||
import { useCallback, useMemo, useState } from "react";
|
||||
import { useCallback, useEffect, useMemo, useState } from "react";
|
||||
import { DropdownMenuSeparator } from "../ui/dropdown-menu";
|
||||
import { ReviewFilter, ReviewSeverity, ReviewSummary } from "@/types/review";
|
||||
import { getEndOfDayTimestamp } from "@/utils/dateUtil";
|
||||
@ -321,6 +321,18 @@ function GeneralFilterButton({
|
||||
selectedZones,
|
||||
);
|
||||
|
||||
// ui
|
||||
|
||||
useEffect(
|
||||
() => {
|
||||
setCurrentLabels(selectedLabels);
|
||||
setCurrentZones(selectedZones);
|
||||
},
|
||||
// only refresh when state changes
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
[selectedLabels, selectedZones],
|
||||
);
|
||||
|
||||
const trigger = (
|
||||
<Button
|
||||
size="sm"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import ActivityIndicator from "@/components/indicators/activity-indicator";
|
||||
import { useApiFilterArgs } from "@/hooks/use-api-filter";
|
||||
import useApiFilter from "@/hooks/use-api-filter";
|
||||
import { useCameraPreviews } from "@/hooks/use-camera-previews";
|
||||
import { useTimezone } from "@/hooks/use-date-utils";
|
||||
import { useOverlayState, useSearchEffect } from "@/hooks/use-overlay-state";
|
||||
@ -71,7 +71,31 @@ export default function Events() {
|
||||
// review filter
|
||||
|
||||
const [reviewFilter, setReviewFilter, reviewSearchParams] =
|
||||
useApiFilterArgs<ReviewFilter>();
|
||||
useApiFilter<ReviewFilter>();
|
||||
|
||||
useSearchEffect("cameras", (cameras: string) => {
|
||||
setReviewFilter({
|
||||
...reviewFilter,
|
||||
cameras: cameras.includes(",") ? cameras.split(",") : [cameras],
|
||||
});
|
||||
return true;
|
||||
});
|
||||
|
||||
useSearchEffect("labels", (labels: string) => {
|
||||
setReviewFilter({
|
||||
...reviewFilter,
|
||||
labels: labels.includes(",") ? labels.split(",") : [labels],
|
||||
});
|
||||
return true;
|
||||
});
|
||||
|
||||
useSearchEffect("zones", (zones: string) => {
|
||||
setReviewFilter({
|
||||
...reviewFilter,
|
||||
zones: zones.includes(",") ? zones.split(",") : [zones],
|
||||
});
|
||||
return true;
|
||||
});
|
||||
|
||||
useSearchEffect("group", (reviewGroup) => {
|
||||
if (config && reviewGroup && reviewGroup != "default") {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user