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)} + /> +