UNPKG

react-native-paper-dates

Version:
92 lines (91 loc) 3.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _reactNativePaper = require("react-native-paper"); var _DatePickerModal = _interopRequireDefault(require("./DatePickerModal")); var _utils = require("../shared/utils"); var _DatePickerInputWithoutModal = _interopRequireDefault(require("./DatePickerInputWithoutModal")); var _reactNative = require("react-native"); var _react = require("react"); var _dateUtils = require("./dateUtils"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function DatePickerInput({ withModal = true, calendarIcon = 'calendar', disableCalendarIcon = false, animationType = _reactNative.Platform.select({ web: 'none', default: 'slide' }), presentationStyle = 'overFullScreen', ...rest }, ref) { const [visible, setVisible] = (0, _react.useState)(false); const onChangeRef = (0, _utils.useLatest)(rest.onChange); const onDismiss = (0, _react.useCallback)(() => { setVisible(false); }, [setVisible]); const onInnerConfirm = (0, _react.useCallback)(({ date }) => { setVisible(false); onChangeRef.current(date); }, [setVisible, onChangeRef]); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DatePickerInputWithoutModal.default, { ref: ref, ...rest, inputButton: withModal ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativePaper.TextInput.Icon, { size: rest.iconSize ?? 24, icon: calendarIcon, color: rest.iconColor ?? undefined, forceTextInputFocus: false, disabled: rest.disabled || disableCalendarIcon, onPress: () => setVisible(true), style: rest.iconStyle, testID: `${rest.testID || 'date-picker'}-icon-button` }) : null // eslint-disable-next-line react/no-unstable-nested-components , modal: ({ value, locale, inputMode, validRange, saveLabel, saveLabelDisabled, uppercase, startYear, endYear, inputEnabled, disableStatusBarPadding, startWeekOnMonday }) => withModal ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_DatePickerModal.default, { date: value, mode: "single", visible: visible, onDismiss: onDismiss, onConfirm: onInnerConfirm, locale: locale, dateMode: inputMode, validRange: validRange, saveLabel: saveLabel, saveLabelDisabled: saveLabelDisabled ?? false, uppercase: uppercase, startYear: startYear ?? _dateUtils.defaultStartYear, endYear: endYear ?? _dateUtils.defaultEndYear, inputEnabled: inputEnabled, disableStatusBarPadding: disableStatusBarPadding ?? false, animationType: animationType, presentationStyle: presentationStyle, label: rest.label, startWeekOnMonday: startWeekOnMonday, withDateFormatInLabel: rest.withDateFormatInLabel, placeholder: rest.placeholder }) : null }); } var _default = exports.default = /*#__PURE__*/(0, _react.forwardRef)(DatePickerInput); //# sourceMappingURL=DatePickerInput.js.map