@td-design/react-native-picker
Version:
基于 @td-design/react-native 的 picker 组件
43 lines • 1.36 kB
JavaScript
import { useRef } from 'react';
import { Keyboard } from 'react-native';
import { useMemoizedFn, useSafeState } from '@td-design/rn-hooks';
import dayjs from 'dayjs';
function getText(value, format, placeholder) {
if (value) {
return dayjs(value).format(format);
}
return placeholder;
}
export default function useDatePicker(_ref) {
let {
value,
onChange,
placeholder = '请选择',
format = 'YYYY-MM-DD'
} = _ref;
const datePickerRef = useRef(null);
const [date, setDate] = useSafeState(value);
const currentText = getText(date, format, placeholder);
const handlePress = () => {
var _datePickerRef$curren;
Keyboard.dismiss();
(_datePickerRef$curren = datePickerRef.current) === null || _datePickerRef$curren === void 0 ? void 0 : _datePickerRef$curren.show();
};
const handleChange = (date, formatDate) => {
setDate(date);
onChange === null || onChange === void 0 ? void 0 : onChange(date, formatDate);
};
const handleInputClear = () => {
setDate(undefined);
onChange === null || onChange === void 0 ? void 0 : onChange(undefined);
};
return {
date,
currentText,
datePickerRef,
handlePress: useMemoizedFn(handlePress),
handleChange: useMemoizedFn(handleChange),
handleInputClear: useMemoizedFn(handleInputClear)
};
}
//# sourceMappingURL=useDatePicker.js.map