UNPKG

@ozen-ui/kit

Version:

React component library

54 lines (53 loc) 3.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Dialog = exports.cnDialog = void 0; var tslib_1 = require("tslib"); require("./Dialog.css"); require("./components/DialogModal/DialogModal.css"); require("./components/DialogBottomSheet/DialogBottomSheet.css"); require("./modules/DialogBody/DialogBody.css"); require("./modules/DialogFooter/DialogFooter.css"); require("./modules/DialogFooterButtonsGroup/DialogFooterButtonsGroup.css"); require("./modules/DialogHeader/DialogHeader.css"); require("./modules/DialogSubtitle/DialogSubtitle.css"); require("./modules/DialogTitle/DialogTitle.css"); var react_1 = tslib_1.__importStar(require("react")); var useThemeProps_1 = require("../../hooks/useThemeProps"); var classname_1 = require("../../utils/classname"); var renderContent_1 = require("../../utils/renderContent"); var BottomSheetBase_1 = require("../BottomSheetBase"); var components_1 = require("./components"); var constants_1 = require("./constants"); var DialogContext_1 = require("./DialogContext"); var modules_1 = require("./modules"); exports.cnDialog = (0, classname_1.cn)('DialogNext'); exports.Dialog = (0, react_1.forwardRef)(function (inProps, ref) { var props = (0, useThemeProps_1.useThemeProps)({ props: inProps, name: 'DialogNext', }); var children = props.children, _a = props.variant, variant = _a === void 0 ? constants_1.DIALOG_DEFAULT_VARIANT : _a, _b = props.size, size = _b === void 0 ? constants_1.DIALOG_DEFAULT_SIZE : _b, _c = props.deviceType, deviceType = _c === void 0 ? constants_1.DIALOG_DEFAULT_DEVICE_TYPE : _c, _d = props.renderCloseButton, renderCloseButton = _d === void 0 ? react_1.default.createElement(modules_1.DialogCloseButton, null) : _d, open = props.open, _e = props.onClose, onClose = _e === void 0 ? function () { } : _e, classNameProp = props.className, _f = props.hideCloseButton, hideCloseButton = _f === void 0 ? constants_1.DIALOG_DEFAULT_HIDE_CLOSE_BUTTON : _f, modalProps = props.modalProps, bottomSheetProps = props.bottomSheetProps, backdropProps = props.backdropProps, other = tslib_1.__rest(props, ["children", "variant", "size", "deviceType", "renderCloseButton", "open", "onClose", "className", "hideCloseButton", "modalProps", "bottomSheetProps", "backdropProps"]); var viewType = deviceType === 'mobile' && constants_1.DIALOG_MOBILE_BOTTOM_SHEET_VIEW_VARIANTS.includes(variant) ? 'bottomSheet' : 'modal'; var isBottomSheet = viewType === 'bottomSheet'; var closeButton = (0, renderContent_1.renderContent)({ content: renderCloseButton, props: {}, }); var className = (0, exports.cnDialog)({ deviceType: deviceType, size: size, viewType: viewType, }, [classNameProp]); return (react_1.default.createElement(DialogContext_1.DialogContext.Provider, { value: { onClose: onClose, variant: variant, size: size, deviceType: deviceType, viewType: viewType, isBottomSheet: isBottomSheet, } }, isBottomSheet ? (react_1.default.createElement(components_1.DialogBottomSheet, tslib_1.__assign({ ref: ref, open: open, size: size, variant: variant, closeButton: closeButton, onClose: onClose, hideCloseButton: hideCloseButton, className: className, backdrop: react_1.default.createElement(BottomSheetBase_1.BottomSheetBaseBackdrop, tslib_1.__assign({}, backdropProps)) }, bottomSheetProps, other), children)) : (react_1.default.createElement(components_1.DialogModal, tslib_1.__assign({ ref: ref, open: open, onClose: onClose, hideCloseButton: hideCloseButton, className: className, closeButton: closeButton, size: size, variant: variant, backdropProps: backdropProps }, modalProps, other), children)))); }); exports.Dialog.displayName = 'Dialog';