in src/banner/banner.tsx [32:90]
export function Banner(props: BannerProps) {
const {
title,
children,
mode = 'info',
withIcon = false,
inline = false,
onClose,
closeButtonTitle,
className,
translations = {
close: 'Close',
},
} = props;
const dataTest = props['data-test'];
let icon = infoIcon;
if (mode === 'error') {
icon = exceptionIcon;
} else if (mode === 'success') {
icon = successIcon;
} else if (mode === 'warning') {
icon = warningIcon;
}
return (
<div
className={classnames(
{
[styles.banner]: true,
[styles.inline]: inline,
[styles.info]: mode === 'info',
[styles.error]: mode === 'error',
[styles.success]: mode === 'success',
[styles.warning]: mode === 'warning',
[styles.purple]: mode === 'purple',
[styles.grey]: mode === 'grey',
},
className,
)}
data-test={dataTest}
>
{withIcon && <Icon glyph={icon} className={styles.icon} />}
<div>
{title && <div className={styles.title}>{title}</div>}
<div className={styles.description}>{children}</div>
</div>
{onClose && (
<Tooltip title={closeButtonTitle ?? translations.close} className={styles.closeButtonWrapper}>
<Link className={styles.closeButton} pseudo onClick={onClose} aria-label='Close'>
<Icon glyph={closeIcon} />
</Link>
</Tooltip>
)}
</div>
);
}