useTimeoutEffect
hookas/use-timeout-effectFreeHook
A hook to run an effect after a timeout
Install it
npx shadcn@latest add https://hookas.letstri.dev/r/use-timeout-effect.jsonSource
1'use client'23import * as React from 'react'45export function useTimeoutEffect(effect: React.EffectCallback, timeout: number, deps: React.DependencyList) {6 const effectEvent = React.useEffectEvent(effect)78 React.useEffect(() => {9 let destroy: ReturnType<React.EffectCallback> | undefined10 const timer = setTimeout(() => {11 destroy = effectEvent()12 }, timeout)1314 return () => {15 clearTimeout(timer)16 if (destroy) {17 destroy()18 }19 }20 }, [21 timeout,22 // eslint-disable-next-line react-hooks/exhaustive-deps23 ...deps,24 ])25}
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 | |
| useDebounceMemouse-debounced-memo | 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 |
