@td-design/react-native
Version:
react-native UI组件库
47 lines (46 loc) • 1.35 kB
JavaScript
import { useEffect } from 'react';
import { useMemoizedFn, useSafeState } from '@td-design/rn-hooks';
import Toast from '../toast';
const VehicleReg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/;
export default function useVehicleKeyboard(_ref) {
let {
value,
onChange,
onCheck,
placeholder = '请输入'
} = _ref;
const [currentText, setCurrentText] = useSafeState();
useEffect(() => {
setCurrentText(value ?? placeholder ?? '');
}, [value, placeholder]);
/**
* 根据type对value进行合法性校验
*/
const handleSubmit = async value => {
if (!VehicleReg.test(value)) {
Toast.middle({
content: '请输入正确的车牌号'
});
return;
}
await (onCheck === null || onCheck === void 0 ? void 0 : onCheck(value));
if (onChange) {
onChange(`${value}`);
} else {
setCurrentText(value || placeholder);
}
};
const handleInputClear = () => {
if (onChange) {
onChange();
} else {
setCurrentText(placeholder);
}
};
return {
currentText,
handleSubmit: useMemoizedFn(handleSubmit),
handleInputClear: useMemoizedFn(handleInputClear)
};
}
//# sourceMappingURL=useVehicleKeyboard.js.map