UNPKG

wix-style-react

Version:
88 lines (71 loc) 3.19 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _Start = _interopRequireDefault(require("./Start")); var _Center = _interopRequireDefault(require("./Center")); var _End = _interopRequireDefault(require("./End")); var _PageFooterSt = require("./PageFooter.st.css"); var _Divider = _interopRequireDefault(require("../Divider")); var _utils = require("wix-ui-core/dist/src/utils"); /** Layout footer component of 3 columns */ var PageFooter = function PageFooter(_ref) { var divider = _ref.divider, className = _ref.className, children = _ref.children, dataHook = _ref.dataHook; var childrenObj = (0, _utils.buildChildrenObject)(children, { Start: /*#__PURE__*/_react["default"].createElement(_Start["default"], { key: "start" }), Center: /*#__PURE__*/_react["default"].createElement(_Center["default"], { key: "center" }), End: /*#__PURE__*/_react["default"].createElement(_End["default"], { key: "end" }) }); return /*#__PURE__*/_react["default"].createElement("div", { className: _PageFooterSt.classes.root }, divider && /*#__PURE__*/_react["default"].createElement("div", { className: _PageFooterSt.classes.divider }, /*#__PURE__*/_react["default"].createElement(_Divider["default"], null)), /*#__PURE__*/_react["default"].createElement("div", { className: (0, _PageFooterSt.st)(_PageFooterSt.classes.container, className), children: Object.values(childrenObj), "data-hook": dataHook }, Object.values(childrenObj))); }; PageFooter.displayName = 'PageFooter'; PageFooter.propTypes = { /** Either `<PageFooter.Start />`, `<PageFooter.Center />` or `<PageFooter.End />` components. */ children: function children(props, propName) { var childrenArr = _react["default"].Children.toArray(props[propName]); return childrenArr.reduce(function (err, child) { if (!err && child.type.displayName !== 'PageFooter.Start' && child.type.displayName !== 'PageFooter.Center' && child.type.displayName !== 'PageFooter.End') { return new Error("Invalid children provided, unknown child <".concat(child.type.displayName || child.type, " /> supplied")); } return err; }, false); }, /** Applied as data-hook HTML attribute that can be used in the tests */ dataHook: _propTypes["default"].string, /** A css class to be applied to the component's root element */ className: _propTypes["default"].string, /** A boolean to to determine whether to render a divider element */ divider: _propTypes["default"].bool }; PageFooter.defaultProps = { divider: false }; PageFooter.Start = _Start["default"]; PageFooter.Center = _Center["default"]; PageFooter.End = _End["default"]; PageFooter.Start.displayName = 'PageFooter.Start'; PageFooter.Center.displayName = 'PageFooter.Center'; PageFooter.End.displayName = 'PageFooter.End'; var _default = PageFooter; exports["default"] = _default;