UNPKG

@massds/mayflower-react

Version:

React versions of Mayflower design system UI components

68 lines (66 loc) 3.78 kB
"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;