UNPKG

@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.

57 lines (55 loc) 2.43 kB
"use strict"; "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-600 px-400 lm:p-800 box-border w-full", "border-b-elevation-flat-border-color border-b border-solid", "lm:last-of-type:rounded-b-modal lm:first-of-type:rounded-t-modal", suppressed ? ["bg-cloud-light", "first-of-type:border-t-elevation-flat-border-color lm:first-of-type:mt-1000 first-of-type:border-t first-of-type:border-solid", "last-of-type:border-b-elevation-flat-border-color [&_~_.orbit-modal-footer]:last-of-type:mt-400 last-of-type:border-b last-of-type:border-solid", closable && "first-of-type:mt-600"] : ["bg-white-normal", "lm:[&_~_.orbit-modal-footer]:last-of-type:pt-0 last-of-type:border-b-0"], !isMobileFullPage && ["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 = exports.default = ModalSection;