wix-style-react
Version:
wix-style-react
121 lines (120 loc) • 4.16 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 _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 _buildChildrenObject = require("../common/utils/buildChildrenObject");
var _jsxFileName = "/home/builduser/work/a9c1ac8876d5057c/packages/wix-style-react/dist/cjs/PageFooter/PageFooter.js";
/** Layout footer component of 3 columns */
var PageFooter = _ref => {
var {
divider = false,
className,
children,
dataHook
} = _ref;
var childrenObj = (0, _buildChildrenObject.buildChildrenObject)(children, {
Start: /*#__PURE__*/_react.default.createElement(_Start.default, {
key: "start",
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 13,
columnNumber: 12
}
}),
Center: /*#__PURE__*/_react.default.createElement(_Center.default, {
key: "center",
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 14,
columnNumber: 13
}
}),
End: /*#__PURE__*/_react.default.createElement(_End.default, {
key: "end",
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 15,
columnNumber: 10
}
})
});
return /*#__PURE__*/_react.default.createElement("div", {
className: _PageFooterSt.classes.root,
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 18,
columnNumber: 5
}
}, divider && /*#__PURE__*/_react.default.createElement("div", {
className: _PageFooterSt.classes.divider,
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 20,
columnNumber: 9
}
}, /*#__PURE__*/_react.default.createElement(_Divider.default, {
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 21,
columnNumber: 11
}
})), /*#__PURE__*/_react.default.createElement("div", {
className: (0, _PageFooterSt.st)(_PageFooterSt.classes.container, className),
children: Object.values(childrenObj),
"data-hook": dataHook,
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 24,
columnNumber: 7
}
}, Object.values(childrenObj)));
};
PageFooter.displayName = 'Page.Footer';
PageFooter.propTypes = {
/** Accepts following elements as child items:
* - <PageFooter.Start />
* - <PageFooter.Center />
* - <PageFooter.End />
* - <Page.Footer.Start />
* - <Page.Footer.Center />
* - <Page.Footer.End />
<br/>
Each of these areas accept any component as their child. */
children: (props, propName) => {
var childrenArr = _react.default.Children.toArray(props[propName]);
return childrenArr.reduce((err, child) => {
if (!err && child.type.displayName !== 'Page.Footer.Start' && child.type.displayName !== 'Page.Footer.Center' && child.type.displayName !== 'Page.Footer.End') {
return new Error("Invalid children provided, unknown child <".concat(child.type.displayName || child.type, " /> supplied"));
}
return err;
}, false);
},
/** Applies a data-hook HTML attribute to be used in the tests */
dataHook: _propTypes.default.string,
/** Applies a CSS class to the component’s root element */
className: _propTypes.default.string,
/** Renders a full-width divider at the top of the footer */
divider: _propTypes.default.bool
};
PageFooter.Start = _Start.default;
PageFooter.Center = _Center.default;
PageFooter.End = _End.default;
PageFooter.Start.displayName = 'Page.Footer.Start';
PageFooter.Center.displayName = 'Page.Footer.Center';
PageFooter.End.displayName = 'Page.Footer.End';
var _default = exports.default = PageFooter;
//# sourceMappingURL=PageFooter.js.map