UNPKG

@pinuts/bsr-uikit-relaunch

Version:

BSR UI-KIT Relaunch

109 lines (108 loc) 4.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _formBuilder = require("@pinuts/form-builder"); var _Modal = _interopRequireDefault(require("react-bootstrap/Modal")); var _reactI18next = require("react-i18next"); var _Button = _interopRequireDefault(require("../Button/Button.jsx")); var _ModalModule = _interopRequireDefault(require("./Modal.module.scss")); var _Icon = _interopRequireDefault(require("../Icon/Icon.jsx")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } const { getClassNames } = _formBuilder.utils; const { useUniqueIds } = _formBuilder.hooks; const Modal = (_ref, props) => { let { isOpen, isAlert = false, onHide, onSubmit, submitButtonText, closeButtonText, headerProps, bodyProps, footerProps, noClose = false } = _ref; const { t } = (0, _reactI18next.useTranslation)(); const uniqueId = useUniqueIds('modal'); return /*#__PURE__*/_react.default.createElement(_Modal.default, _extends({}, props, { show: isOpen, size: "lg" }, headerProps.title && { 'aria-labelledby': uniqueId.fieldId }, { centered: true, onEscapeKeyDown: noClose ? undefined : onHide, className: _ModalModule.default.modalOuter, backdrop: "static", role: isAlert ? ' ' : 'dialog' }), /*#__PURE__*/_react.default.createElement("div", null, headerProps.title && /*#__PURE__*/_react.default.createElement(_Modal.default.Header, { className: getClassNames([headerProps.className, noClose ? '' : 'd-flex ', 'p-relative w-100']) }, /*#__PURE__*/_react.default.createElement("div", { className: _ModalModule.default.headerInnerWrap }, /*#__PURE__*/_react.default.createElement("h2", { id: uniqueId.fieldId, className: "w-100" }, headerProps.title), !noClose && /*#__PURE__*/_react.default.createElement(_Button.default, { ariaLabel: t('bsrModal.closeButton'), onClick: onHide, color: "white", rounded: true }, /*#__PURE__*/_react.default.createElement(_Icon.default, { color: "white", className: _ModalModule.default.closeButtonIcon, icon: "x" }))))), /*#__PURE__*/_react.default.createElement(_Modal.default.Body, { className: getClassNames([bodyProps.className]) }, bodyProps.children), footerProps && /*#__PURE__*/_react.default.createElement(_Modal.default.Footer, { className: getClassNames([footerProps.className]) }, footerProps.children ? /*#__PURE__*/_react.default.createElement("div", { className: "row justify-content-center w-100" }, footerProps.children) : /*#__PURE__*/_react.default.createElement("div", { className: "row justify-content-center w-100" }, closeButtonText && /*#__PURE__*/_react.default.createElement(_Button.default, { className: "col-4 m-1", color: "tuerkis-20", onClick: onHide, ariaLabel: t(closeButtonText) }, t(closeButtonText)), submitButtonText && /*#__PURE__*/_react.default.createElement(_Button.default, { className: "col-4 m-1", color: "blau", onClick: onSubmit || onHide, ariaLabel: t(submitButtonText) }, t(submitButtonText))))); }; Modal.propTypes = { noClose: _propTypes.default.bool, closeButtonText: _propTypes.default.string, submitButtonText: _propTypes.default.string, headerProps: _propTypes.default.shape({ title: _propTypes.default.string.isRequired, children: _propTypes.default.node, className: _propTypes.default.string }), bodyProps: _propTypes.default.shape({ children: _propTypes.default.node, className: _propTypes.default.string }), footerProps: _propTypes.default.shape({ children: _propTypes.default.node, className: _propTypes.default.string }), isAlert: _propTypes.default.bool, isOpen: _propTypes.default.bool, onHide: _propTypes.default.func, onSubmit: _propTypes.default.func }; var _default = exports.default = Modal;