@arco-design/web-react
Version:
Arco Design React UI Library.
18 lines (17 loc) • 1 kB
TypeScript
import { ChangeEventHandler, CompositionEventHandler, KeyboardEventHandler } from 'react';
import { InputProps, TextAreaProps } from './interface';
export default function useComposition({ value, maxLength, onChange, onKeyDown, onPressEnter, beforeTriggerValueChangeCallback, normalizeHandler, }: {
value: string;
maxLength: number;
onChange: InputProps['onChange'];
onKeyDown: InputProps['onKeyDown'] | TextAreaProps['onKeyDown'];
onPressEnter: InputProps['onPressEnter'];
beforeTriggerValueChangeCallback?: (newValue: string) => void;
normalizeHandler?: (type: InputProps['normalizeTrigger'][number]) => InputProps['normalize'];
}): {
compositionValue: string;
triggerValueChangeCallback: typeof onChange;
compositionHandler: CompositionEventHandler<HTMLInputElement | HTMLTextAreaElement>;
valueChangeHandler: ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement>;
keyDownHandler: KeyboardEventHandler<HTMLInputElement | HTMLTextAreaElement>;
};