@yamada-ui/use-controllable-state
Version:
Yamada UI useControllableState custom hook
22 lines (19 loc) • 825 B
TypeScript
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 };