diff --git a/apps/web/src/app/(dashboard)/contacts/[contactBookId]/contact-list.tsx b/apps/web/src/app/(dashboard)/contacts/[contactBookId]/contact-list.tsx
index 44f8c62..f91a5b5 100644
--- a/apps/web/src/app/(dashboard)/contacts/[contactBookId]/contact-list.tsx
+++ b/apps/web/src/app/(dashboard)/contacts/[contactBookId]/contact-list.tsx
@@ -23,7 +23,8 @@ import { api } from "~/trpc/react";
import { getGravatarUrl } from "~/utils/gravatar-utils";
import DeleteContact from "./delete-contact";
import EditContact from "./edit-contact";
-
+import { Input } from "@unsend/ui/src/input";
+import { useDebouncedCallback } from "use-debounce";
export default function ContactList({
contactBookId,
}: {
@@ -31,12 +32,14 @@ export default function ContactList({
}) {
const [page, setPage] = useUrlState("page", "1");
const [status, setStatus] = useUrlState("status");
+ const [search, setSearch] = useUrlState("search");
const pageNumber = Number(page);
const contactsQuery = api.contacts.contacts.useQuery({
contactBookId,
page: pageNumber,
+ search: search ?? undefined,
subscribed:
status === "Subscribed"
? true
@@ -45,9 +48,21 @@ export default function ContactList({
: undefined,
});
+ const debouncedSearch = useDebouncedCallback((value: string) => {
+ setSearch(value);
+ }, 1000);
+
return (
-
+
+
+ debouncedSearch(e.target.value)}
+ />
+