@fruits-chain/react-native-xiaoshu
Version:
🌈 React Native UI library
66 lines (62 loc) • 2.27 kB
JavaScript
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