From 5684e4124be1fef6172f6513de4d683ef7ba1a97 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Mon, 14 Oct 2024 19:07:27 -0500 Subject: [PATCH] Add similarity search --- web/src/components/card/SearchThumbnail.tsx | 14 +---------- .../components/card/SearchThumbnailFooter.tsx | 25 ++++++++++++------- web/src/views/search/SearchView.tsx | 9 ++++++- 3 files changed, 25 insertions(+), 23 deletions(-) diff --git a/web/src/components/card/SearchThumbnail.tsx b/web/src/components/card/SearchThumbnail.tsx index 8b65ad22f..213111b13 100644 --- a/web/src/components/card/SearchThumbnail.tsx +++ b/web/src/components/card/SearchThumbnail.tsx @@ -1,4 +1,4 @@ -import { useCallback, useMemo, useState } from "react"; +import { useCallback, useMemo } from "react"; import { useApiHost } from "@/api"; import { getIconForLabel } from "@/utils/iconUtil"; import useSWR from "swr"; @@ -12,8 +12,6 @@ import { capitalizeFirstLetter } from "@/utils/stringUtil"; import { SearchResult } from "@/types/search"; import { cn } from "@/lib/utils"; import { TooltipPortal } from "@radix-ui/react-tooltip"; -import { FrigatePlusDialog } from "../overlay/dialog/FrigatePlusDialog"; -import { Event } from "@/types/event"; type SearchThumbnailProps = { searchResult: SearchResult; @@ -30,8 +28,6 @@ export default function SearchThumbnail({ // interactions - const [showFrigatePlus, setShowFrigatePlus] = useState(false); - const handleOnClick = useCallback(() => { onClick(searchResult); }, [searchResult, onClick]); @@ -58,14 +54,6 @@ export default function SearchThumbnail({ return (
- setShowFrigatePlus(false)} - onEventUploaded={() => {}} - /> - void; }; export default function SearchThumbnailFooter({ searchResult, + findSimilar, }: SearchThumbnailProps) { const { data: config } = useSWR("config"); @@ -70,7 +72,7 @@ export default function SearchThumbnailFooter({ searchResult.has_snapshot && searchResult.end_time && ( - + setShowFrigatePlus(true)} @@ -80,12 +82,17 @@ export default function SearchThumbnailFooter({ )} - - - - - Find similar - + {config?.semantic_search?.enabled && ( + + + + + Find similar + + )} @@ -101,7 +108,7 @@ export default function SearchThumbnailFooter({ Download snapshot - + View object lifecycle diff --git a/web/src/views/search/SearchView.tsx b/web/src/views/search/SearchView.tsx index fe4cdf71a..1df543b2c 100644 --- a/web/src/views/search/SearchView.tsx +++ b/web/src/views/search/SearchView.tsx @@ -428,7 +428,14 @@ export default function SearchView({ 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-selected outline-selected` : "outline-transparent duration-500"}`} />
- + { + if (config?.semantic_search.enabled) { + setSimilaritySearch(value); + } + }} + />
);