Swirski UI

Hook

useControllableState

A small helper for components that support both controlled and uncontrolled state.

Import

import { useControllableState } from "@swirski/ui";

Preview

Live render

useControllableState

Preview

Internal helper

Use this to keep component APIs consistent across Swirski primitives.

Usage

const [value, setValue] = useControllableState({
  value: props.value,
  defaultValue: props.defaultValue ?? "",
  onChange: props.onValueChange,
});

Props

3 documented
PropTypeDefaultNotes
valueT-Controlled value.
defaultValueRequiredT-Uncontrolled initial value.
onChange(value: T) => void-Called when the setter resolves a value.

Returns

2 documented
ValueTypeNotes
valueTCurrent controlled or uncontrolled value.
setValueDispatch<SetStateAction<T>>Updates internal state or calls onChange with the resolved value.
Previous: useDisclosureNext: useClickOutside