@navikt/ds-react
Version:
React components from the Norwegian Labour and Welfare Administration.
44 lines • 1.95 kB
JavaScript
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
import React, { forwardRef } from "react";
import { useModalContext } from "../../modal/Modal.context.js";
import { Portal } from "../../portal/index.js";
import { DialogBackdropInternal } from "../backdrop/DialogBackdropInternal.js";
import { useDialogContext } from "../root/DialogRoot.context.js";
import { DialogPopupInternal, } from "./DialogPopupInternal.js";
/**
* @see 🏷️ {@link DialogPopupProps}
* @example
* ```jsx
* <Dialog>
* <Dialog.Popup>
* ...
* </Dialog.Popup>
* </Dialog>
* ```
*/
const DialogPopup = forwardRef((_a, forwardedRef) => {
var { modal = true, withBackdrop = modal === true, rootElement: rootElementProp, position } = _a, restProps = __rest(_a, ["modal", "withBackdrop", "rootElement", "position"]);
const { mounted, nested } = useDialogContext();
const modalContext = useModalContext(false);
const rootElement = modalContext
? modalContext.modalRef.current
: rootElementProp;
if (!mounted) {
return null;
}
return (React.createElement(Portal, { rootElement: rootElement },
withBackdrop && position !== "fullscreen" && !nested && (React.createElement(DialogBackdropInternal, null)),
React.createElement(DialogPopupInternal, Object.assign({ ref: forwardedRef }, restProps, { position: position, withBackdrop: withBackdrop && position !== "fullscreen", modal: modal }))));
});
export { DialogPopup };
//# sourceMappingURL=DialogPopup.js.map