UNPKG

@td-design/react-native-picker

Version:

基于 @td-design/react-native 的 picker 组件

64 lines 2.12 kB
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import React, { useImperativeHandle } from 'react'; import { Keyboard } from 'react-native'; import { Modal } from '@td-design/react-native'; import { useMemoizedFn, useSafeState } from '@td-design/rn-hooks'; import dayjs from 'dayjs'; import DatePicker from './date-picker'; 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, ...restProps } = _ref; const [date, setDate] = useSafeState(value); const currentText = getText(date, format, placeholder); useImperativeHandle(ref, () => { return { focus: () => { Modal.show( /*#__PURE__*/React.createElement(DatePicker, _extends({}, restProps, { value: date, format, onChange: handleChange })), { position: 'bottom' }); } }; }); const handlePress = () => { Keyboard.dismiss(); Modal.show( /*#__PURE__*/React.createElement(DatePicker, _extends({}, restProps, { value: date, format, onChange: handleChange })), { position: 'bottom' }); }; 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, handlePress: useMemoizedFn(handlePress), handleChange: useMemoizedFn(handleChange), handleInputClear: useMemoizedFn(handleInputClear) }; } //# sourceMappingURL=useDatePicker.js.map