UNPKG

@fruits-chain/react-native-xiaoshu

Version:
66 lines (62 loc) • 2.27 kB
function _extends() { _extends = Object.assign || 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 isUndefined from 'lodash/isUndefined'; import omit from 'lodash/omit'; import React, { useMemo, memo } from 'react'; import { Keyboard } from 'react-native'; import DatePicker from '../date-picker'; import { formatDate } from '../date-picker-view/helper'; import { useControllableValue, usePersistFn } from '../hooks'; import TextInputClear from '../text-input/text-input-clear'; import FieldText from './field-text'; const FieldDate = _ref => { let { mode = 'Y-m', min, max, renderLabel, confirmButtonText, cancelButtonText, formatValueText, datePickerTitle, isLink = true, editable = true, clearable = false, ...restProps } = _ref; const [value, onChange] = useControllableValue(restProps); const valueText = useMemo(() => value ? formatDate(mode, value) : undefined, [value, mode]); const onPress = usePersistFn(() => { Keyboard.dismiss(); DatePicker({ defaultValue: value || new Date(), confirmButtonText, cancelButtonText, mode, min, max, renderLabel, title: datePickerTitle }).then(_ref2 => { let { action, value: _value } = _ref2; if (action === 'confirm') { onChange(_value); } }); }); return /*#__PURE__*/React.createElement(FieldText, _extends({}, omit(restProps, ['value', 'defaultValue', 'onChange']), { disabled: !editable, onPress: onPress, value: formatValueText && !isUndefined(valueText) ? formatValueText(value, mode, valueText) : valueText, isLink: value && clearable ? false : isLink, valueExtra: value && clearable ? /*#__PURE__*/React.createElement(React.Fragment, null, restProps.valueExtra, /*#__PURE__*/React.createElement(TextInputClear, { onPress: () => { onChange(null); } })) : restProps.valueExtra })); }; export default /*#__PURE__*/memo(FieldDate); //# sourceMappingURL=field-date.js.map