import { FC, useMemo } from "react"; import { createPortal } from "react-dom"; import { Dialog, DialogProps, H5 } from "@blueprintjs/core"; import { useExtensionContext } from "Components/App"; import { CustomClasses } from "../../constants"; import "./_index.sass"; type OwnProps = { ariaLabelledBy?: string, className: string, extraClasses?: string[], label?: string }; const AuxiliaryDialog: FC> = (props) => { const { ariaLabelledBy = null, className: dialogClass, extraClasses = [], isOpen, label = null, onClose, title = null } = props; const { portalId } = useExtensionContext(); const dialog_class = useMemo(() => [CustomClasses.PREFIX_DIALOG_AUXILIARY + dialogClass, ...extraClasses].join(" "), [dialogClass, extraClasses]); const dialog_label = useMemo(() => { if(!ariaLabelledBy && label){ return { element:
{label}
, id: dialogClass + "-label" }; } else { return { element: null, id: null }; } }, [ariaLabelledBy, dialogClass, label]); return ( createPortal( {dialog_label.element} {props.children} , document.getElementById(portalId)!) ); }; export default AuxiliaryDialog;