diff --git a/surfsense_web/app/dashboard/[search_space_id]/logs/(manage)/page.tsx b/surfsense_web/app/dashboard/[search_space_id]/logs/(manage)/page.tsx index d51cfac9b..443c964cf 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/logs/(manage)/page.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/logs/(manage)/page.tsx @@ -44,8 +44,9 @@ import { import { AnimatePresence, motion, type Variants } from "motion/react"; import { useParams } from "next/navigation"; import { useTranslations } from "next-intl"; -import React, { useCallback, useContext, useId, useMemo, useRef, useState } from "react"; +import React, { useCallback, useContext, useEffect, useId, useMemo, useRef, useState } from "react"; import { toast } from "sonner"; +import { useDebouncedValue } from "@/hooks/use-debounced-value"; import { createLogMutationAtom, deleteLogMutationAtom, @@ -706,6 +707,15 @@ function LogsFilters({ id: string; }) { const t = useTranslations("logs"); + const [filterInput, setFilterInput] = useState( + (table.getColumn("message")?.getFilterValue() ?? "") as string + ); + const debouncedFilter = useDebouncedValue(filterInput, 300); + + useEffect(() => { + table.getColumn("message")?.setFilterValue(debouncedFilter || undefined); + }, [debouncedFilter, table]); + return ( table.getColumn("message")?.setFilterValue(e.target.value)} + value={filterInput} + onChange={(e) => setFilterInput(e.target.value)} placeholder={t("filter_by_message")} type="text" />
- {Boolean(table.getColumn("message")?.getFilterValue()) && ( + {Boolean(filterInput) && (