diff --git a/apps/web/src/app/(dashboard)/emails/email-list.tsx b/apps/web/src/app/(dashboard)/emails/email-list.tsx index 50c8674..7672a52 100644 --- a/apps/web/src/app/(dashboard)/emails/email-list.tsx +++ b/apps/web/src/app/(dashboard)/emails/email-list.tsx @@ -37,6 +37,9 @@ import { TooltipProvider, TooltipTrigger, } from "@unsend/ui/src/tooltip"; +import { Input } from "@unsend/ui/src/input"; +import { DEFAULT_QUERY_LIMIT } from "~/lib/constants"; +import { useDebouncedCallback } from "use-debounce"; /* Stupid hydrating error. And I so stupid to understand the stupid NextJS docs */ const DynamicSheetWithNoSSR = dynamic( @@ -53,12 +56,14 @@ export default function EmailsList() { const [selectedEmail, setSelectedEmail] = useUrlState("emailId"); const [page, setPage] = useUrlState("page", "1"); const [status, setStatus] = useUrlState("status"); + const [search, setSearch] = useUrlState("search"); const pageNumber = Number(page); const emailsQuery = api.email.emails.useQuery({ page: pageNumber, status: status?.toUpperCase() as EmailStatus, + search, }); const handleSelectEmail = (emailId: string) => { @@ -71,9 +76,19 @@ export default function EmailsList() { } }; + const debouncedSearch = useDebouncedCallback((value: string) => { + setSearch(value); + }, 1000); + return (
-
+
+ debouncedSearch(e.target.value)} + />