use-reset-state
shadcn-hooks/use-reset-stateFreeHook
A hook to reset a state
Install it
npx shadcn@latest add https://shadcn-hooks.com/r/use-reset-state.jsonSource
1import { isFunction } from 'es-toolkit/predicate'2import { useRef, useState } from 'react'3import { useCreation } from '@/registry/hooks/use-creation'4import { useMemoizedFn } from '@/registry/hooks/use-memoized-fn'5import type { Dispatch, SetStateAction } from 'react'67type ResetState = () => void89export function useResetState<S>(10 initialState: S | (() => S),11): readonly [S, Dispatch<SetStateAction<S>>, ResetState] {12 const initialStateRef = useRef(initialState)13 const initialStateMemo = useCreation(14 () =>15 isFunction(initialStateRef.current)16 ? initialStateRef.current()17 : initialStateRef.current,18 [],19 )2021 const [state, setState] = useState(initialStateMemo)2223 const resetState = useMemoizedFn(() => {24 setState(initialStateMemo)25 })2627 return [state, setState, resetState]28}
What it pulls in
npm packages
Other registry items
Files it writes
More from shadcn-hooks
All 58 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| use-active-elementuse-active-element | shadcn-hooks | Hooks | Free | no deps | |
| use-batteryuse-battery | shadcn-hooks | Hooks | Free | no deps | |
| use-booleanuse-boolean | shadcn-hooks | Hooks | Free | no deps | |
| use-click-any-whereuse-click-any-where | shadcn-hooks | Hooks | Free | no deps | |
| use-click-awayuse-click-away | shadcn-hooks | Hooks | Free | no deps | |
| use-clipboarduse-clipboard | shadcn-hooks | Hooks | Free | no deps | |
| use-controllable-valueuse-controllable-value | shadcn-hooks | Hooks | Free | 1 dep | |
| use-counteruse-counter | shadcn-hooks | Hooks | Free | no deps |
