@td-design/react-native
Version:
react-native UI组件库
35 lines • 1.03 kB
JavaScript
import { useEffect } from 'react';
import { useMemoizedFn, useSafeState } from '@td-design/rn-hooks';
export default function useInput(_ref) {
let {
inputType,
value,
defaultValue,
onChange,
onClear
} = _ref;
const [inputValue, setInputValue] = useSafeState();
const [eyeOpen, setEyeOpen] = useSafeState(inputType === 'password');
useEffect(() => {
setInputValue(value ?? defaultValue ?? '');
}, [value, defaultValue]);
const handleChange = val => {
setInputValue(val);
onChange === null || onChange === void 0 ? void 0 : onChange(val);
};
const handleInputClear = () => {
handleChange('');
onClear === null || onClear === void 0 ? void 0 : onClear();
};
const triggerPasswordType = () => {
setEyeOpen(!eyeOpen);
};
return {
inputValue,
eyeOpen,
handleChange: useMemoizedFn(handleChange),
handleInputClear: useMemoizedFn(handleInputClear),
triggerPasswordType: useMemoizedFn(triggerPasswordType)
};
}
//# sourceMappingURL=useInput.js.map