Skip to content

useDebounce

Frend Front provides two hooks for debouncing:

useDebouncedCallback

Usage

import { useDebouncedCallback } from "@frend-digital/ui/hooks";
const Component = () => {
// search will only fire after 200ms of no input
const search = useDebouncedCallback(async (value: string) => {
await api.search(value);
}, 200);
return <input onChange={(e) => search(e.target.value)} />;
};

useDebouncedValue

Usage

import { useDebouncedValue } from "@frend-digital/ui/hooks";
const Component = () => {
const [value, setValue] = useState("");
const debouncedValue = useDebouncedValue(value, 200);
// Data will only refetch after 200ms of no input
const {data} = useQuery({
queryKey: ["search", debouncedValue],
queryFn: async () => {
return await api.search(debouncedValue);
},
})
return <input value={value} onChange={(e) => setValue(e.target.value)} />;