From 364e82c7f2f10759b437c0282021d5dfef98c922 Mon Sep 17 00:00:00 2001
From: MohamedBassem <me@mbassem.com>
Date: Sun, 10 Mar 2024 20:27:59 +0000
Subject: feature: Change top nav to include search and move add link to a
 modal

---
 .../components/dashboard/search/SearchInput.tsx    | 25 ++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 packages/web/components/dashboard/search/SearchInput.tsx

(limited to 'packages/web/components/dashboard/search/SearchInput.tsx')

diff --git a/packages/web/components/dashboard/search/SearchInput.tsx b/packages/web/components/dashboard/search/SearchInput.tsx
new file mode 100644
index 00000000..73d14c90
--- /dev/null
+++ b/packages/web/components/dashboard/search/SearchInput.tsx
@@ -0,0 +1,25 @@
+import { Input } from "@/components/ui/input";
+import { useDoBookmarkSearch } from "@/lib/hooks/bookmark-search";
+import { cn } from "@/lib/utils";
+import React from "react";
+
+const SearchInput = React.forwardRef<
+  HTMLInputElement,
+  React.HTMLAttributes<HTMLInputElement> & { loading?: boolean }
+>(({ className, loading = false, ...props }, ref) => {
+  const { debounceSearch, searchQuery } = useDoBookmarkSearch();
+
+  return (
+    <Input
+      ref={ref}
+      placeholder="Search"
+      defaultValue={searchQuery}
+      onChange={(e) => debounceSearch(e.target.value)}
+      className={cn(loading ? "animate-pulse-border" : undefined, className)}
+      {...props}
+    />
+  );
+});
+SearchInput.displayName = "SearchInput";
+
+export { SearchInput };
-- 
cgit v1.2.3-70-g09d2

