UNPKG

@massds/mayflower-react

Version:

React versions of Mayflower design system UI components

47 lines 2.15 kB
/** * CalloutAlert module. * @module @massds/mayflower-react/CalloutAlert * @requires module:@massds/mayflower-assets/scss/03-organisms/callout-alert */ import React from "react"; import PropTypes from "prop-types"; import classNames from "classnames"; // eslint-disable-next-line import/no-unresolved import * as Icon from "../Icon/index.mjs"; const CalloutAlert = props => { var _classNames, _props$icon, _props$icon2; const calloutAlertClasses = classNames((_classNames = { 'ma__callout-alert': true }, _classNames["ma__callout-alert--" + props.theme] = props.theme, _classNames)); const calloutAlertContentClasses = classNames({ 'ma__callout-alert__content': true, 'ma__callout-alert__content--no-icon': !(props.icon && props.icon.name) }); const IconComponent = props !== null && props !== void 0 && (_props$icon = props.icon) !== null && _props$icon !== void 0 && _props$icon.name ? Icon[props.icon.name] : null; return /*#__PURE__*/React.createElement("div", { className: calloutAlertClasses }, /*#__PURE__*/React.createElement("div", { className: calloutAlertContentClasses }, (props === null || props === void 0 ? void 0 : (_props$icon2 = props.icon) === null || _props$icon2 === void 0 ? void 0 : _props$icon2.name) && /*#__PURE__*/React.createElement("div", { className: "ma__callout-alert__icon" }, /*#__PURE__*/React.createElement(IconComponent, props.icon)), props.children)); }; CalloutAlert.propTypes = process.env.NODE_ENV !== "production" ? { icon: PropTypes.shape({ name: PropTypes.string, title: PropTypes.string, width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), className: PropTypes.string, fill: PropTypes.string }), /** Themes correspond to site color scheme i.e. sass variables */ theme: PropTypes.oneOf(['', 'c-primary', 'c-primary-alt', 'c-highlight', 'c-gray-dark', 'c-error-red']), children: PropTypes.oneOfType([PropTypes.element, PropTypes.array]) } : {}; CalloutAlert.defaultProps = { icon: { name: 'IconAlert' } }; export default CalloutAlert;