package.src.components.NotificationBadge.NotificationBadge.tsx Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of react-core Show documentation
Show all versions of react-core Show documentation
This library provides a set of common React components for use with the PatternFly reference implementation.
The newest version!
import * as React from 'react';
import { Button, ButtonVariant, ButtonProps } from '../Button';
import { css } from '@patternfly/react-styles';
import styles from '@patternfly/react-styles/css/components/NotificationBadge/notification-badge';
import AttentionBellIcon from '@patternfly/react-icons/dist/esm/icons/attention-bell-icon';
import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
export enum NotificationBadgeVariant {
read = 'read',
unread = 'unread',
attention = 'attention'
}
export interface NotificationBadgeProps extends Omit {
/** Adds an accessible label to the notification badge. */
'aria-label'?: string;
/** Icon to display for attention variant. */
attentionIcon?: React.ReactNode;
/** Content rendered inside the notification badge. */
children?: React.ReactNode;
/** Additional classes added to the notification badge. */
className?: string;
/** A number displayed in the badge alongside the icon. */
count?: number;
/** Icon to display in the notification badge. */
icon?: React.ReactNode;
/** Flag for applying expanded styling and setting the aria-expanded attribute on the
* notification badge.
*/
isExpanded?: boolean;
/** Determines the variant of the notification badge. */
variant?: NotificationBadgeVariant | 'read' | 'unread' | 'attention';
}
export const NotificationBadge: React.FunctionComponent = ({
children,
variant = NotificationBadgeVariant.read,
count = 0,
attentionIcon = ,
icon = ,
className,
isExpanded = false,
...props
}: NotificationBadgeProps) => {
let notificationChild = icon;
if (children !== undefined) {
notificationChild = children;
} else if (variant === NotificationBadgeVariant.attention) {
notificationChild = attentionIcon;
}
return (
);
};
NotificationBadge.displayName = 'NotificationBadge';