@yamada-ui/react
Version:
React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion
39 lines (38 loc) • 2.15 kB
TypeScript
import { ChangeEventHandler, Dispatch, SetStateAction } from "react";
//#region src/hooks/use-controllable-state/index.d.ts
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: UseControllableStateMethods<Y> & {
value: Y;
defaultValue?: (() => Y) | Y;
}): [Y, Dispatch<SetStateAction<Y>>];
declare function useControllableState<Y>(props: UseControllableStateMethods<Y> & {
defaultValue: (() => Y) | Y;
value?: Y;
}): [Y, Dispatch<SetStateAction<Y>>];
declare function useControllableState<Y>(props: UseControllableStateProps<Y>): [Y, Dispatch<SetStateAction<Y>>];
interface UseControllableEventStateMethods<Y extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement> {
onChange?: ChangeEventHandler<Y>;
}
interface UseControllableEventStateProps<Y extends boolean | number | string, M extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement> extends UseControllableEventStateMethods<M> {
defaultValue?: (() => Y) | Y;
value?: Y;
}
declare function useControllableEventState<Y extends boolean | number | string, M extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(props: UseControllableEventStateMethods<M> & {
value: Y;
defaultValue?: (() => Y) | Y;
}): [Y, ChangeEventHandler<M>];
declare function useControllableEventState<Y extends boolean | number | string, M extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(props: UseControllableEventStateMethods<M> & {
defaultValue: (() => Y) | Y;
value?: Y;
}): [Y, ChangeEventHandler<M>];
declare function useControllableEventState<Y extends boolean | number | string, M extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(props: UseControllableEventStateProps<Y, M>): [Y, ChangeEventHandler<M>];
//#endregion
export { UseControllableEventStateProps, UseControllableStateProps, useControllableEventState, useControllableState };
//# sourceMappingURL=index.d.ts.map