UNPKG

@alifd/meet-react

Version:

Fusion Mobile React UI System Component

119 lines (118 loc) 5.39 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _tslib = require("tslib"); var _react = _interopRequireWildcard(require("react")); var _dayjs = _interopRequireDefault(require("dayjs")); var _view = _interopRequireDefault(require("../view")); var _form = require("../form"); var _selectDrawer = _interopRequireDefault(require("../select-drawer")); var _embedPicker = _interopRequireDefault(require("./embed-picker")); var _utils = require("../utils"); var _date = require("../utils/date"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } 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); } var TimePicker = function (props, ref) { var _props$prefix = props.prefix, prefix = _props$prefix === void 0 ? 'mt-' : _props$prefix, valueProp = props.value, defaultValue = props.defaultValue, sizeProp = props.size, alignProp = props.align, iconType = props.iconType, placeholder = props.placeholder, format = props.format, hasClear = props.hasClear, disabled = props.disabled, readOnly = props.readOnly, _props$onChange = props.onChange, onChange = _props$onChange === void 0 ? function () {} : _props$onChange, _props$onClear = props.onClear, onClear = _props$onClear === void 0 ? function () {} : _props$onClear, _props$onCancel = props.onCancel, onCancel = _props$onCancel === void 0 ? function () {} : _props$onCancel, className = props.className, zIndex = props.zIndex, others = (0, _tslib.__rest)(props, ["prefix", "value", "defaultValue", "size", "align", "iconType", "placeholder", "format", "hasClear", "disabled", "readOnly", "onChange", "onClear", "onCancel", "className", "zIndex"]); var _useState = (0, _react.useState)((0, _date.toDate)(valueProp || defaultValue)), value = _useState[0], setValue = _useState[1]; var _useState2 = (0, _react.useState)(value || new Date()), pickerValue = _useState2[0], setPickerValue = _useState2[1]; var _useContext = (0, _react.useContext)(_form.ItemContext), isInsideForm = _useContext.isInsideForm, contentAlign = _useContext.contentAlign, contextSize = _useContext.size; var align = alignProp || (isInsideForm ? contentAlign : 'left'); var size = sizeProp || (isInsideForm ? contextSize : 'medium'); var isControlled = ('value' in props); (0, _react.useEffect)(function () { if ('value' in props) { var newValue = (0, _date.toDate)(valueProp || defaultValue); if (!(0, _date.isValidDate)(newValue)) { setValue(undefined); return; } else if (newValue === value) { return; } setValue(newValue); setPickerValue(newValue); } }, [valueProp]); return /*#__PURE__*/(0, _react.createElement)(_selectDrawer.default, { disableScroll: true, hasClear: hasClear, content: value ? (0, _dayjs.default)(value).format(format || 'HH:mm') : '', align: align, size: size, iconType: iconType, placeholder: placeholder, disabled: disabled, readOnly: readOnly, className: className, zIndex: zIndex, onOk: function handleOk() { var newValue = pickerValue; if (onChange) { onChange(newValue); } if (!isControlled) { setValue(newValue); } }, onCancel: function handleCancel(reason) { setPickerValue(value || new Date()); if ((0, _utils.isFunction)(onCancel)) { onCancel(reason); } }, onClear: function handleClear() { if (!isControlled) { setPickerValue(new Date()); setValue(undefined); } if (onClear) { onClear(); } if (onChange) { onChange(undefined); } }, ref: ref }, /*#__PURE__*/(0, _react.createElement)(_view.default, { className: prefix + "timepicker-container", "disable-scroll": true }, /*#__PURE__*/(0, _react.createElement)(_embedPicker.default, _extends({}, others, { prefix: prefix, value: pickerValue, format: format || 'HH:mm', onChange: function handleChange(d) { return setPickerValue(d); } })))); }; TimePicker.displayName = 'TimePicker'; var _default = exports.default = /*#__PURE__*/(0, _react.forwardRef)(TimePicker);