UNPKG

@chayns-components/date

Version:

A set of beautiful React components for developing your own applications with chayns.

105 lines (104 loc) 4.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _core = require("@chayns-components/core"); var _react = _interopRequireWildcard(require("react")); var _openingTimes = require("../../../../types/openingTimes"); var _OpeningInput = require("./OpeningInput.styles"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } const OpeningInput = ({ end, start, isDisabled, isInvalid, buttonType, onRemove, onAdd, onChange, id }) => { const [startTime, setStartTime] = (0, _react.useState)(start); const [endTime, setEndTime] = (0, _react.useState)(end); const button = (0, _react.useMemo)(() => { switch (buttonType) { case _openingTimes.OpeningTimesButtonType.ADD: return /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInputButtonWrapper, { onClick: onAdd }, /*#__PURE__*/_react.default.createElement(_core.Icon, { icons: ['ts-plus'], size: 15 })); case _openingTimes.OpeningTimesButtonType.REMOVE: return /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInputButtonWrapper, { onClick: onRemove }, /*#__PURE__*/_react.default.createElement(_core.Icon, { icons: ['ts-wrong'], size: 15 })); default: return /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInputPseudoButton, null); } }, [buttonType, onAdd, onRemove]); const handleStartTimeBlur = (0, _react.useCallback)((value, isTimeInvalid) => { if (isTimeInvalid || typeof value === 'number' || !value) { return; } setStartTime(value); onChange({ end: endTime, start: value, id }); }, [endTime, id, onChange]); const handleEndTimeBlur = (0, _react.useCallback)((value, isTimeInvalid) => { if (isTimeInvalid || typeof value === 'number' || !value) { return; } setEndTime(value); onChange({ end: value, start: startTime, id }); }, [id, onChange, startTime]); return (0, _react.useMemo)(() => /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInput, { key: id, animate: { opacity: 1, height: 'auto' }, initial: { opacity: 0, height: 0 }, exit: { opacity: 0, height: 0 }, transition: { duration: 0.2, type: 'tween' } }, /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInputWrapper, null, /*#__PURE__*/_react.default.createElement(_core.NumberInput, { shouldShowOnlyBottomBorder: true, isTimeInput: true, isInvalid: isInvalid, value: startTime, onBlur: handleStartTimeBlur, isDisabled: isDisabled })), /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInputText, { $isDisabled: isDisabled }, "-"), /*#__PURE__*/_react.default.createElement(_OpeningInput.StyledOpeningInputWrapper, null, /*#__PURE__*/_react.default.createElement(_core.NumberInput, { shouldShowOnlyBottomBorder: true, isTimeInput: true, isInvalid: isInvalid, value: endTime, onBlur: handleEndTimeBlur, isDisabled: isDisabled })), button), [button, endTime, handleEndTimeBlur, handleStartTimeBlur, id, isDisabled, isInvalid, startTime]); }; OpeningInput.displayName = 'OpeningInput'; var _default = exports.default = OpeningInput; //# sourceMappingURL=OpeningInput.js.map