import { debounce } from "@yaakapp-internal/lib"; import type { Dispatch, SetStateAction } from "react"; import { useMemo, useState } from "react"; export function useDebouncedState( defaultValue: T, delay = 500, ): [T, Dispatch>, Dispatch>] { const [state, setState] = useState(defaultValue); const debouncedSetState = useMemo(() => debounce(setState, delay), [delay]); return [state, debouncedSetState, setState]; }