@ozen-ui/kit
Version:
React component library
54 lines (53 loc) • 3.84 kB
JavaScript
"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';