@kiwicom/orbit-components
Version:
Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.
131 lines (114 loc) • 5.25 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.StyledModalSection = void 0;
var _react = _interopRequireWildcard(require("react"));
var _styledComponents = _interopRequireWildcard(require("styled-components"));
var _defaultTheme = _interopRequireDefault(require("../../defaultTheme"));
var _mediaQuery = _interopRequireDefault(require("../../utils/mediaQuery"));
var _ModalFooter = require("../ModalFooter");
var _ModalContext = require("../ModalContext");
var _useModalContextFunctions = _interopRequireDefault(require("../helpers/useModalContextFunctions"));
var StyledModalSection = _styledComponents.default.section.withConfig({
displayName: "ModalSection__StyledModalSection",
componentId: "sc-1ayrdn8-0"
})(["width:100%;padding:", ";background-color:", ";border-bottom:1px solid ", ";box-sizing:border-box;&:first-of-type{border-top:", ";border-top-left-radius:", ";border-top-right-radius:", ";margin-top:", ";}&:last-of-type{border-bottom:", ";border-bottom-left-radius:", ";border-bottom-right-radius:", ";& ~ ", "{margin-top:", ";}&:not(:last-child){border-bottom-left-radius:0;border-bottom-right-radius:0;}}", ";"], function (_ref) {
var theme = _ref.theme;
return "".concat(theme.orbit.spaceLarge, " ").concat(theme.orbit.spaceMedium);
}, function (_ref2) {
var theme = _ref2.theme,
suppressed = _ref2.suppressed;
return suppressed ? theme.orbit.paletteCloudLight : theme.orbit.paletteWhite;
}, function (_ref3) {
var theme = _ref3.theme;
return theme.orbit.paletteCloudNormal;
}, function (_ref4) {
var suppressed = _ref4.suppressed,
theme = _ref4.theme;
return suppressed && "1px solid ".concat(theme.orbit.paletteCloudNormal);
}, function (_ref5) {
var isMobileFullPage = _ref5.isMobileFullPage;
return !isMobileFullPage && "12px";
}, function (_ref6) {
var isMobileFullPage = _ref6.isMobileFullPage;
return !isMobileFullPage && "12px";
}, function (_ref7) {
var suppressed = _ref7.suppressed,
theme = _ref7.theme,
closable = _ref7.closable;
return suppressed && closable && theme.orbit.spaceLarge;
}, function (_ref8) {
var suppressed = _ref8.suppressed,
theme = _ref8.theme;
return suppressed ? "1px solid ".concat(theme.orbit.paletteCloudNormal) : "0";
}, function (_ref9) {
var isMobileFullPage = _ref9.isMobileFullPage;
return !isMobileFullPage && "12px";
}, function (_ref10) {
var isMobileFullPage = _ref10.isMobileFullPage;
return !isMobileFullPage && "12px";
}, _ModalFooter.StyledModalFooter, function (_ref11) {
var theme = _ref11.theme,
suppressed = _ref11.suppressed;
return suppressed && theme.orbit.spaceMedium;
}, _mediaQuery.default.largeMobile((0, _styledComponents.css)(["padding:", ";&:first-of-type{margin-top:", ";border-top-left-radius:", ";border-top-right-radius:", ";}&:last-of-type{border-bottom-left-radius:", ";border-bottom-right-radius:", ";& ~ ", "{padding-top:", ";margin-top:0;}}"], function (_ref12) {
var theme = _ref12.theme;
return theme.orbit.spaceXXLarge;
}, function (_ref13) {
var suppressed = _ref13.suppressed,
theme = _ref13.theme,
closable = _ref13.closable;
return (suppressed && closable || suppressed) && theme.orbit.spaceXXLarge;
}, function (_ref14) {
var isMobileFullPage = _ref14.isMobileFullPage;
return !isMobileFullPage && "9px";
}, function (_ref15) {
var isMobileFullPage = _ref15.isMobileFullPage;
return !isMobileFullPage && "9px";
}, function (_ref16) {
var isMobileFullPage = _ref16.isMobileFullPage;
return !isMobileFullPage && "9px";
}, function (_ref17) {
var isMobileFullPage = _ref17.isMobileFullPage;
return !isMobileFullPage && "9px";
}, _ModalFooter.StyledModalFooter, function (_ref18) {
var suppressed = _ref18.suppressed;
return !suppressed && "0";
})));
exports.StyledModalSection = StyledModalSection;
StyledModalSection.defaultProps = {
theme: _defaultTheme.default
};
var ModalSection = function ModalSection(_ref19) {
var children = _ref19.children,
suppressed = _ref19.suppressed,
dataTest = _ref19.dataTest;
var _useContext = (0, _react.useContext)(_ModalContext.ModalContext),
removeHasModalSection = _useContext.removeHasModalSection,
setHasModalSection = _useContext.setHasModalSection,
isMobileFullPage = _useContext.isMobileFullPage,
closable = _useContext.closable;
(0, _useModalContextFunctions.default)();
/*
Run on every re-render to prevent setting hasModalSection to false when there's more sections
*/
(0, _react.useEffect)(function () {
if (setHasModalSection) setHasModalSection();
});
(0, _react.useEffect)(function () {
return function () {
if (removeHasModalSection) removeHasModalSection();
};
}, [removeHasModalSection]);
return /*#__PURE__*/_react.default.createElement(StyledModalSection, {
suppressed: suppressed,
"data-test": dataTest,
closable: closable,
isMobileFullPage: isMobileFullPage
}, children);
};
var _default = ModalSection;
exports.default = _default;