@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.
58 lines (56 loc) • 2.56 kB
JavaScript
;
"use client";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
exports.__esModule = true;
exports.default = exports.ModalSectionWrapper = void 0;
var React = _interopRequireWildcard(require("react"));
var _clsx = _interopRequireDefault(require("clsx"));
var _ModalContext = require("../ModalContext");
var _useModalContextFunctions = _interopRequireDefault(require("../helpers/useModalContextFunctions"));
const ModalSectionWrapper = ({
className,
children,
suppressed,
closable,
isMobileFullPage,
dataTest
}) => {
return /*#__PURE__*/React.createElement("section", {
className: (0, _clsx.default)(className, "orbit-modal-section", "py-lg px-md lm:p-xl box-border w-full", "border-b-solid border-b-elevation-flat-border-color border-b", "last-of-type:[&:not(:last-child)]:rounded-b-none", suppressed ? ["bg-cloud-light", "first-of-type:border-t-solid first-of-type:border-t-elevation-flat-border-color lm:first-of-type:mt-xxl first-of-type:border-t", "last-of-type:border-b-solid last-of-type:border-b-elevation-flat-border-color [&_~_.orbit-modal-footer]:last-of-type:mt-md last-of-type:border-b", closable && "first-of-type:mt-lg"] : ["bg-white-normal", "lm:[&_~_.orbit-modal-footer]:last-of-type:pt-0 last-of-type:border-b-0"], !isMobileFullPage && ["first-of-type:rounded-t-modal-mobile lm:first-of-type:rounded-t-modal", "last-of-type:rounded-b-modal-mobile lm:last-of-type:rounded-t-modal lm:[&_~_.orbit-modal-footer]:last-of-type:mt-0"]),
"data-test": dataTest
}, children);
};
exports.ModalSectionWrapper = ModalSectionWrapper;
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(ModalSectionWrapper, {
dataTest: dataTest,
suppressed: suppressed,
closable: closable,
isMobileFullPage: isMobileFullPage
}, children);
};
var _default = ModalSection;
exports.default = _default;