@engie-group/fluid-design-system-react
Version:
Fluid Design System React
23 lines (20 loc) • 1.49 kB
JavaScript
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 };