UNPKG

@patternfly/react-core

Version:

This library provides a set of common React components for use with the PatternFly reference implementation.

50 lines 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AlertGroup = void 0; const tslib_1 = require("tslib"); const React = tslib_1.__importStar(require("react")); const ReactDOM = tslib_1.__importStar(require("react-dom")); const helpers_1 = require("../../helpers"); const AlertGroupInline_1 = require("./AlertGroupInline"); class AlertGroup extends React.Component { constructor() { super(...arguments); this.state = { container: undefined }; } componentDidMount() { const container = document.createElement('div'); const target = this.getTargetElement(); this.setState({ container }); target.appendChild(container); } componentWillUnmount() { const target = this.getTargetElement(); if (this.state.container) { target.removeChild(this.state.container); } } getTargetElement() { const appendTo = this.props.appendTo; if (typeof appendTo === 'function') { return appendTo(); } return appendTo || document.body; } render() { const _a = this.props, { className, children, isToast, isLiveRegion, onOverflowClick, overflowMessage } = _a, props = tslib_1.__rest(_a, ["className", "children", "isToast", "isLiveRegion", "onOverflowClick", "overflowMessage"]); const alertGroup = (React.createElement(AlertGroupInline_1.AlertGroupInline, Object.assign({ onOverflowClick: onOverflowClick, className: className, isToast: isToast, isLiveRegion: isLiveRegion, overflowMessage: overflowMessage }, props), children)); if (!this.props.isToast) { return alertGroup; } const container = this.state.container; if (!helpers_1.canUseDOM || !container) { return null; } return ReactDOM.createPortal(alertGroup, container); } } exports.AlertGroup = AlertGroup; AlertGroup.displayName = 'AlertGroup'; //# sourceMappingURL=AlertGroup.js.map