@yandex/ui
Version:
Yandex UI components
34 lines (33 loc) • 2.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MessageBox = exports.cnMessageBox = exports.Wrapper = exports.Corner = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var classname_1 = require("@bem-react/classname");
var MessageBox_Close_1 = require("./Close/MessageBox-Close");
var MessageBox_Buttons_1 = require("./Buttons/MessageBox-Buttons");
var MessageBox_Tail_1 = require("./Tail/MessageBox-Tail");
require("./MessageBox.css");
var MessageBox_Corner_1 = require("./Corner/MessageBox-Corner");
Object.defineProperty(exports, "Corner", { enumerable: true, get: function () { return MessageBox_Corner_1.MessageBoxCorner; } });
var MessageBox_TextWrap_1 = require("./TextWrap/MessageBox-TextWrap");
Object.defineProperty(exports, "Wrapper", { enumerable: true, get: function () { return MessageBox_TextWrap_1.MessageBoxTextWrap; } });
exports.cnMessageBox = classname_1.cn('MessageBox');
/**
* Визуальный компонент для уведомлений, плашек и других паттернов.
* @param {MessageBoxProps} props
*/
var MessageBox = function (_a) {
var actions = _a.actions, background = _a.background, children = _a.children, className = _a.className, corner = _a.corner, hasTail = _a.hasTail, innerRef = _a.innerRef, _b = _a.layout, layout = _b === void 0 ? 'plain' : _b, onClose = _a.onClose, opaque = _a.opaque, tailRef = _a.tailRef, _c = _a.tailType, tailType = _c === void 0 ? 'default' : _c;
return (react_1.default.createElement("div", { className: exports.cnMessageBox({ opaque: opaque, layout: layout, hasClose: Boolean(onClose) }, [className]), ref: innerRef },
react_1.default.createElement("div", { className: exports.cnMessageBox('Backdrop') },
hasTail && react_1.default.createElement(MessageBox_Tail_1.MessageBoxTail, { innerRef: tailRef, tailType: tailType }),
background && react_1.default.createElement("div", { className: exports.cnMessageBox('Background') }, background)),
react_1.default.createElement("div", { className: exports.cnMessageBox('Content') },
children,
onClose && react_1.default.createElement(MessageBox_Close_1.MessageBoxClose, { onClick: onClose })),
actions && react_1.default.createElement(MessageBox_Buttons_1.MessageBoxButtons, null, actions),
corner));
};
exports.MessageBox = MessageBox;
exports.MessageBox.displayName = 'MessageBox';