@naturacosmeticos/natds-react
Version:
A collection of components from Natura Design System for React
37 lines • 2.33 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = __importDefault(require("react"));
var Dialog_styles_1 = __importDefault(require("./Dialog.styles"));
var useWindowSize_1 = require("../../hooks/useWindowSize");
var Portal_1 = require("../Portal");
var Dialog = react_1.default.forwardRef(function (_a, ref) {
var ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, children = _a.children, accessibility = _a.accessibility, _b = _a.className, className = _b === void 0 ? '' : _b, container = _a.container, onEscapeKeyDown = _a.onEscapeKeyDown, role = _a.role, _c = _a.open, open = _c === void 0 ? false : _c, _d = _a.size, size = _d === void 0 ? 'medium' : _d, testID = _a.testID;
var width = (0, useWindowSize_1.useWindowSize)().width;
var _e = (0, Dialog_styles_1.default)({ open: open, size: size, width: width }), dialog = _e.dialog, overlay = _e.overlay;
var handleOnKeyDown = function (e) {
document.addEventListener('keydown', function (event) {
if (onEscapeKeyDown && event.key && event.key === 'Escape') {
onEscapeKeyDown(e);
}
});
};
return (react_1.default.createElement(react_1.default.Fragment, null, open && (react_1.default.createElement(Portal_1.Portal, { container: container },
react_1.default.createElement("div", __assign({}, accessibility, { "aria-describedby": ariaDescribedBy, "aria-labelledby": ariaLabelledBy, "aria-modal": true, className: "".concat(className, " ").concat(dialog, " Dialog-gaya"), "data-testid": testID, onKeyDown: handleOnKeyDown, role: role, tabIndex: 0, ref: ref }), children),
react_1.default.createElement("div", { className: overlay })))));
});
exports.default = Dialog;
//# sourceMappingURL=Dialog.js.map