aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/components/dashboard/search
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-10-12 13:21:40 +0000
committerMohamedBassem <me@mbassem.com>2024-10-12 13:22:29 +0000
commit02a5b35a30845268cfaa814bb045d0ec800dc538 (patch)
tree8d3026eece25a7d7dea8a76e37a357234fcb9e9c /apps/web/components/dashboard/search
parent1f768be0485bbfa6b542dd24183fe8389acb9355 (diff)
downloadkarakeep-02a5b35a30845268cfaa814bb045d0ec800dc538.tar.zst
fix(web): Reset search query and bulk edit when navigating away from the current page
Diffstat (limited to 'apps/web/components/dashboard/search')
-rw-r--r--apps/web/components/dashboard/search/SearchInput.tsx20
1 files changed, 17 insertions, 3 deletions
diff --git a/apps/web/components/dashboard/search/SearchInput.tsx b/apps/web/components/dashboard/search/SearchInput.tsx
index 0dd86c50..bab51ff2 100644
--- a/apps/web/components/dashboard/search/SearchInput.tsx
+++ b/apps/web/components/dashboard/search/SearchInput.tsx
@@ -1,6 +1,6 @@
"use client";
-import React from "react";
+import React, { useEffect } from "react";
import { Input } from "@/components/ui/input";
import { useDoBookmarkSearch } from "@/lib/hooks/bookmark-search";
@@ -8,14 +8,28 @@ const SearchInput = React.forwardRef<
HTMLInputElement,
React.HTMLAttributes<HTMLInputElement> & { loading?: boolean }
>(({ className, ...props }, ref) => {
- const { debounceSearch, searchQuery } = useDoBookmarkSearch();
+ const { debounceSearch, searchQuery, isInSearchPage } = useDoBookmarkSearch();
+
+ const [value, setValue] = React.useState(searchQuery);
+
+ useEffect(() => {
+ if (!isInSearchPage) {
+ setValue("");
+ }
+ }, [isInSearchPage]);
+
+ const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {
+ setValue(e.target.value);
+ debounceSearch(e.target.value);
+ };
return (
<Input
ref={ref}
+ value={value}
+ onChange={onChange}
placeholder="Search"
defaultValue={searchQuery}
- onChange={(e) => debounceSearch(e.target.value)}
className={className}
{...props}
/>