Center and show all filters when semantic search is not enabled

This commit is contained in:
Nicolas Mowen 2024-09-09 15:33:14 -06:00
parent ce39ae26b8
commit 8ee10f6656
2 changed files with 47 additions and 25 deletions

View File

@ -37,7 +37,9 @@ export default function SearchFilterGroup({
filterList,
onUpdateFilter,
}: SearchFilterGroupProps) {
const { data: config } = useSWR<FrigateConfig>("config");
const { data: config } = useSWR<FrigateConfig>("config", {
revalidateOnFocus: false,
});
const allLabels = useMemo<string[]>(() => {
if (filterList?.labels) {
@ -147,6 +149,11 @@ export default function SearchFilterGroup({
[filter, onUpdateFilter],
);
const showAllFilters = useMemo(
() => isDesktop || !config?.semantic_search?.enabled,
[config],
);
return (
<div className="flex justify-center gap-2">
{filters.includes("cameras") && (
@ -159,7 +166,7 @@ export default function SearchFilterGroup({
}}
/>
)}
{isDesktop && filters.includes("date") && (
{showAllFilters && filters.includes("date") && (
<CalendarRangeFilterButton
range={
filter?.after == undefined || filter?.before == undefined
@ -173,7 +180,7 @@ export default function SearchFilterGroup({
updateSelectedRange={onUpdateSelectedRange}
/>
)}
{isDesktop && filters.includes("general") && (
{showAllFilters && filters.includes("general") && (
<GeneralFilterButton
allLabels={filterValues.labels}
selectedLabels={filter?.labels}
@ -193,7 +200,7 @@ export default function SearchFilterGroup({
}
/>
)}
{isMobile && mobileSettingsFeatures.length > 0 && (
{!showAllFilters && mobileSettingsFeatures.length > 0 && (
<MobileReviewSettingsDrawer
features={mobileSettingsFeatures}
filter={filter}

View File

@ -11,6 +11,7 @@ import {
TooltipTrigger,
} from "@/components/ui/tooltip";
import { cn } from "@/lib/utils";
import { FrigateConfig } from "@/types/frigateConfig";
import { Preview } from "@/types/preview";
import { SearchFilter, SearchResult } from "@/types/search";
import { useCallback, useMemo, useState } from "react";
@ -24,6 +25,7 @@ import {
LuXCircle,
} from "react-icons/lu";
import { Link } from "react-router-dom";
import useSWR from "swr";
type SearchViewProps = {
search: string;
@ -51,6 +53,10 @@ export default function SearchView({
onUpdateFilter,
onOpenSearch,
}: SearchViewProps) {
const { data: config } = useSWR<FrigateConfig>("config", {
revalidateOnFocus: false,
});
// remove duplicate event ids
const uniqueResults = useMemo(() => {
@ -112,7 +118,15 @@ export default function SearchView({
}
/>
<div className="relative mb-2 flex h-11 items-center justify-between pl-2 pr-2 md:pl-3">
<div
className={cn(
"relative mb-2 flex h-11 items-center pl-2 pr-2 md:pl-3",
config?.semantic_search?.enabled
? "justify-between"
: "justify-center",
)}
>
{config?.semantic_search?.enabled && (
<div
className={cn(
"relative w-full",
@ -134,6 +148,7 @@ export default function SearchView({
/>
)}
</div>
)}
{hasExistingSearch && (
<SearchFilterGroup