import React, { forwardRef } from "react"; import { useModalContext } from "../../modal/Modal.context"; import { Portal, type PortalProps } from "../../portal"; import { DialogBackdropInternal } from "../backdrop/DialogBackdropInternal"; import { useDialogContext } from "../root/DialogRoot.context"; import { DialogPopupInternal, type DialogPopupInternalProps, } from "./DialogPopupInternal"; type DialogPopupProps = DialogPopupInternalProps & Pick & { children: React.ReactNode; }; /** * @see 🏷️ {@link DialogPopupProps} * @example * ```jsx * * * ... * * * ``` */ const DialogPopup = forwardRef( ( { modal = true, withBackdrop = modal === true, rootElement: rootElementProp, position, ...restProps }, forwardedRef, ) => { const { mounted, nested } = useDialogContext(); const modalContext = useModalContext(false); const rootElement = modalContext ? modalContext.modalRef.current : rootElementProp; if (!mounted) { return null; } return ( {withBackdrop && position !== "fullscreen" && !nested && ( )} ); }, ); export { DialogPopup }; export type { DialogPopupProps };