import { Children } from 'react';
import Icon from '../Icon';
import ScreenReaderText from '../ScreenReaderText';
import { AbstractNotificationBannerProps, AbstractNotificationBannerButtonsProps } from './types';
import clsx from 'clsx';
const Buttons = ({
children
}: AbstractNotificationBannerButtonsProps) => {
return (
{children}
);
};
const AbstractNotificationBanner = ({
children,
className,
hasColourIcon,
hasInverseIcon,
icon,
isDismissable,
isHidden,
title = 'Information',
...props
}: AbstractNotificationBannerProps) => {
const content: React.ReactElement[] = [];
let buttons;
Children.forEach(children, (child) => {
const thisChild = child as React.ReactElement;
if (thisChild && thisChild.type === Buttons) {
buttons = thisChild;
} else {
content.push(thisChild);
}
});
return (
{title}
{icon &&
}
{content}
{isDismissable &&
}
{buttons}
);
};
AbstractNotificationBanner.displayName = 'AbstractNotificationBanner';
AbstractNotificationBanner.Buttons = Buttons;
Buttons.displayName = 'Buttons';
export default AbstractNotificationBanner;