@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.
75 lines (59 loc) • 3.63 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
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"));
const StyledModalSection = _styledComponents.default.section.withConfig({
displayName: "ModalSection__StyledModalSection",
componentId: "sc-emwfdx-0"
})(["", ""], ({
theme,
suppressed,
closable,
isMobileFullPage
}) => (0, _styledComponents.css)(["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;}}", ";"], `${theme.orbit.spaceLarge} ${theme.orbit.spaceMedium}`, suppressed ? theme.orbit.paletteCloudLight : theme.orbit.paletteWhite, theme.orbit.paletteCloudNormal, suppressed && `1px solid ${theme.orbit.paletteCloudNormal}`, !isMobileFullPage && "12px", !isMobileFullPage && "12px", suppressed && closable && theme.orbit.spaceLarge, suppressed ? `1px solid ${theme.orbit.paletteCloudNormal}` : "0", !isMobileFullPage && "12px", !isMobileFullPage && "12px", _ModalFooter.StyledModalFooter, 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;}}"], theme.orbit.spaceXLarge, (suppressed && closable || suppressed) && theme.orbit.spaceXXLarge, !isMobileFullPage && "9px", !isMobileFullPage && "9px", !isMobileFullPage && "9px", !isMobileFullPage && "9px", _ModalFooter.StyledModalFooter, !suppressed && "0")))); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198
exports.StyledModalSection = StyledModalSection;
StyledModalSection.defaultProps = {
theme: _defaultTheme.default
};
const ModalSection = ({
children,
suppressed,
dataTest
}) => {
const {
removeHasModalSection,
setHasModalSection,
isMobileFullPage,
closable
} = React.useContext(_ModalContext.ModalContext);
(0, _useModalContextFunctions.default)();
/*
Run on every re-render to prevent setting hasModalSection to false when there's more sections
*/
React.useEffect(() => {
if (setHasModalSection) setHasModalSection();
});
React.useEffect(() => {
return () => {
if (removeHasModalSection) removeHasModalSection();
};
}, [removeHasModalSection]);
return /*#__PURE__*/React.createElement(StyledModalSection, {
suppressed: suppressed,
"data-test": dataTest,
closable: closable,
isMobileFullPage: isMobileFullPage
}, children);
};
var _default = ModalSection;
exports.default = _default;