UNPKG

wix-style-react

Version:
150 lines (149 loc) 5.61 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _Text = _interopRequireDefault(require("../Text")); var _TableToolbar = _interopRequireDefault(require("../TableToolbar")); var _Calendar = _interopRequireDefault(require("../Calendar")); var _Button = _interopRequireDefault(require("../Button")); var _Box = _interopRequireDefault(require("../Box")); var _jsxFileName = "/home/builduser/work/a9c1ac8876d5057c/packages/wix-style-react/dist/cjs/CalendarPanelFooter/CalendarPanelFooter.js"; class CalendarPanelFooter extends _react.default.PureComponent { render() { var { dataHook, dateToString, secondaryActionLabel, primaryActionLabel, selectedDays: selectedDaysProp, primaryActionDisabled, primaryActionOnClick, secondaryActionOnClick } = this.props; function getSelectedDaysString(selectedDaysRaw) { if (!selectedDaysRaw) { return ''; } var selectedDays = _Calendar.default.parseValue(selectedDaysRaw); if (_Calendar.default.isRangeValue(selectedDays)) { var toSuffix = selectedDays.to ? " ".concat(dateToString(selectedDays.to)) : ''; return "".concat(dateToString(selectedDays.from), " -").concat(toSuffix); } else { return dateToString(selectedDays); } } return /*#__PURE__*/_react.default.createElement("div", { "data-hook": dataHook, __self: this, __source: { fileName: _jsxFileName, lineNumber: 69, columnNumber: 7 } }, /*#__PURE__*/_react.default.createElement(_TableToolbar.default, { __self: this, __source: { fileName: _jsxFileName, lineNumber: 70, columnNumber: 9 } }, /*#__PURE__*/_react.default.createElement(_TableToolbar.default.ItemGroup, { position: "start", __self: this, __source: { fileName: _jsxFileName, lineNumber: 71, columnNumber: 11 } }, /*#__PURE__*/_react.default.createElement(_TableToolbar.default.Item, { __self: this, __source: { fileName: _jsxFileName, lineNumber: 72, columnNumber: 13 } }, /*#__PURE__*/_react.default.createElement(_Text.default, { size: "small", weight: "thin", secondary: true, dataHook: "selected-days-text", __self: this, __source: { fileName: _jsxFileName, lineNumber: 73, columnNumber: 15 } }, getSelectedDaysString(selectedDaysProp)))), /*#__PURE__*/_react.default.createElement(_TableToolbar.default.ItemGroup, { position: "end", __self: this, __source: { fileName: _jsxFileName, lineNumber: 83, columnNumber: 11 } }, /*#__PURE__*/_react.default.createElement(_Box.default, { __self: this, __source: { fileName: _jsxFileName, lineNumber: 84, columnNumber: 13 } }, /*#__PURE__*/_react.default.createElement(_Button.default, { size: "small", priority: "secondary", dataHook: "secondary-action-button", onClick: secondaryActionOnClick, __self: this, __source: { fileName: _jsxFileName, lineNumber: 85, columnNumber: 15 } }, secondaryActionLabel), /*#__PURE__*/_react.default.createElement(_Box.default, { margin: "0 6px", __self: this, __source: { fileName: _jsxFileName, lineNumber: 93, columnNumber: 15 } }), /*#__PURE__*/_react.default.createElement(_Button.default, { size: "small", disabled: primaryActionDisabled, dataHook: "primary-action-button", onClick: primaryActionOnClick, __self: this, __source: { fileName: _jsxFileName, lineNumber: 94, columnNumber: 15 } }, primaryActionLabel))))); } } CalendarPanelFooter.displayName = 'CalendarPanelFooter'; CalendarPanelFooter.propTypes = { /** Applies a data-hook HTML attribute that can be used in the tests */ dataHook: _propTypes.default.string, /** Defines primary (submit) action label */ primaryActionLabel: _propTypes.default.string.isRequired, /** Defines secondary (cancel) action label */ secondaryActionLabel: _propTypes.default.string.isRequired, /** Specifies whether primary action is disabled */ primaryActionDisabled: _propTypes.default.bool.isRequired, /** Defines a callback function which is called every time primary button is clicked */ primaryActionOnClick: _propTypes.default.func.isRequired, /** Defines a callback function which is called every time secondary button is clicked */ secondaryActionOnClick: _propTypes.default.func.isRequired, /** Defines an active date or a date range selection */ selectedDays: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.instanceOf(Date), _propTypes.default.shape({ from: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.instanceOf(Date)]), to: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.instanceOf(Date)]) })]), /** Formats date into a string for displaying the current selected days. Receives a Date instance (not undefined). */ dateToString: _propTypes.default.func.isRequired }; var _default = exports.default = CalendarPanelFooter; //# sourceMappingURL=CalendarPanelFooter.js.map