mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-14 15:15:22 +03:00
Always show eents when searching
This commit is contained in:
parent
d57c958a6c
commit
bf2d444116
@ -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"],
|
||||||
|
|||||||
@ -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"}`}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user