wix-style-react
Version:
88 lines (71 loc) • 3.19 kB
JavaScript
;
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;