import React from 'react'; import { Avatar, Brand, Breadcrumb, BreadcrumbItem, Button, ButtonVariant, Content, Divider, Dropdown, DropdownItem, DropdownList, EmptyState, EmptyStateActions, EmptyStateBody, EmptyStateFooter, EmptyStateVariant, MenuToggle, Nav, NavItem, NavList, NotificationBadge, NotificationDrawer, NotificationDrawerBody, NotificationDrawerHeader, NotificationDrawerList, NotificationDrawerListItem, NotificationDrawerListItemBody, NotificationDrawerListItemHeader, Page, PageSection, PageSidebar, PageSidebarBody, SkipToContent, PageToggleButton, Masthead, MastheadMain, MastheadBrand, MastheadToggle, MastheadContent, MastheadLogo, Toolbar, ToolbarItem, ToolbarGroup, ToolbarContent } from '@patternfly/react-core'; import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon'; import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon'; import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon'; import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon'; import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon'; import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon'; import imgAvatar from '@patternfly/react-core/src/components/assets/avatarImg.svg'; import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon'; import pfLogo from '@patternfly/react-core/src/demos/assets/pf-logo.PF-HorizontalLogo-Color.svg'; export const NotificationDrawerBasic: React.FunctionComponent = () => { const drawerRef = React.useRef(null); const [isDropdownOpen, setIsDropdownOpen] = React.useState(false); const [isKebabDropdownOpen, setIsKebabDropdownOpen] = React.useState(false); const [isDrawerExpanded, setIsDrawerExpanded] = React.useState(false); interface UnreadMap { [notificationId: string]: boolean; } const [activeItem, setActiveItem] = React.useState(0); const [isUnreadMap, setIsUnreadMap] = React.useState({ 'notification-1': true, 'notification-2': true, 'notification-3': false, 'notification-4': false }); const [shouldShowNotifications, setShouldShowNotifications] = React.useState(true); interface ActionsMenu { [toggleId: string]: boolean; } const [isActionsMenuOpen, setIsActionsMenuOpen] = React.useState({}); const onNavSelect = ( _event: React.FormEvent, selectedItem: { groupId: number | string; itemId: number | string; to: string; } ) => setActiveItem(selectedItem.itemId); const onDropdownToggle = () => setIsDropdownOpen((prevState) => !prevState); const onDropdownSelect = () => setIsDropdownOpen(false); const onKebabDropdownToggle = () => setIsKebabDropdownOpen((prevState) => !prevState); const onKebabDropdownSelect = () => setIsKebabDropdownOpen(false); const onCloseNotificationDrawer = (_event: any) => setIsDrawerExpanded((prevState) => !prevState); const onToggle = (id: string) => { setIsActionsMenuOpen({ [id]: !isActionsMenuOpen[id] }); }; const closeActionsMenu = () => setIsActionsMenuOpen({}); const onListItemClick = (id: string) => { if (!isUnreadMap) { return; } setIsUnreadMap({ ...isUnreadMap, [id]: false }); }; const getNumberUnread: () => number = () => { if (!isUnreadMap) { return 0; } return Object.values(isUnreadMap).reduce((count, value) => count + (value ? 1 : 0), 0); }; const markAllRead = () => setIsUnreadMap(null); const showNotifications = (showNotifications: boolean) => { setIsUnreadMap(null); setShouldShowNotifications(showNotifications); }; const focusDrawer = (_event: any) => { if (drawerRef.current === null) { return; } const firstTabbableItem = drawerRef.current.querySelector('a, button') as | HTMLAnchorElement | HTMLButtonElement | null; firstTabbableItem?.focus(); }; const PageNav = ( ); const kebabDropdownItems = ( <> Settings Help ); const userDropdownItems = ( <> My profile User management Logout ); const headerToolbar = ( onCloseNotificationDrawer(event)} aria-label="Notifications" isExpanded={isDrawerExpanded} > )} ); return ( | KeyboardEvent | React.TransitionEvent ) => focusDrawer(event)} isNotificationDrawerExpanded={isDrawerExpanded} skipToContent={PageSkipToContent} breadcrumb={PageBreadcrumb} mainContainerId={pageId} >

Main title

Body text should be Red Hat Text at 1rem(16px). It should have leading of 1.5rem(24px) because
of its relative line height of 1.5.

Panel section content
); };