useDebounceMemo
hookas/use-debounced-memoFreeHook
A hook to debounce a memo
Install it
npx shadcn@latest add https://hookas.letstri.dev/r/use-debounced-memo.jsonSource
1'use client'23import * as React from 'react'4import { useDebouncedCallback } from './use-debounced-callback'56export function useDebouncedMemo<T>(factory: () => T, deps: React.DependencyList, delay: number) {7 const [state, setState] = React.useState<T>(() => factory())89 const factoryEvent = React.useEffectEvent(factory)1011 const debouncedSetState = useDebouncedCallback((value: T) => {12 setState(value)13 }, [], delay)1415 React.useEffect(() => {16 debouncedSetState(factoryEvent())17 }, [18 debouncedSetState,19 // eslint-disable-next-line react-hooks/exhaustive-deps20 ...deps,21 ])2223 return state24}
What it pulls in
Other registry items
Files it writes
More from hookas
All 30 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| useAsyncEffectuse-async-effect | hookas | Hooks | Free | no deps | |
| useClickOutsideuse-click-outside | hookas | Hooks | Free | no deps | |
| useDebounceCallbackuse-debounced-callback | hookas | Hooks | Free | no deps | |
| useDebounceStateuse-debounced-state | hookas | Hooks | Free | no deps | |
| useElementSizeuse-element-size | hookas | Hooks | Free | no deps | |
| useFullscreenuse-fullscreen | hookas | Hooks | Free | no deps | |
| useIntervaluse-interval | hookas | Hooks | Free | no deps | |
| useIsInViewportuse-is-in-viewport | hookas | Hooks | Free | no deps |
