wix-style-react
Version:
wix-style-react
150 lines (149 loc) • 5.61 kB
JavaScript
"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