UNPKG

@td-design/react-native

Version:

react-native UI组件库

35 lines 1.03 kB
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