@massds/mayflower-react
Version:
React versions of Mayflower design system UI components
68 lines (66 loc) • 3.78 kB
JavaScript
"use strict";
exports.__esModule = true;
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _index = _interopRequireDefault(require("../ButtonToggle/index.js"));
var _index2 = _interopRequireDefault(require("../SelectBox/index.js"));
var _index3 = _interopRequireDefault(require("../Tags/index.js"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
/**
* ResultsHeading module.
* @module @massds/mayflower-react/ResultsHeading
* @requires module:@massds/mayflower-assets/scss/02-molecules/results-heading
* @requires module:@massds/mayflower-assets/scss/01-atoms/select-box
* @requires module:@massds/mayflower-assets/scss/01-atoms/label
* @requires module:@massds/mayflower-assets/scss/01-atoms/button-toggle
* @requires module:@massds/mayflower-assets/scss/01-atoms/select-box
* @requires module:@massds/mayflower-assets/scss/01-atoms/helper-text
* @requires module:@massds/mayflower-assets/scss/02-molecules/tags
* @requires module:@massds/mayflower-assets/scss/01-atoms/button-tag
*/
function getTitle(resultsHeading) {
// Check for `undefined` specifically to let the caller hide the title completely with an empty string.
if (resultsHeading.title !== undefined) {
return resultsHeading.title;
}
var resultsHeadingTotal = resultsHeading.totalResults ? " of " + resultsHeading.totalResults + " for: " : '';
return "Showing results " + resultsHeading.numResults + resultsHeadingTotal;
}
var ResultsHeading = function ResultsHeading(resultsHeading) {
var classes = (0, _classnames["default"])('ma__results-heading js-results-heading', resultsHeading.className);
var title = getTitle(resultsHeading);
var tags = resultsHeading.tags;
var selectBoxProps = resultsHeading.selectBox;
var buttonToggleProps = resultsHeading.buttonToggle;
return /*#__PURE__*/_react["default"].createElement("div", {
className: classes
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__results-heading__container"
}, title && /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__results-heading__title"
}, title), tags && /*#__PURE__*/_react["default"].createElement(_index3["default"], tags), selectBoxProps && /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__results-heading__sort ma__results-heading__sort-selecBox"
}, /*#__PURE__*/_react["default"].createElement(_index2["default"], selectBoxProps)), buttonToggleProps && /*#__PURE__*/_react["default"].createElement("div", {
className: "ma__results-heading__sort"
}, /*#__PURE__*/_react["default"].createElement(_index["default"], buttonToggleProps))));
};
ResultsHeading.propTypes = process.env.NODE_ENV !== "production" ? {
/** Custom class added to the root element. */
className: _propTypes["default"].string,
/** The range of results being displayed, e.g. 1-10 */
numResults: _propTypes["default"].string,
/** The total count of results */
totalResults: _propTypes["default"].string,
/** The title to display instead the auto-generated one. Pass empty string to hide the title element completely. */
title: _propTypes["default"].string,
/** The sort input type as ButtonToggle */
buttonToggle: _propTypes["default"].shape(_index["default"].propTypes),
/** The sort input type as SelectBox */
selectBox: _propTypes["default"].shape(_index2["default"].propTypes),
/** The array of tags and the tags callback functions */
tags: _propTypes["default"].shape(_index3["default"].propTypes)
} : {};
var _default = exports["default"] = ResultsHeading;
module.exports = exports.default;