UNPKG

@teamsparta/stack-custom-modal

Version:
63 lines (60 loc) 1.66 kB
import { CustomModalProvider } from "./chunk-VHPHVMAP.mjs"; import { __objRest, __spreadProps, __spreadValues } from "./chunk-FUJQIYOF.mjs"; // src/compounds/CustomModalRoot.tsx import * as Dialog from "@radix-ui/react-dialog"; import { useThemeContext } from "@teamsparta/stack-core"; import { useControllableState } from "@teamsparta/stack-utils"; import { useState } from "react"; import { jsx } from "@emotion/react/jsx-runtime"; var CustomModalRoot = (_a) => { var _b = _a, { children, open: openFromProps, onOpenChange: onOpenChangeFromProps, defaultOpen: defaultOpenFromProps, closeOnInteractOutside = true, size = "md", theme: themeFromProps, hideCloseButton = false } = _b, restProps = __objRest(_b, [ "children", "open", "onOpenChange", "defaultOpen", "closeOnInteractOutside", "size", "theme", "hideCloseButton" ]); const [hasScroll, setHasScroll] = useState(false); const [open = false, onOpenChange] = useControllableState({ prop: openFromProps, defaultProp: defaultOpenFromProps, onChange: onOpenChangeFromProps }); const { theme: themeFromContext } = useThemeContext("CustomModal"); const theme = themeFromProps != null ? themeFromProps : themeFromContext; return /* @__PURE__ */ jsx( CustomModalProvider, { open, onOpenChange, closeOnInteractOutside, size, theme, hasScroll, setHasScroll, hideCloseButton, children: /* @__PURE__ */ jsx(Dialog.Root, __spreadProps(__spreadValues({ open, onOpenChange }, restProps), { children })) } ); }; export { CustomModalRoot };