mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
39 lines • 1.67 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
var _excluded = ["precision", "format", "placeholder", "value", "renderLabel"];
import { DatePicker, Input } from 'antd-mobile';
import * as React from 'react';
import { safeDate } from 'util-helpers';
import { useConfig } from '../../BizConfigProvider';
import { labelRenderer } from '../utils/date';
import { dayjs } from '../../../utils/dayjs.util';
var SuperDatePicker = function SuperDatePicker(props) {
var _useConfig = useConfig(),
locale = _useConfig.locale;
var precision = props.precision,
format = props.format,
placeholder = props.placeholder,
outValue = props.value,
_props$renderLabel = props.renderLabel,
renderLabel = _props$renderLabel === void 0 ? function (type, data) {
return labelRenderer(type, data, locale);
} : _props$renderLabel,
restProps = _objectWithoutProperties(props, _excluded);
var internalValue = React.useMemo(function () {
return typeof outValue === 'string' ? safeDate(outValue) : outValue;
}, [outValue]);
return /*#__PURE__*/React.createElement(DatePicker, _objectSpread({
renderLabel: renderLabel,
precision: precision,
value: internalValue,
destroyOnClose: true
}, restProps), function (value) {
var fmtValue = value ? typeof format === 'function' ? format(value, precision) : dayjs(value).format(format) : value;
return /*#__PURE__*/React.createElement(Input, {
value: fmtValue || '',
placeholder: placeholder,
readOnly: true
});
});
};
export default SuperDatePicker;