Controllable State Hook

PreviousNext
Docs
ncdaihook

Preview

Loading preview…
hooks/use-layout-effect.tsx
// This code comes from https://github.com/radix-ui/primitives/blob/main/packages/react/use-layout-effect/src/use-layout-effect.tsx
import * as React from "react";

/**
 * On the server, React emits a warning when calling `useLayoutEffect`.
 * This is because neither `useLayoutEffect` nor `useEffect` run on the server.
 * We use this safe version which suppresses the warning by replacing it with a noop on the server.
 *
 * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect
 */
const useLayoutEffect = globalThis?.document ? React.useLayoutEffect : () => {};

export { useLayoutEffect };

Installation

npx shadcn@latest add @ncdai/use-controllable-state

Usage

import { UseControllableState } from "@/hooks/use-controllable-state"
const value = UseControllableState()