@td-design/react-native-picker
Version:
基于 @td-design/react-native 的 picker 组件
47 lines • 1.15 kB
JavaScript
import { useImperativeHandle } from 'react';
import { useMemoizedFn, useSafeState } from '@td-design/rn-hooks';
import dayjs from 'dayjs';
export default function useDatePicker(_ref) {
let {
onChange,
value,
format,
ref
} = _ref;
const [date, setDate] = useSafeState(value);
const [visible, setVisible] = useSafeState(false);
useImperativeHandle(ref, () => ({
show: () => {
setVisible(true);
},
hide: () => {
setVisible(false);
},
getValue: () => {
return {
date,
formatDate: dayjs(date).format(format)
};
}
}));
const handleChange = date => {
setDate(date);
};
const handleClose = () => {
setDate(value);
setVisible(false);
};
const handleOk = () => {
const value = date ?? new Date();
onChange === null || onChange === void 0 ? void 0 : onChange(value, dayjs(value).format(format));
setVisible(false);
};
return {
date,
visible,
handleChange: useMemoizedFn(handleChange),
handleOk: useMemoizedFn(handleOk),
handleClose: useMemoizedFn(handleClose)
};
}
//# sourceMappingURL=useDatePicker.js.map