From e6a15c6b3daf0fb80821084217709d245095a73e Mon Sep 17 00:00:00 2001 From: thomasabishop Date: Fri, 12 Dec 2025 17:33:24 +0000 Subject: [PATCH] fix: block empty tag searches --- src/components/SearchResults.tsx | 6 +- src/containers/Search.tsx | 127 ++++++++++++++++--------------- 2 files changed, 68 insertions(+), 65 deletions(-) diff --git a/src/components/SearchResults.tsx b/src/components/SearchResults.tsx index c008285..c65d6a0 100644 --- a/src/components/SearchResults.tsx +++ b/src/components/SearchResults.tsx @@ -39,7 +39,7 @@ export default function SearchResults({
Search Results
-
Search term:
+ Search term: {searchParams}
@@ -65,8 +65,8 @@ export default function SearchResults({ ) : (
- {tagResults.map((tagResult) => ( - + {tagResults?.map((tagResult, i) => ( + {tagResult} diff --git a/src/containers/Search.tsx b/src/containers/Search.tsx index 649e404..a36fb55 100644 --- a/src/containers/Search.tsx +++ b/src/containers/Search.tsx @@ -7,71 +7,74 @@ import SearchInput from "@/components/SearchInput" import SearchResults from "@/components/SearchResults" export default function Search() { - const location = useLocation() - const inputRef = useRef(null) - const [sheetOpen, setSheetOpen] = useState(false) - const [tagResults, setTagResults] = useState([]) - const [searchParams, setSearchParams] = useState(null) - const queryClient = useQueryClient() - const tags = queryClient.getQueryData(["tag_list"])?.["data"] + const location = useLocation() + const inputRef = useRef(null) + const [sheetOpen, setSheetOpen] = useState(false) + const [tagResults, setTagResults] = useState([]) + const [searchParams, setSearchParams] = useState(null) + const queryClient = useQueryClient() + const tags = queryClient.getQueryData(["tag_list"])?.["data"] - const form = useForm({ - defaultValues: { - search: "", - }, - onSubmit: ({ value }) => { - setSearchParams(value.search) - setSheetOpen(true) - setTagResults( - tags?.filter((tag) => tag.toLowerCase().includes(value.search.toLowerCase())), - ) - }, - }) + const form = useForm({ + defaultValues: { + search: "", + }, + onSubmit: ({ value }) => { + setSearchParams(value.search) + setSheetOpen(true) + console.log(value.search) + setTagResults( + value.search !== "" + ? tags?.filter((tag) => tag.toLowerCase().includes(value.search.toLowerCase())) + : null, + ) + }, + }) - const { - data: entriesResults, - isLoading, - error, - } = useQuery({ - queryKey: ["search_results", searchParams], - queryFn: () => api.get(`/search/${searchParams}`).then((res) => res.data), - enabled: !!searchParams, - }) + const { + data: entriesResults, + isLoading, + error, + } = useQuery({ + queryKey: ["search_results", searchParams], + queryFn: () => api.get(`/search/${searchParams}`).then((res) => res.data), + enabled: !!searchParams, + }) - // Force Sheet close on renavigation (i.e search result selection) - useEffect(() => { - if (sheetOpen) { - setSheetOpen(false) - form.reset() - setSearchParams(null) - } - }, [location.pathname]) + // Force Sheet close on renavigation (i.e search result selection) + useEffect(() => { + if (sheetOpen) { + setSheetOpen(false) + form.reset() + setSearchParams(null) + } + }, [location.pathname]) - useEffect(() => { - const handleKeyDown = (e) => { - if ((e.ctrlKey || e.metaKey) && e.key === "k") { - e.preventDefault() - inputRef.current?.focus() - } - } - document.addEventListener("keydown", handleKeyDown) - return () => document.removeEventListener("keydown", handleKeyDown) - }, []) + useEffect(() => { + const handleKeyDown = (e) => { + if ((e.ctrlKey || e.metaKey) && e.key === "k") { + e.preventDefault() + inputRef.current?.focus() + } + } + document.addEventListener("keydown", handleKeyDown) + return () => document.removeEventListener("keydown", handleKeyDown) + }, []) - return ( - <> - - - - ) + return ( + <> + + + + ) }