diff --git a/plugins/mindstudio-insight-plugins/ModelVis/app/src/features/Search/SearchModal.tsx b/plugins/mindstudio-insight-plugins/ModelVis/app/src/features/Search/SearchModal.tsx index d467c79789cca9a36b2c9177508b74157d891faf..47355cc565816c6046704e145d38e835bd8039c9 100644 --- a/plugins/mindstudio-insight-plugins/ModelVis/app/src/features/Search/SearchModal.tsx +++ b/plugins/mindstudio-insight-plugins/ModelVis/app/src/features/Search/SearchModal.tsx @@ -30,7 +30,12 @@ import { useEffect, useState } from "react" -import { searchResultAtom, searchVisibleAtom, zoomAtom } from "stores" +import { + modelPathAtom, + searchResultAtom, + searchVisibleAtom, + zoomAtom, +} from "stores" import { workerHighlight, workerSearch } from "worker-apis" type NodeProps = { @@ -51,10 +56,10 @@ const NodeCandidate = ({ node, startAnimation }: NodeProps) => { } return
- +
{id} {opType} @@ -64,6 +69,7 @@ const NodeCandidate = ({ node, startAnimation }: NodeProps) => { export const SearchModal = () => { const [query, setQuery] = useState("") + const path = useAtomValue(modelPathAtom) const deferredQuery = useDeferredValue(query) const nodes = useAtomValue(searchResultAtom) @@ -78,53 +84,57 @@ export const SearchModal = () => { const startAnimation = useAnimatedTranslate() const handleChange = (ev: ChangeEvent) => - setQuery(ev.target.value.toLowerCase()) + setQuery(ev.target.value.toLowerCase()) useEffect(() => { if (!deferredQuery) return workerSearch(deferredQuery) }, [deferredQuery]) + useEffect(() => { + setQuery("") + }, [path]) + if (!visible) return <> return
+ className={joinCls( + "-translate-y-1/2 absolute top-1/2 left-3 h-4.5 w-4.5", + "stroke-current opacity-50 lg:left-4.5 lg:h-5 lg:w-5" + )} />
{deferredQuery && ( -
- {nodes?.map(node => ( - - ))} -
+
+ {nodes?.map(node => ( + + ))} +
)}