UNPKG

@engie-group/fluid-design-system-react

Version:

Fluid Design System React

23 lines (20 loc) 1.49 kB
import { jsxs, jsx } from 'react/jsx-runtime'; import React__default from 'react'; import { Utils } from '../../utils/util.js'; import { NJIconButton } from '../icon-button/NJIconButton.js'; import { NJStatusIndicator } from '../status-indicator/NJStatusIndicator.js'; const rootClass = 'nj-inline-message'; const NJInlineMessage = React__default.forwardRef(({ hasStatus = true, onClose, scale, ariaLabelClose = 'close', children, action, variant, actionPosition, ...htmlProps }, ref) => { const close = (e) => { if (typeof onClose === 'function') onClose(e); }; const inlineMessageClass = Utils.classNames(rootClass, { [`${rootClass}--${variant}`]: variant, [`${rootClass}--${scale}`]: scale, [`${rootClass}--action-position-${actionPosition}`]: actionPosition }, htmlProps.className); return (jsxs("div", { ...htmlProps, className: inlineMessageClass, ref: ref, children: [hasStatus && jsx(NJStatusIndicator, { className: `${rootClass}__status` }), jsxs("div", { className: `${rootClass}__content`, children: [children && jsx("div", { className: `${rootClass}__body`, children: children }), variant !== 'fatal-error' && action && (jsx("div", { className: `${rootClass}__action`, children: action }))] }), onClose && (jsx(NJIconButton, { "aria-label": ariaLabelClose, onClick: close, className: `${rootClass}__close`, icon: "close" }))] })); }); NJInlineMessage.displayName = 'NJInlineMessage'; export { NJInlineMessage };