UNPKG

@yamada-ui/use-controllable-state

Version:

Yamada UI useControllableState custom hook

22 lines (19 loc) 825 B
import { Dispatch, SetStateAction } from 'react'; interface UseControllableStateMethods<Y> { onChange?: (value: Y) => void; onUpdate?: (prev: Y, next: Y) => boolean; } interface UseControllableStateProps<Y> extends UseControllableStateMethods<Y> { defaultValue?: (() => Y) | Y; value?: Y; } declare function useControllableState<Y>(props: { value: Y; defaultValue?: (() => Y) | Y; } & UseControllableStateMethods<Y>): [Y, Dispatch<SetStateAction<Y>>]; declare function useControllableState<Y>(props: { defaultValue: (() => Y) | Y; value?: Y; } & UseControllableStateMethods<Y>): [Y, Dispatch<SetStateAction<Y>>]; declare function useControllableState<Y>(props: UseControllableStateProps<Y>): [Y, Dispatch<SetStateAction<Y>>]; export { type UseControllableStateProps, useControllableState };