From 350bffd3d332d18b6302edd595952a39537b0160 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Sat, 22 Jun 2024 07:23:18 -0600 Subject: [PATCH] Implement searching --- .../components/filter/SearchFilterGroup.tsx | 44 ++----------------- web/src/pages/Search.tsx | 36 +++++++++++++-- web/src/types/search.ts | 8 ++++ 3 files changed, 43 insertions(+), 45 deletions(-) diff --git a/web/src/components/filter/SearchFilterGroup.tsx b/web/src/components/filter/SearchFilterGroup.tsx index 8ec7cc329..bc4f8abcd 100644 --- a/web/src/components/filter/SearchFilterGroup.tsx +++ b/web/src/components/filter/SearchFilterGroup.tsx @@ -4,7 +4,6 @@ import useSWR from "swr"; import { FrigateConfig } from "@/types/frigateConfig"; import { useCallback, useMemo, useState } from "react"; import { DropdownMenuSeparator } from "../ui/dropdown-menu"; -import { ReviewFilter, ReviewSeverity } from "@/types/review"; import { getEndOfDayTimestamp } from "@/utils/dateUtil"; import { FaFilter } from "react-icons/fa"; import { isDesktop, isMobile } from "react-device-detect"; @@ -18,6 +17,7 @@ import FilterSwitch from "./FilterSwitch"; import { FilterList } from "@/types/filter"; import CalendarFilterButton from "./CalendarFilterButton"; import { CamerasFilterButton } from "./CamerasFilterButton"; +import { SearchFilter } from "@/types/search"; const SEARCH_FILTERS = ["cameras", "date", "general"] as const; type SearchFilters = (typeof SEARCH_FILTERS)[number]; @@ -25,9 +25,9 @@ const DEFAULT_REVIEW_FILTERS: SearchFilters[] = ["cameras", "date", "general"]; type SearchFilterGroupProps = { filters?: SearchFilters[]; - filter?: ReviewFilter; + filter?: SearchFilter; filterList?: FilterList; - onUpdateFilter: (filter: ReviewFilter) => void; + onUpdateFilter: (filter: SearchFilter) => void; }; export default function SearchFilterGroup({ @@ -170,12 +170,8 @@ export default function SearchFilterGroup({ { - onUpdateFilter({ ...filter, showAll }); - }} updateLabelFilter={(newLabels) => { onUpdateFilter({ ...filter, labels: newLabels }); }} @@ -207,22 +203,16 @@ export default function SearchFilterGroup({ type GeneralFilterButtonProps = { allLabels: string[]; selectedLabels: string[] | undefined; - currentSeverity?: ReviewSeverity; - showAll: boolean; allZones: string[]; selectedZones?: string[]; - setShowAll: (showAll: boolean) => void; updateLabelFilter: (labels: string[] | undefined) => void; updateZoneFilter: (zones: string[] | undefined) => void; }; function GeneralFilterButton({ allLabels, selectedLabels, - currentSeverity, - showAll, allZones, selectedZones, - setShowAll, updateLabelFilter, updateZoneFilter, }: GeneralFilterButtonProps) { @@ -257,14 +247,11 @@ function GeneralFilterButton({ allLabels={allLabels} selectedLabels={selectedLabels} currentLabels={currentLabels} - currentSeverity={currentSeverity} - showAll={showAll} allZones={allZones} selectedZones={selectedZones} currentZones={currentZones} setCurrentZones={setCurrentZones} updateZoneFilter={updateZoneFilter} - setShowAll={setShowAll} updateLabelFilter={updateLabelFilter} setCurrentLabels={setCurrentLabels} onClose={() => setOpen(false)} @@ -312,12 +299,9 @@ type GeneralFilterContentProps = { allLabels: string[]; selectedLabels: string[] | undefined; currentLabels: string[] | undefined; - currentSeverity?: ReviewSeverity; - showAll?: boolean; allZones?: string[]; selectedZones?: string[]; currentZones?: string[]; - setShowAll?: (showAll: boolean) => void; updateLabelFilter: (labels: string[] | undefined) => void; setCurrentLabels: (labels: string[] | undefined) => void; updateZoneFilter?: (zones: string[] | undefined) => void; @@ -328,12 +312,9 @@ export function GeneralFilterContent({ allLabels, selectedLabels, currentLabels, - currentSeverity, - showAll, allZones, selectedZones, currentZones, - setShowAll, updateLabelFilter, setCurrentLabels, updateZoneFilter, @@ -343,25 +324,6 @@ export function GeneralFilterContent({ return ( <>
- {currentSeverity && setShowAll && ( -
- - - -
- )}
diff --git a/web/src/types/search.ts b/web/src/types/search.ts index 917c60432..1cede118d 100644 --- a/web/src/types/search.ts +++ b/web/src/types/search.ts @@ -10,3 +10,11 @@ export type SearchResult = { thumb_path?: string; zones: string[]; }; + +export type SearchFilter = { + cameras?: string[]; + labels?: string[]; + zones?: string[]; + before?: number; + after?: number; +};