Always show eents when searching

This commit is contained in:
Nicolas Mowen 2024-09-09 15:25:55 -06:00
parent d57c958a6c
commit bf2d444116
2 changed files with 59 additions and 34 deletions

View File

@ -60,10 +60,6 @@ export default function Search() {
}, [search]); }, [search]);
const searchQuery = useMemo(() => { const searchQuery = useMemo(() => {
if (searchTerm.length == 0) {
return null;
}
if (similaritySearch) { if (similaritySearch) {
return [ return [
"events/search", "events/search",
@ -80,10 +76,25 @@ export default function Search() {
]; ];
} }
if (searchTerm) {
return [
"events/search",
{
query: searchTerm,
cameras: searchSearchParams["cameras"],
labels: searchSearchParams["labels"],
zones: searchSearchParams["zones"],
before: searchSearchParams["before"],
after: searchSearchParams["after"],
search_type: searchSearchParams["search_type"],
include_thumbnails: 0,
},
];
}
return [ return [
"events/search", "events",
{ {
query: searchTerm,
cameras: searchSearchParams["cameras"], cameras: searchSearchParams["cameras"],
labels: searchSearchParams["labels"], labels: searchSearchParams["labels"],
zones: searchSearchParams["zones"], zones: searchSearchParams["zones"],

View File

@ -96,6 +96,11 @@ export default function SearchView({
return Math.round(confidence * 100); return Math.round(confidence * 100);
}; };
const hasExistingSearch = useMemo(
() => searchResults != undefined || searchFilter != undefined,
[searchResults, searchFilter],
);
return ( return (
<div className="flex size-full flex-col pt-2 md:py-2"> <div className="flex size-full flex-col pt-2 md:py-2">
<Toaster closeButton={true} /> <Toaster closeButton={true} />
@ -108,7 +113,12 @@ 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="relative mb-2 flex h-11 items-center justify-between pl-2 pr-2 md:pl-3">
<div className="relative mr-3 w-full md:w-1/3"> <div
className={cn(
"relative w-full",
hasExistingSearch ? "mr-3 md:w-1/3" : "md:ml-[25%] md:w-1/2",
)}
>
<Input <Input
className="text-md w-full bg-muted pr-10" className="text-md w-full bg-muted pr-10"
placeholder={ placeholder={
@ -125,10 +135,12 @@ export default function SearchView({
)} )}
</div> </div>
<SearchFilterGroup {hasExistingSearch && (
filter={searchFilter} <SearchFilterGroup
onUpdateFilter={onUpdateFilter} filter={searchFilter}
/> onUpdateFilter={onUpdateFilter}
/>
)}
</div> </div>
<div className="no-scrollbar flex flex-1 flex-wrap content-start gap-2 overflow-y-auto md:gap-4"> <div className="no-scrollbar flex flex-1 flex-wrap content-start gap-2 overflow-y-auto md:gap-4">
@ -186,34 +198,36 @@ export default function SearchView({
scrollLock={false} scrollLock={false}
onClick={onSelectSearch} onClick={onSelectSearch}
/> />
<div className={cn("absolute right-2 top-2 z-40")}> {searchTerm && (
<Tooltip> <div className={cn("absolute right-2 top-2 z-40")}>
<TooltipTrigger> <Tooltip>
<Chip <TooltipTrigger>
className={`flex select-none items-center justify-between space-x-1 bg-gray-500 bg-gradient-to-br from-gray-400 to-gray-500 text-xs capitalize text-white`} <Chip
> className={`flex select-none items-center justify-between space-x-1 bg-gray-500 bg-gradient-to-br from-gray-400 to-gray-500 text-xs capitalize text-white`}
{value.search_source == "thumbnail" ? ( >
<LuImage className="mr-1 size-3" /> {value.search_source == "thumbnail" ? (
) : ( <LuImage className="mr-1 size-3" />
<LuText className="mr-1 size-3" /> ) : (
)} <LuText className="mr-1 size-3" />
)}
{zScoreToConfidence(
value.search_distance,
value.search_source,
)}
%
</Chip>
</TooltipTrigger>
<TooltipContent>
Matched {value.search_source} at{" "}
{zScoreToConfidence( {zScoreToConfidence(
value.search_distance, value.search_distance,
value.search_source, value.search_source,
)} )}
% %
</Chip> </TooltipContent>
</TooltipTrigger> </Tooltip>
<TooltipContent> </div>
Matched {value.search_source} at{" "} )}
{zScoreToConfidence(
value.search_distance,
value.search_source,
)}
%
</TooltipContent>
</Tooltip>
</div>
</div> </div>
<div <div
className={`review-item-ring pointer-events-none absolute inset-0 z-10 size-full rounded-lg outline outline-[3px] -outline-offset-[2.8px] ${selected ? `shadow-severity_alert outline-severity_alert` : "outline-transparent duration-500"}`} className={`review-item-ring pointer-events-none absolute inset-0 z-10 size-full rounded-lg outline outline-[3px] -outline-offset-[2.8px] ${selected ? `shadow-severity_alert outline-severity_alert` : "outline-transparent duration-500"}`}