@patternfly/react-core 5.0.0-alpha.87 → 5.0.0-alpha.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/esm/components/AboutModal/package.json +1 -1
- package/dist/esm/components/Accordion/package.json +1 -1
- package/dist/esm/components/ActionList/package.json +1 -1
- package/dist/esm/components/Alert/package.json +1 -1
- package/dist/esm/components/Avatar/package.json +1 -1
- package/dist/esm/components/BackToTop/package.json +1 -1
- package/dist/esm/components/Backdrop/package.json +1 -1
- package/dist/esm/components/BackgroundImage/package.json +1 -1
- package/dist/esm/components/Badge/package.json +1 -1
- package/dist/esm/components/Banner/package.json +1 -1
- package/dist/esm/components/Brand/package.json +1 -1
- package/dist/esm/components/Breadcrumb/package.json +1 -1
- package/dist/esm/components/Button/package.json +1 -1
- package/dist/esm/components/CalendarMonth/package.json +1 -1
- package/dist/esm/components/Card/package.json +1 -1
- package/dist/esm/components/Checkbox/package.json +1 -1
- package/dist/esm/components/Chip/package.json +1 -1
- package/dist/esm/components/ClipboardCopy/package.json +1 -1
- package/dist/esm/components/CodeBlock/package.json +1 -1
- package/dist/esm/components/DataList/package.json +1 -1
- package/dist/esm/components/DatePicker/package.json +1 -1
- package/dist/esm/components/DescriptionList/package.json +1 -1
- package/dist/esm/components/Divider/package.json +1 -1
- package/dist/esm/components/DragDrop/package.json +1 -1
- package/dist/esm/components/Drawer/package.json +1 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js +2 -4
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/Dropdown/package.json +1 -1
- package/dist/esm/components/DualListSelector/package.json +1 -1
- package/dist/esm/components/EmptyState/package.json +1 -1
- package/dist/esm/components/ExpandableSection/package.json +1 -1
- package/dist/esm/components/FileUpload/package.json +1 -1
- package/dist/esm/components/Form/package.json +1 -1
- package/dist/esm/components/FormSelect/package.json +1 -1
- package/dist/esm/components/HelperText/package.json +1 -1
- package/dist/esm/components/Hint/package.json +1 -1
- package/dist/esm/components/Icon/package.json +1 -1
- package/dist/esm/components/InputGroup/package.json +1 -1
- package/dist/esm/components/JumpLinks/package.json +1 -1
- package/dist/esm/components/Label/package.json +1 -1
- package/dist/esm/components/LabelGroup/package.json +1 -1
- package/dist/esm/components/List/package.json +1 -1
- package/dist/esm/components/LoginPage/package.json +1 -1
- package/dist/esm/components/Masthead/package.json +1 -1
- package/dist/esm/components/Menu/package.json +1 -1
- package/dist/esm/components/MenuToggle/MenuToggle.d.ts +3 -1
- package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
- package/dist/esm/components/MenuToggle/MenuToggle.js +1 -3
- package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
- package/dist/esm/components/MenuToggle/package.json +1 -1
- package/dist/esm/components/Modal/package.json +1 -1
- package/dist/esm/components/MultipleFileUpload/package.json +1 -1
- package/dist/esm/components/Nav/Nav.d.ts +4 -6
- package/dist/esm/components/Nav/Nav.d.ts.map +1 -1
- package/dist/esm/components/Nav/Nav.js +3 -4
- package/dist/esm/components/Nav/Nav.js.map +1 -1
- package/dist/esm/components/Nav/NavItem.js +1 -1
- package/dist/esm/components/Nav/NavItem.js.map +1 -1
- package/dist/esm/components/Nav/package.json +1 -1
- package/dist/esm/components/NotificationBadge/package.json +1 -1
- package/dist/esm/components/NotificationDrawer/package.json +1 -1
- package/dist/esm/components/NumberInput/package.json +1 -1
- package/dist/esm/components/OverflowMenu/package.json +1 -1
- package/dist/esm/components/Page/package.json +1 -1
- package/dist/esm/components/Pagination/package.json +1 -1
- package/dist/esm/components/Panel/package.json +1 -1
- package/dist/esm/components/Popover/package.json +1 -1
- package/dist/esm/components/Progress/package.json +1 -1
- package/dist/esm/components/ProgressStepper/package.json +1 -1
- package/dist/esm/components/Radio/package.json +1 -1
- package/dist/esm/components/SearchInput/package.json +1 -1
- package/dist/esm/components/Select/package.json +1 -1
- package/dist/esm/components/Sidebar/package.json +1 -1
- package/dist/esm/components/SimpleList/package.json +1 -1
- package/dist/esm/components/Skeleton/package.json +1 -1
- package/dist/esm/components/SkipToContent/package.json +1 -1
- package/dist/esm/components/Slider/package.json +1 -1
- package/dist/esm/components/Spinner/package.json +1 -1
- package/dist/esm/components/Switch/package.json +1 -1
- package/dist/esm/components/Tabs/package.json +1 -1
- package/dist/esm/components/Text/package.json +1 -1
- package/dist/esm/components/TextArea/package.json +1 -1
- package/dist/esm/components/TextInput/package.json +1 -1
- package/dist/esm/components/TextInputGroup/package.json +1 -1
- package/dist/esm/components/Tile/package.json +1 -1
- package/dist/esm/components/TimePicker/package.json +1 -1
- package/dist/esm/components/Timestamp/package.json +1 -1
- package/dist/esm/components/Title/package.json +1 -1
- package/dist/esm/components/ToggleGroup/package.json +1 -1
- package/dist/esm/components/Toolbar/package.json +1 -1
- package/dist/esm/components/Tooltip/package.json +1 -1
- package/dist/esm/components/TreeView/package.json +1 -1
- package/dist/esm/components/Truncate/package.json +1 -1
- package/dist/esm/components/Wizard/hooks/package.json +1 -1
- package/dist/esm/components/Wizard/package.json +1 -1
- package/dist/esm/components/package.json +1 -1
- package/dist/esm/deprecated/components/ApplicationLauncher/package.json +1 -1
- package/dist/esm/deprecated/components/ContextSelector/package.json +1 -1
- package/dist/esm/deprecated/components/Dropdown/package.json +1 -1
- package/dist/esm/deprecated/components/OptionsMenu/package.json +1 -1
- package/dist/esm/deprecated/components/PageHeader/package.json +1 -1
- package/dist/esm/deprecated/components/Select/package.json +1 -1
- package/dist/esm/deprecated/components/Wizard/package.json +1 -1
- package/dist/esm/deprecated/components/package.json +1 -1
- package/dist/esm/deprecated/package.json +1 -1
- package/dist/esm/helpers/Popper/thirdparty/popper-core/package.json +1 -1
- package/dist/esm/helpers/package.json +1 -1
- package/dist/esm/layouts/Bullseye/package.json +1 -1
- package/dist/esm/layouts/Flex/package.json +1 -1
- package/dist/esm/layouts/Gallery/package.json +1 -1
- package/dist/esm/layouts/Grid/package.json +1 -1
- package/dist/esm/layouts/Level/package.json +1 -1
- package/dist/esm/layouts/Split/package.json +1 -1
- package/dist/esm/layouts/Stack/package.json +1 -1
- package/dist/esm/layouts/package.json +1 -1
- package/dist/esm/next/components/package.json +1 -1
- package/dist/esm/next/package.json +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/js/components/AboutModal/package.json +1 -1
- package/dist/js/components/Accordion/package.json +1 -1
- package/dist/js/components/ActionList/package.json +1 -1
- package/dist/js/components/Alert/package.json +1 -1
- package/dist/js/components/Avatar/package.json +1 -1
- package/dist/js/components/BackToTop/package.json +1 -1
- package/dist/js/components/Backdrop/package.json +1 -1
- package/dist/js/components/BackgroundImage/package.json +1 -1
- package/dist/js/components/Badge/package.json +1 -1
- package/dist/js/components/Banner/package.json +1 -1
- package/dist/js/components/Brand/package.json +1 -1
- package/dist/js/components/Breadcrumb/package.json +1 -1
- package/dist/js/components/Button/package.json +1 -1
- package/dist/js/components/CalendarMonth/package.json +1 -1
- package/dist/js/components/Card/package.json +1 -1
- package/dist/js/components/Checkbox/package.json +1 -1
- package/dist/js/components/Chip/package.json +1 -1
- package/dist/js/components/ClipboardCopy/package.json +1 -1
- package/dist/js/components/CodeBlock/package.json +1 -1
- package/dist/js/components/DataList/package.json +1 -1
- package/dist/js/components/DatePicker/package.json +1 -1
- package/dist/js/components/DescriptionList/package.json +1 -1
- package/dist/js/components/Divider/package.json +1 -1
- package/dist/js/components/DragDrop/package.json +1 -1
- package/dist/js/components/Drawer/package.json +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.js +2 -4
- package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/components/Dropdown/package.json +1 -1
- package/dist/js/components/DualListSelector/package.json +1 -1
- package/dist/js/components/EmptyState/package.json +1 -1
- package/dist/js/components/ExpandableSection/package.json +1 -1
- package/dist/js/components/FileUpload/package.json +1 -1
- package/dist/js/components/Form/package.json +1 -1
- package/dist/js/components/FormSelect/package.json +1 -1
- package/dist/js/components/HelperText/package.json +1 -1
- package/dist/js/components/Hint/package.json +1 -1
- package/dist/js/components/Icon/package.json +1 -1
- package/dist/js/components/InputGroup/package.json +1 -1
- package/dist/js/components/JumpLinks/package.json +1 -1
- package/dist/js/components/Label/package.json +1 -1
- package/dist/js/components/LabelGroup/package.json +1 -1
- package/dist/js/components/List/package.json +1 -1
- package/dist/js/components/LoginPage/package.json +1 -1
- package/dist/js/components/Masthead/package.json +1 -1
- package/dist/js/components/Menu/package.json +1 -1
- package/dist/js/components/MenuToggle/MenuToggle.d.ts +3 -1
- package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
- package/dist/js/components/MenuToggle/MenuToggle.js +1 -3
- package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
- package/dist/js/components/MenuToggle/package.json +1 -1
- package/dist/js/components/Modal/package.json +1 -1
- package/dist/js/components/MultipleFileUpload/package.json +1 -1
- package/dist/js/components/Nav/Nav.d.ts +4 -6
- package/dist/js/components/Nav/Nav.d.ts.map +1 -1
- package/dist/js/components/Nav/Nav.js +3 -4
- package/dist/js/components/Nav/Nav.js.map +1 -1
- package/dist/js/components/Nav/NavItem.js +1 -1
- package/dist/js/components/Nav/NavItem.js.map +1 -1
- package/dist/js/components/Nav/package.json +1 -1
- package/dist/js/components/NotificationBadge/package.json +1 -1
- package/dist/js/components/NotificationDrawer/package.json +1 -1
- package/dist/js/components/NumberInput/package.json +1 -1
- package/dist/js/components/OverflowMenu/package.json +1 -1
- package/dist/js/components/Page/package.json +1 -1
- package/dist/js/components/Pagination/package.json +1 -1
- package/dist/js/components/Panel/package.json +1 -1
- package/dist/js/components/Popover/package.json +1 -1
- package/dist/js/components/Progress/package.json +1 -1
- package/dist/js/components/ProgressStepper/package.json +1 -1
- package/dist/js/components/Radio/package.json +1 -1
- package/dist/js/components/SearchInput/package.json +1 -1
- package/dist/js/components/Select/package.json +1 -1
- package/dist/js/components/Sidebar/package.json +1 -1
- package/dist/js/components/SimpleList/package.json +1 -1
- package/dist/js/components/Skeleton/package.json +1 -1
- package/dist/js/components/SkipToContent/package.json +1 -1
- package/dist/js/components/Slider/package.json +1 -1
- package/dist/js/components/Spinner/package.json +1 -1
- package/dist/js/components/Switch/package.json +1 -1
- package/dist/js/components/Tabs/package.json +1 -1
- package/dist/js/components/Text/package.json +1 -1
- package/dist/js/components/TextArea/package.json +1 -1
- package/dist/js/components/TextInput/package.json +1 -1
- package/dist/js/components/TextInputGroup/package.json +1 -1
- package/dist/js/components/Tile/package.json +1 -1
- package/dist/js/components/TimePicker/package.json +1 -1
- package/dist/js/components/Timestamp/package.json +1 -1
- package/dist/js/components/Title/package.json +1 -1
- package/dist/js/components/ToggleGroup/package.json +1 -1
- package/dist/js/components/Toolbar/package.json +1 -1
- package/dist/js/components/Tooltip/package.json +1 -1
- package/dist/js/components/TreeView/package.json +1 -1
- package/dist/js/components/Truncate/package.json +1 -1
- package/dist/js/components/Wizard/hooks/package.json +1 -1
- package/dist/js/components/Wizard/package.json +1 -1
- package/dist/js/components/package.json +1 -1
- package/dist/js/deprecated/components/ApplicationLauncher/package.json +1 -1
- package/dist/js/deprecated/components/ContextSelector/package.json +1 -1
- package/dist/js/deprecated/components/Dropdown/package.json +1 -1
- package/dist/js/deprecated/components/OptionsMenu/package.json +1 -1
- package/dist/js/deprecated/components/PageHeader/package.json +1 -1
- package/dist/js/deprecated/components/Select/package.json +1 -1
- package/dist/js/deprecated/components/Wizard/package.json +1 -1
- package/dist/js/deprecated/components/package.json +1 -1
- package/dist/js/deprecated/package.json +1 -1
- package/dist/js/helpers/Popper/thirdparty/popper-core/package.json +1 -1
- package/dist/js/helpers/package.json +1 -1
- package/dist/js/layouts/Bullseye/package.json +1 -1
- package/dist/js/layouts/Flex/package.json +1 -1
- package/dist/js/layouts/Gallery/package.json +1 -1
- package/dist/js/layouts/Grid/package.json +1 -1
- package/dist/js/layouts/Level/package.json +1 -1
- package/dist/js/layouts/Split/package.json +1 -1
- package/dist/js/layouts/Stack/package.json +1 -1
- package/dist/js/layouts/package.json +1 -1
- package/dist/js/next/components/package.json +1 -1
- package/dist/js/next/package.json +1 -1
- package/dist/js/package.json +1 -1
- package/dist/umd/react-core.min.js +1 -1
- package/package.json +2 -2
- package/src/components/ActionList/examples/ActionList.md +1 -6
- package/src/components/ActionList/examples/ActionListSingleGroup.tsx +50 -38
- package/src/components/Breadcrumb/examples/Breadcrumb.md +1 -5
- package/src/components/Breadcrumb/examples/BreadcrumbDropdown.tsx +34 -21
- package/src/components/Card/examples/Card.md +9 -14
- package/src/components/Card/examples/CardExpandable.tsx +44 -31
- package/src/components/Card/examples/CardExpandableWithIcon.tsx +50 -29
- package/src/components/Card/examples/CardHeaderInCardHead.tsx +50 -29
- package/src/components/Card/examples/CardLegacySelectable.tsx +52 -33
- package/src/components/Card/examples/CardOnlyActionsInCardHead.tsx +48 -29
- package/src/components/Card/examples/CardSelectable.tsx +52 -36
- package/src/components/Card/examples/CardWithImageAndActions.tsx +51 -29
- package/src/components/DataList/__tests__/DataList.test.tsx +10 -11
- package/src/components/DataList/__tests__/__snapshots__/DataList.test.tsx.snap +86 -19
- package/src/components/DataList/examples/DataList.md +1 -6
- package/src/components/DataList/examples/DataListActions.tsx +39 -23
- package/src/components/DataList/examples/DataListCheckboxes.tsx +106 -61
- package/src/components/DataList/examples/DataListExpandable.tsx +103 -55
- package/src/components/DataList/examples/DataListMixedExpandable.tsx +105 -57
- package/src/components/DataList/examples/DataListSelectableRows.tsx +71 -39
- package/src/components/DataList/examples/DataListWidthModifiers.tsx +81 -39
- package/src/components/Dropdown/Dropdown.tsx +10 -13
- package/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +29 -32
- package/src/components/Dropdown/examples/Dropdown.md +0 -1
- package/src/components/Dropdown/examples/DropdownBasic.tsx +22 -16
- package/src/components/Dropdown/examples/DropdownWithDescriptions.tsx +13 -18
- package/src/components/Dropdown/examples/DropdownWithGroups.tsx +30 -16
- package/src/components/Dropdown/examples/DropdownWithKebabToggle.tsx +22 -16
- package/src/components/DualListSelector/examples/DualListSelector.md +1 -5
- package/src/components/DualListSelector/examples/DualListSelectorComplexOptionsActions.tsx +60 -36
- package/src/components/Hint/examples/Hint.md +1 -6
- package/src/components/Hint/examples/HintBasicWithTitle.tsx +58 -32
- package/src/components/Hint/examples/HintBasicWithoutTitle.tsx +57 -32
- package/src/components/InputGroup/examples/InputGroup.md +0 -5
- package/src/components/InputGroup/examples/InputGroupWithDropdown.tsx +32 -24
- package/src/components/Menu/examples/Menu.md +1 -5
- package/src/components/Menu/examples/MenuWithDrilldownBreadcrumbs.tsx +120 -89
- package/src/components/MenuToggle/MenuToggle.tsx +4 -3
- package/src/components/MenuToggle/__tests__/__snapshots__/MenuToggle.test.tsx.snap +10 -18
- package/src/components/MenuToggle/examples/MenuToggle.md +35 -5
- package/src/components/Modal/examples/Modal.md +0 -5
- package/src/components/Modal/examples/ModalWithDropdown.tsx +40 -34
- package/src/components/Nav/Nav.tsx +20 -23
- package/src/components/Nav/NavItem.tsx +1 -1
- package/src/components/Nav/examples/Nav.md +24 -0
- package/src/components/Nav/examples/NavDefault.tsx +1 -1
- package/src/components/Nav/examples/NavExpandable.tsx +8 -2
- package/src/components/Nav/examples/NavExpandableThirdLevel.tsx +8 -2
- package/src/components/Nav/examples/NavFlyout.tsx +1 -1
- package/src/components/Nav/examples/NavGrouped.tsx +1 -1
- package/src/components/Nav/examples/NavHorizontalSubNav.tsx +2 -2
- package/src/components/Nav/examples/NavLegacyTertiary.tsx +2 -2
- package/src/components/Nav/examples/NavMixed.tsx +4 -1
- package/src/components/NotificationDrawer/examples/NotificationDrawer.md +1 -8
- package/src/components/NotificationDrawer/examples/NotificationDrawerBasic.tsx +145 -72
- package/src/components/NotificationDrawer/examples/NotificationDrawerGroups.tsx +187 -131
- package/src/components/Toolbar/examples/Toolbar.md +0 -9
- package/src/components/Toolbar/examples/ToolbarStacked.tsx +75 -58
- package/src/components/Toolbar/examples/ToolbarWithFilters.tsx +57 -88
- package/src/components/TreeView/examples/TreeView.md +42 -30
- package/src/demos/AlertGroup.md +1 -6
- package/src/demos/Card/Card.md +75 -80
- package/src/demos/CardDemos.md +40 -34
- package/src/demos/DataListDemo.md +130 -70
- package/src/demos/DatePicker/DatePicker.md +1 -89
- package/src/demos/DateTimePicker.md +90 -5
- package/src/demos/Masthead.md +1 -7
- package/src/demos/Nav.md +225 -167
- package/src/demos/NotificationDrawer/NotificationDrawer.md +487 -357
- package/src/demos/Page.md +1 -7
- package/src/demos/PrimaryDetail.md +193 -211
- package/src/demos/SearchInput/SearchInput.md +165 -124
- package/src/demos/Tabs.md +0 -1
- package/src/demos/Toolbar.md +169 -190
- package/src/demos/Wizard/WizardDemo.md +2 -2
- package/src/demos/examples/AlertGroup/AlertGroupToastWithNotificationDrawer.tsx +61 -49
- package/src/demos/examples/DashboardHeader.js +96 -81
- package/src/demos/examples/DashboardWrapper.js +1 -1
- package/src/demos/examples/DateTimePicker/DateTimePicker.tsx +29 -26
- package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +85 -71
- package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +91 -76
- package/src/demos/examples/Page/PageStickySectionGroup.tsx +91 -76
- package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +91 -76
- package/src/demos/examples/Tabs/TabsAndTable.tsx +12 -6
|
@@ -11,16 +11,7 @@ import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-
|
|
|
11
11
|
import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
|
|
12
12
|
import imgBrand from '@patternfly/react-core/src/components/Brand/examples/pfLogo.svg';
|
|
13
13
|
import imgAvatar from '@patternfly/react-core/src/components/Avatar/examples/avatarImg.svg';
|
|
14
|
-
import
|
|
15
|
-
Dropdown as DropdownDeprecated,
|
|
16
|
-
DropdownGroup as DropdownGroupDeprecated,
|
|
17
|
-
DropdownPosition,
|
|
18
|
-
DropdownDirection,
|
|
19
|
-
DropdownToggle,
|
|
20
|
-
DropdownItem as DropdownItemDeprecated,
|
|
21
|
-
DropdownSeparator,
|
|
22
|
-
KebabToggle
|
|
23
|
-
} from '@patternfly/react-core/deprecated';
|
|
14
|
+
import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
|
|
24
15
|
|
|
25
16
|
## Demos
|
|
26
17
|
|
|
@@ -40,6 +31,10 @@ import {
|
|
|
40
31
|
BreadcrumbItem,
|
|
41
32
|
Button,
|
|
42
33
|
ButtonVariant,
|
|
34
|
+
Divider,
|
|
35
|
+
Dropdown,
|
|
36
|
+
DropdownItem,
|
|
37
|
+
DropdownList,
|
|
43
38
|
EmptyState,
|
|
44
39
|
EmptyStateActions,
|
|
45
40
|
EmptyStateBody,
|
|
@@ -47,6 +42,7 @@ import {
|
|
|
47
42
|
EmptyStateHeader,
|
|
48
43
|
EmptyStateFooter,
|
|
49
44
|
EmptyStateVariant,
|
|
45
|
+
MenuToggle,
|
|
50
46
|
Nav,
|
|
51
47
|
NavItem,
|
|
52
48
|
NavList,
|
|
@@ -78,20 +74,11 @@ import {
|
|
|
78
74
|
ToolbarGroup,
|
|
79
75
|
ToolbarContent
|
|
80
76
|
} from '@patternfly/react-core';
|
|
81
|
-
import {
|
|
82
|
-
Dropdown as DropdownDeprecated,
|
|
83
|
-
DropdownGroup as DropdownGroupDeprecated,
|
|
84
|
-
DropdownPosition,
|
|
85
|
-
DropdownDirection,
|
|
86
|
-
DropdownToggle,
|
|
87
|
-
DropdownItem as DropdownItemDeprecated,
|
|
88
|
-
DropdownSeparator,
|
|
89
|
-
KebabToggle
|
|
90
|
-
} from '@patternfly/react-core/deprecated';
|
|
91
77
|
import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
|
|
92
78
|
import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
|
|
93
79
|
import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
|
|
94
80
|
import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
|
|
81
|
+
import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
|
|
95
82
|
import BarsIcon from '@patternfly/react-icons/dist/js/icons/bars-icon';
|
|
96
83
|
import imgBrand from '@patternfly/react-core/src/components/Brand/examples/pfLogo.svg';
|
|
97
84
|
import imgAvatar from '@patternfly/react-core/src/components/Avatar/examples/avatarImg.svg';
|
|
@@ -111,33 +98,33 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
111
98
|
'notification-2': true
|
|
112
99
|
},
|
|
113
100
|
showNotifications: true,
|
|
114
|
-
isActionsMenuOpen:
|
|
101
|
+
isActionsMenuOpen: {}
|
|
115
102
|
};
|
|
116
|
-
this.onDropdownToggle = (
|
|
117
|
-
this.setState({
|
|
118
|
-
isDropdownOpen
|
|
119
|
-
});
|
|
103
|
+
this.onDropdownToggle = () => {
|
|
104
|
+
this.setState((prevState) => ({
|
|
105
|
+
isDropdownOpen: !prevState.isDropdownOpen
|
|
106
|
+
}));
|
|
120
107
|
};
|
|
121
108
|
|
|
122
|
-
this.onDropdownSelect = (
|
|
109
|
+
this.onDropdownSelect = () => {
|
|
123
110
|
this.setState({
|
|
124
|
-
isDropdownOpen:
|
|
111
|
+
isDropdownOpen: false
|
|
125
112
|
});
|
|
126
113
|
};
|
|
127
114
|
|
|
128
|
-
this.onKebabDropdownToggle = (
|
|
129
|
-
this.setState({
|
|
130
|
-
isKebabDropdownOpen
|
|
131
|
-
});
|
|
115
|
+
this.onKebabDropdownToggle = () => {
|
|
116
|
+
this.setState((prevState) => ({
|
|
117
|
+
isKebabDropdownOpen: !prevState.isKebabDropdownOpen
|
|
118
|
+
}));
|
|
132
119
|
};
|
|
133
120
|
|
|
134
|
-
this.onKebabDropdownSelect = (
|
|
121
|
+
this.onKebabDropdownSelect = () => {
|
|
135
122
|
this.setState({
|
|
136
|
-
isKebabDropdownOpen:
|
|
123
|
+
isKebabDropdownOpen: false
|
|
137
124
|
});
|
|
138
125
|
};
|
|
139
126
|
|
|
140
|
-
this.onNavSelect = (result) => {
|
|
127
|
+
this.onNavSelect = (_event, result) => {
|
|
141
128
|
this.setState({
|
|
142
129
|
activeItem: result.itemId
|
|
143
130
|
});
|
|
@@ -151,15 +138,15 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
151
138
|
});
|
|
152
139
|
};
|
|
153
140
|
|
|
154
|
-
this.onToggle = (id
|
|
155
|
-
this.setState({
|
|
156
|
-
isActionsMenuOpen: { [id]:
|
|
157
|
-
});
|
|
141
|
+
this.onToggle = (id) => {
|
|
142
|
+
this.setState((prevState) => ({
|
|
143
|
+
isActionsMenuOpen: { [id]: !prevState.isActionsMenuOpen[id] }
|
|
144
|
+
}));
|
|
158
145
|
};
|
|
159
146
|
|
|
160
|
-
this.onSelect = (
|
|
147
|
+
this.onSelect = () => {
|
|
161
148
|
this.setState({
|
|
162
|
-
isActionsMenuOpen:
|
|
149
|
+
isActionsMenuOpen: {}
|
|
163
150
|
});
|
|
164
151
|
};
|
|
165
152
|
|
|
@@ -233,23 +220,23 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
233
220
|
</NavList>
|
|
234
221
|
</Nav>
|
|
235
222
|
);
|
|
236
|
-
const kebabDropdownItems =
|
|
237
|
-
|
|
238
|
-
<
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
<
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
</
|
|
250
|
-
<
|
|
251
|
-
|
|
252
|
-
|
|
223
|
+
const kebabDropdownItems = (
|
|
224
|
+
<>
|
|
225
|
+
<DropdownItem>
|
|
226
|
+
<CogIcon /> Settings
|
|
227
|
+
</DropdownItem>
|
|
228
|
+
<DropdownItem>
|
|
229
|
+
<HelpIcon /> Help
|
|
230
|
+
</DropdownItem>
|
|
231
|
+
</>
|
|
232
|
+
);
|
|
233
|
+
const userDropdownItems = (
|
|
234
|
+
<>
|
|
235
|
+
<DropdownItem key="group 2 profile">My profile</DropdownItem>
|
|
236
|
+
<DropdownItem key="group 2 user">User management</DropdownItem>
|
|
237
|
+
<DropdownItem key="group 2 logout">Logout</DropdownItem>
|
|
238
|
+
</>
|
|
239
|
+
);
|
|
253
240
|
const headerToolbar = (
|
|
254
241
|
<Toolbar isFullHeight>
|
|
255
242
|
<ToolbarContent>
|
|
@@ -290,30 +277,48 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
290
277
|
lg: 'hidden'
|
|
291
278
|
}} /** this kebab dropdown replaces the icon buttons and is hidden for desktop sizes */
|
|
292
279
|
>
|
|
293
|
-
<
|
|
294
|
-
isPlain
|
|
295
|
-
position="right"
|
|
296
|
-
onSelect={this.onKebabDropdownSelect}
|
|
297
|
-
toggle={<KebabToggle onToggle={this.onKebabDropdownToggle} />}
|
|
280
|
+
<Dropdown
|
|
298
281
|
isOpen={isKebabDropdownOpen}
|
|
299
|
-
|
|
300
|
-
|
|
282
|
+
onSelect={this.onKebabDropdownSelect}
|
|
283
|
+
onOpenChange={(isOpen) => this.setState({ isKebabDropdownOpen: isOpen })}
|
|
284
|
+
popperProps={{ position: 'right' }}
|
|
285
|
+
toggle={(toggleRef) => (
|
|
286
|
+
<MenuToggle
|
|
287
|
+
ref={toggleRef}
|
|
288
|
+
isExpanded={isKebabDropdownOpen}
|
|
289
|
+
onClick={this.onKebabDropdownToggle}
|
|
290
|
+
variant="plain"
|
|
291
|
+
aria-label="Settings and help"
|
|
292
|
+
>
|
|
293
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
294
|
+
</MenuToggle>
|
|
295
|
+
)}
|
|
296
|
+
>
|
|
297
|
+
<DropdownList>{kebabDropdownItems}</DropdownList>
|
|
298
|
+
</Dropdown>
|
|
301
299
|
</ToolbarItem>
|
|
302
300
|
<ToolbarItem
|
|
303
301
|
visibility={{ default: 'hidden', md: 'visible' }} /** this user dropdown is hidden on mobile sizes */
|
|
304
302
|
>
|
|
305
|
-
<
|
|
306
|
-
position="right"
|
|
307
|
-
onSelect={this.onDropdownSelect}
|
|
303
|
+
<Dropdown
|
|
308
304
|
isOpen={isDropdownOpen}
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
305
|
+
onSelect={this.onDropdownSelect}
|
|
306
|
+
onOpenChange={(isOpen) => this.setState({ isDropdownOpen: isOpen })}
|
|
307
|
+
popperProps={{ position: 'right' }}
|
|
308
|
+
toggle={(toggleRef) => (
|
|
309
|
+
<MenuToggle
|
|
310
|
+
ref={toggleRef}
|
|
311
|
+
isExpanded={isDropdownOpen}
|
|
312
|
+
onClick={this.onDropdownToggle}
|
|
313
|
+
icon={<Avatar src={imgAvatar} alt="" />}
|
|
314
|
+
isFullHeight
|
|
315
|
+
>
|
|
312
316
|
John Smith
|
|
313
|
-
</
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
+
</MenuToggle>
|
|
318
|
+
)}
|
|
319
|
+
>
|
|
320
|
+
<DropdownList>{userDropdownItems}</DropdownList>
|
|
321
|
+
</Dropdown>
|
|
317
322
|
</ToolbarItem>
|
|
318
323
|
</ToolbarGroup>
|
|
319
324
|
</ToolbarGroup>
|
|
@@ -357,46 +362,61 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
357
362
|
|
|
358
363
|
const drawerContent = 'Panel content';
|
|
359
364
|
|
|
360
|
-
const notificationDrawerActions =
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
Settings
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
365
|
+
const notificationDrawerActions = (
|
|
366
|
+
<>
|
|
367
|
+
<DropdownItem key="markAllRead" onClick={this.markAllRead}>
|
|
368
|
+
Mark all read
|
|
369
|
+
</DropdownItem>
|
|
370
|
+
<DropdownItem key="clearAll" onClick={() => this.showNotifications(false)}>
|
|
371
|
+
Clear all
|
|
372
|
+
</DropdownItem>
|
|
373
|
+
<DropdownItem key="unclearLast" onClick={() => this.showNotifications(true)}>
|
|
374
|
+
Unclear last
|
|
375
|
+
</DropdownItem>
|
|
376
|
+
<DropdownItem key="settings">Settings</DropdownItem>
|
|
377
|
+
</>
|
|
378
|
+
);
|
|
379
|
+
const notificationDrawerDropdownItems = (
|
|
380
|
+
<>
|
|
381
|
+
<DropdownItem
|
|
382
|
+
key="link"
|
|
383
|
+
to="#"
|
|
384
|
+
// Prevent default onClick behavior for demo purposes
|
|
385
|
+
onClick={(ev) => ev.preventDefault()}
|
|
386
|
+
>
|
|
387
|
+
Link
|
|
388
|
+
</DropdownItem>
|
|
389
|
+
<DropdownItem key="action">Action</DropdownItem>
|
|
390
|
+
<Divider component="li" key="separator" />
|
|
391
|
+
<DropdownItem key="disabled link" isDisabled>
|
|
392
|
+
Disabled Link
|
|
393
|
+
</DropdownItem>
|
|
394
|
+
</>
|
|
395
|
+
);
|
|
386
396
|
const notificationDrawer = (
|
|
387
397
|
<NotificationDrawer ref={this.drawerRef}>
|
|
388
|
-
<NotificationDrawerHeader count={this.getNumberUnread()} onClose={
|
|
389
|
-
<
|
|
398
|
+
<NotificationDrawerHeader count={this.getNumberUnread()} onClose={this.onCloseNotificationDrawer}>
|
|
399
|
+
<Dropdown
|
|
390
400
|
onSelect={this.onSelect}
|
|
391
|
-
|
|
392
|
-
<KebabToggle onToggle={(_event, isOpen) => this.onToggle('toggle-id-0', isOpen)} id="toggle-id-0" />
|
|
393
|
-
}
|
|
394
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-0']}
|
|
395
|
-
isPlain
|
|
396
|
-
dropdownItems={notificationDrawerActions}
|
|
401
|
+
isOpen={isActionsMenuOpen['toggle-id-0'] || false}
|
|
397
402
|
id="notification-0"
|
|
398
|
-
|
|
399
|
-
|
|
403
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
404
|
+
popperProps={{ position: 'right' }}
|
|
405
|
+
toggle={(toggleRef) => (
|
|
406
|
+
<MenuToggle
|
|
407
|
+
ref={toggleRef}
|
|
408
|
+
id="toggle-id-0"
|
|
409
|
+
aria-label="Notification drawer actions"
|
|
410
|
+
variant="plain"
|
|
411
|
+
onClick={() => this.onToggle('toggle-id-0')}
|
|
412
|
+
isExpanded={isActionsMenuOpen['toggle-id-0'] || false}
|
|
413
|
+
>
|
|
414
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
415
|
+
</MenuToggle>
|
|
416
|
+
)}
|
|
417
|
+
>
|
|
418
|
+
<DropdownList>{notificationDrawerActions}</DropdownList>
|
|
419
|
+
</Dropdown>
|
|
400
420
|
</NotificationDrawerHeader>
|
|
401
421
|
<NotificationDrawerBody>
|
|
402
422
|
{showNotifications && (
|
|
@@ -411,20 +431,27 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
411
431
|
title="Unread info notification title"
|
|
412
432
|
srTitle="Info notification:"
|
|
413
433
|
>
|
|
414
|
-
<
|
|
415
|
-
position={DropdownPosition.right}
|
|
434
|
+
<Dropdown
|
|
416
435
|
onSelect={this.onSelect}
|
|
417
|
-
|
|
418
|
-
<KebabToggle
|
|
419
|
-
onToggle={(_event, isOpen) => this.onToggle('toggle-id-1', isOpen)}
|
|
420
|
-
id="toggle-id-1"
|
|
421
|
-
/>
|
|
422
|
-
}
|
|
423
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-1']}
|
|
424
|
-
isPlain
|
|
425
|
-
dropdownItems={notificationDrawerDropdownItems}
|
|
436
|
+
isOpen={isActionsMenuOpen['toggle-id-1'] || false}
|
|
426
437
|
id="notification-1"
|
|
427
|
-
|
|
438
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
439
|
+
popperProps={{ position: 'right' }}
|
|
440
|
+
toggle={(toggleRef) => (
|
|
441
|
+
<MenuToggle
|
|
442
|
+
ref={toggleRef}
|
|
443
|
+
id="toggle-id-1"
|
|
444
|
+
aria-label="Notification drawer actions"
|
|
445
|
+
variant="plain"
|
|
446
|
+
onClick={() => this.onToggle('toggle-id-1')}
|
|
447
|
+
isExpanded={isActionsMenuOpen['toggle-id-1'] || false}
|
|
448
|
+
>
|
|
449
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
450
|
+
</MenuToggle>
|
|
451
|
+
)}
|
|
452
|
+
>
|
|
453
|
+
<DropdownList>{notificationDrawerDropdownItems}</DropdownList>
|
|
454
|
+
</Dropdown>
|
|
428
455
|
</NotificationDrawerListItemHeader>
|
|
429
456
|
<NotificationDrawerListItemBody timestamp="5 minutes ago">
|
|
430
457
|
This is an info notification description.
|
|
@@ -440,20 +467,27 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
440
467
|
title="Unread danger notification title. This is a long title to show how the title will wrap if it is long and wraps to multiple lines."
|
|
441
468
|
srTitle="Danger notification:"
|
|
442
469
|
>
|
|
443
|
-
<
|
|
444
|
-
position={DropdownPosition.right}
|
|
470
|
+
<Dropdown
|
|
445
471
|
onSelect={this.onSelect}
|
|
446
|
-
|
|
447
|
-
<KebabToggle
|
|
448
|
-
onToggle={(_event, isOpen) => this.onToggle('toggle-id-2', isOpen)}
|
|
449
|
-
id="toggle-id-2"
|
|
450
|
-
/>
|
|
451
|
-
}
|
|
452
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-2']}
|
|
453
|
-
isPlain
|
|
454
|
-
dropdownItems={notificationDrawerDropdownItems}
|
|
472
|
+
isOpen={isActionsMenuOpen['toggle-id-2'] || false}
|
|
455
473
|
id="notification-2"
|
|
456
|
-
|
|
474
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
475
|
+
popperProps={{ position: 'right' }}
|
|
476
|
+
toggle={(toggleRef) => (
|
|
477
|
+
<MenuToggle
|
|
478
|
+
ref={toggleRef}
|
|
479
|
+
id="toggle-id-2"
|
|
480
|
+
aria-label="Notification drawer actions"
|
|
481
|
+
variant="plain"
|
|
482
|
+
onClick={() => this.onToggle('toggle-id-2')}
|
|
483
|
+
isExpanded={isActionsMenuOpen['toggle-id-2'] || false}
|
|
484
|
+
>
|
|
485
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
486
|
+
</MenuToggle>
|
|
487
|
+
)}
|
|
488
|
+
>
|
|
489
|
+
<DropdownList>{notificationDrawerDropdownItems}</DropdownList>
|
|
490
|
+
</Dropdown>
|
|
457
491
|
</NotificationDrawerListItemHeader>
|
|
458
492
|
<NotificationDrawerListItemBody timestamp="10 minutes ago">
|
|
459
493
|
This is a danger notification description. This is a long description to show how the title will wrap
|
|
@@ -470,20 +504,27 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
470
504
|
title="Read warning notification title"
|
|
471
505
|
srTitle="Warning notification:"
|
|
472
506
|
>
|
|
473
|
-
<
|
|
474
|
-
position={DropdownPosition.right}
|
|
507
|
+
<Dropdown
|
|
475
508
|
onSelect={this.onSelect}
|
|
476
|
-
|
|
477
|
-
<KebabToggle
|
|
478
|
-
onToggle={(_event, isOpen) => this.onToggle('toggle-id-3', isOpen)}
|
|
479
|
-
id="toggle-id-3"
|
|
480
|
-
/>
|
|
481
|
-
}
|
|
482
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-3']}
|
|
483
|
-
isPlain
|
|
484
|
-
dropdownItems={notificationDrawerDropdownItems}
|
|
509
|
+
isOpen={isActionsMenuOpen['toggle-id-3'] || false}
|
|
485
510
|
id="notification-3"
|
|
486
|
-
|
|
511
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
512
|
+
popperProps={{ position: 'right' }}
|
|
513
|
+
toggle={(toggleRef) => (
|
|
514
|
+
<MenuToggle
|
|
515
|
+
ref={toggleRef}
|
|
516
|
+
id="toggle-id-3"
|
|
517
|
+
aria-label="Notification drawer actions"
|
|
518
|
+
variant="plain"
|
|
519
|
+
onClick={() => this.onToggle('toggle-id-3')}
|
|
520
|
+
isExpanded={isActionsMenuOpen['toggle-id-3'] || false}
|
|
521
|
+
>
|
|
522
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
523
|
+
</MenuToggle>
|
|
524
|
+
)}
|
|
525
|
+
>
|
|
526
|
+
<DropdownList>{notificationDrawerDropdownItems}</DropdownList>
|
|
527
|
+
</Dropdown>
|
|
487
528
|
</NotificationDrawerListItemHeader>
|
|
488
529
|
<NotificationDrawerListItemBody timestamp="20 minutes ago">
|
|
489
530
|
This is a warning notification description.
|
|
@@ -499,21 +540,27 @@ class BasicNotificationDrawer extends React.Component {
|
|
|
499
540
|
title="Read success notification title"
|
|
500
541
|
srTitle="Success notification:"
|
|
501
542
|
>
|
|
502
|
-
<
|
|
503
|
-
position={DropdownPosition.right}
|
|
504
|
-
direction={DropdownDirection.up}
|
|
543
|
+
<Dropdown
|
|
505
544
|
onSelect={this.onSelect}
|
|
506
|
-
|
|
507
|
-
<KebabToggle
|
|
508
|
-
onToggle={(_event, isOpen) => this.onToggle('toggle-id-4', isOpen)}
|
|
509
|
-
id="toggle-id-4"
|
|
510
|
-
/>
|
|
511
|
-
}
|
|
512
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-4']}
|
|
513
|
-
isPlain
|
|
514
|
-
dropdownItems={notificationDrawerDropdownItems}
|
|
545
|
+
isOpen={isActionsMenuOpen['toggle-id-4'] || false}
|
|
515
546
|
id="notification-4"
|
|
516
|
-
|
|
547
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
548
|
+
popperProps={{ position: 'right' }}
|
|
549
|
+
toggle={(toggleRef) => (
|
|
550
|
+
<MenuToggle
|
|
551
|
+
ref={toggleRef}
|
|
552
|
+
id="toggle-id-4"
|
|
553
|
+
aria-label="Notification drawer actions"
|
|
554
|
+
variant="plain"
|
|
555
|
+
onClick={() => this.onToggle('toggle-id-4')}
|
|
556
|
+
isExpanded={isActionsMenuOpen['toggle-id-4'] || false}
|
|
557
|
+
>
|
|
558
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
559
|
+
</MenuToggle>
|
|
560
|
+
)}
|
|
561
|
+
>
|
|
562
|
+
<DropdownList>{notificationDrawerDropdownItems}</DropdownList>
|
|
563
|
+
</Dropdown>
|
|
517
564
|
</NotificationDrawerListItemHeader>
|
|
518
565
|
<NotificationDrawerListItemBody timestamp="30 minutes ago">
|
|
519
566
|
This is a success notification description.
|
|
@@ -587,6 +634,10 @@ import {
|
|
|
587
634
|
BreadcrumbItem,
|
|
588
635
|
Button,
|
|
589
636
|
ButtonVariant,
|
|
637
|
+
Divider,
|
|
638
|
+
Dropdown,
|
|
639
|
+
DropdownItem,
|
|
640
|
+
DropdownList,
|
|
590
641
|
EmptyState,
|
|
591
642
|
EmptyStateActions,
|
|
592
643
|
EmptyStateBody,
|
|
@@ -594,6 +645,7 @@ import {
|
|
|
594
645
|
EmptyStateHeader,
|
|
595
646
|
EmptyStateFooter,
|
|
596
647
|
EmptyStateVariant,
|
|
648
|
+
MenuToggle,
|
|
597
649
|
Nav,
|
|
598
650
|
NavItem,
|
|
599
651
|
NavList,
|
|
@@ -627,22 +679,13 @@ import {
|
|
|
627
679
|
ToolbarGroup,
|
|
628
680
|
ToolbarContent
|
|
629
681
|
} from '@patternfly/react-core';
|
|
630
|
-
import {
|
|
631
|
-
Dropdown as DropdownDeprecated,
|
|
632
|
-
DropdownGroup as DropdownGroupDeprecated,
|
|
633
|
-
DropdownPosition,
|
|
634
|
-
DropdownDirection,
|
|
635
|
-
DropdownToggle,
|
|
636
|
-
DropdownItem as DropdownItemDeprecated,
|
|
637
|
-
DropdownSeparator,
|
|
638
|
-
KebabToggle
|
|
639
|
-
} from '@patternfly/react-core/deprecated';
|
|
640
682
|
import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
|
|
641
683
|
import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
|
|
642
684
|
import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
|
|
643
685
|
import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
|
|
644
686
|
import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
|
|
645
687
|
import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
|
|
688
|
+
import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
|
|
646
689
|
import imgBrand from '@patternfly/react-core/src/components/Brand/examples/pfLogo.svg';
|
|
647
690
|
import imgAvatar from '@patternfly/react-core/src/components/Avatar/examples/avatarImg.svg';
|
|
648
691
|
|
|
@@ -658,7 +701,7 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
658
701
|
firstDrawerGroupExpanded: false,
|
|
659
702
|
secondDrawerGroupExpanded: true,
|
|
660
703
|
thirdDrawerGroupExpanded: false,
|
|
661
|
-
isActionsMenuOpen:
|
|
704
|
+
isActionsMenuOpen: {},
|
|
662
705
|
showNotifications: true,
|
|
663
706
|
isUnreadMap: {
|
|
664
707
|
'group-1': {
|
|
@@ -672,31 +715,31 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
672
715
|
'group-3': null
|
|
673
716
|
}
|
|
674
717
|
};
|
|
675
|
-
this.onDropdownToggle = (
|
|
676
|
-
this.setState({
|
|
677
|
-
isDropdownOpen
|
|
678
|
-
});
|
|
718
|
+
this.onDropdownToggle = () => {
|
|
719
|
+
this.setState((prevState) => ({
|
|
720
|
+
isDropdownOpen: !prevState.isDropdownOpen
|
|
721
|
+
}));
|
|
679
722
|
};
|
|
680
723
|
|
|
681
|
-
this.onDropdownSelect = (
|
|
724
|
+
this.onDropdownSelect = () => {
|
|
682
725
|
this.setState({
|
|
683
|
-
isDropdownOpen:
|
|
726
|
+
isDropdownOpen: false
|
|
684
727
|
});
|
|
685
728
|
};
|
|
686
729
|
|
|
687
|
-
this.onKebabDropdownToggle = (
|
|
688
|
-
this.setState({
|
|
689
|
-
isKebabDropdownOpen
|
|
690
|
-
});
|
|
730
|
+
this.onKebabDropdownToggle = () => {
|
|
731
|
+
this.setState((prevState) => ({
|
|
732
|
+
isKebabDropdownOpen: !prevState.isKebabDropdownOpen
|
|
733
|
+
}));
|
|
691
734
|
};
|
|
692
735
|
|
|
693
|
-
this.onKebabDropdownSelect = (
|
|
736
|
+
this.onKebabDropdownSelect = () => {
|
|
694
737
|
this.setState({
|
|
695
|
-
isKebabDropdownOpen:
|
|
738
|
+
isKebabDropdownOpen: false
|
|
696
739
|
});
|
|
697
740
|
};
|
|
698
741
|
|
|
699
|
-
this.onNavSelect = (result) => {
|
|
742
|
+
this.onNavSelect = (_event, result) => {
|
|
700
743
|
this.setState({
|
|
701
744
|
activeItem: result.itemId
|
|
702
745
|
});
|
|
@@ -710,15 +753,15 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
710
753
|
});
|
|
711
754
|
};
|
|
712
755
|
|
|
713
|
-
this.onToggle = (id
|
|
714
|
-
this.setState({
|
|
715
|
-
isActionsMenuOpen: { [id]:
|
|
716
|
-
});
|
|
756
|
+
this.onToggle = (id) => {
|
|
757
|
+
this.setState((prevState) => ({
|
|
758
|
+
isActionsMenuOpen: { [id]: !prevState.isActionsMenuOpen[id] }
|
|
759
|
+
}));
|
|
717
760
|
};
|
|
718
761
|
|
|
719
|
-
this.onSelect = (
|
|
762
|
+
this.onSelect = () => {
|
|
720
763
|
this.setState({
|
|
721
|
-
isActionsMenuOpen:
|
|
764
|
+
isActionsMenuOpen: {}
|
|
722
765
|
});
|
|
723
766
|
};
|
|
724
767
|
|
|
@@ -835,23 +878,23 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
835
878
|
</NavList>
|
|
836
879
|
</Nav>
|
|
837
880
|
);
|
|
838
|
-
const kebabDropdownItems =
|
|
839
|
-
|
|
840
|
-
<
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
<
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
</
|
|
852
|
-
<
|
|
853
|
-
|
|
854
|
-
|
|
881
|
+
const kebabDropdownItems = (
|
|
882
|
+
<>
|
|
883
|
+
<DropdownItem>
|
|
884
|
+
<CogIcon /> Settings
|
|
885
|
+
</DropdownItem>
|
|
886
|
+
<DropdownItem>
|
|
887
|
+
<HelpIcon /> Help
|
|
888
|
+
</DropdownItem>
|
|
889
|
+
</>
|
|
890
|
+
);
|
|
891
|
+
const userDropdownItems = (
|
|
892
|
+
<>
|
|
893
|
+
<DropdownItem key="group 2 profile">My profile</DropdownItem>
|
|
894
|
+
<DropdownItem key="group 2 user">User management</DropdownItem>
|
|
895
|
+
<DropdownItem key="group 2 logout">Logout</DropdownItem>
|
|
896
|
+
</>
|
|
897
|
+
);
|
|
855
898
|
const headerToolbar = (
|
|
856
899
|
<Toolbar isFullHeight>
|
|
857
900
|
<ToolbarContent>
|
|
@@ -892,30 +935,48 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
892
935
|
lg: 'hidden'
|
|
893
936
|
}} /** this kebab dropdown replaces the icon buttons and is hidden for desktop sizes */
|
|
894
937
|
>
|
|
895
|
-
<
|
|
896
|
-
isPlain
|
|
897
|
-
position="right"
|
|
898
|
-
onSelect={this.onKebabDropdownSelect}
|
|
899
|
-
toggle={<KebabToggle onToggle={this.onKebabDropdownToggle} />}
|
|
938
|
+
<Dropdown
|
|
900
939
|
isOpen={isKebabDropdownOpen}
|
|
901
|
-
|
|
902
|
-
|
|
940
|
+
onSelect={this.onKebabDropdownSelect}
|
|
941
|
+
onOpenChange={(isOpen) => this.setState({ isKebabDropdownOpen: isOpen })}
|
|
942
|
+
popperProps={{ position: 'right' }}
|
|
943
|
+
toggle={(toggleRef) => (
|
|
944
|
+
<MenuToggle
|
|
945
|
+
ref={toggleRef}
|
|
946
|
+
isExpanded={isKebabDropdownOpen}
|
|
947
|
+
onClick={this.onKebabDropdownToggle}
|
|
948
|
+
variant="plain"
|
|
949
|
+
aria-label="Settings and help"
|
|
950
|
+
>
|
|
951
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
952
|
+
</MenuToggle>
|
|
953
|
+
)}
|
|
954
|
+
>
|
|
955
|
+
<DropdownList>{kebabDropdownItems}</DropdownList>
|
|
956
|
+
</Dropdown>
|
|
903
957
|
</ToolbarItem>
|
|
904
958
|
<ToolbarItem
|
|
905
959
|
visibility={{ default: 'hidden', md: 'visible' }} /** this user dropdown is hidden on mobile sizes */
|
|
906
960
|
>
|
|
907
|
-
<
|
|
908
|
-
position="right"
|
|
909
|
-
onSelect={this.onDropdownSelect}
|
|
961
|
+
<Dropdown
|
|
910
962
|
isOpen={isDropdownOpen}
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
963
|
+
onSelect={this.onDropdownSelect}
|
|
964
|
+
onOpenChange={(isOpen) => this.setState({ isDropdownOpen: isOpen })}
|
|
965
|
+
popperProps={{ position: 'right' }}
|
|
966
|
+
toggle={(toggleRef) => (
|
|
967
|
+
<MenuToggle
|
|
968
|
+
ref={toggleRef}
|
|
969
|
+
isExpanded={isDropdownOpen}
|
|
970
|
+
onClick={this.onDropdownToggle}
|
|
971
|
+
icon={<Avatar src={imgAvatar} alt="" />}
|
|
972
|
+
isFullHeight
|
|
973
|
+
>
|
|
914
974
|
John Smith
|
|
915
|
-
</
|
|
916
|
-
}
|
|
917
|
-
|
|
918
|
-
|
|
975
|
+
</MenuToggle>
|
|
976
|
+
)}
|
|
977
|
+
>
|
|
978
|
+
<DropdownList>{userDropdownItems}</DropdownList>
|
|
979
|
+
</Dropdown>
|
|
919
980
|
</ToolbarItem>
|
|
920
981
|
</ToolbarGroup>
|
|
921
982
|
</ToolbarGroup>
|
|
@@ -958,47 +1019,62 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
958
1019
|
);
|
|
959
1020
|
|
|
960
1021
|
const drawerContent = 'Panel content';
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
1022
|
+
const notificationDrawerActions = (
|
|
1023
|
+
<>
|
|
1024
|
+
<DropdownItem key="markAllRead" onClick={this.markAllRead}>
|
|
1025
|
+
Mark all read
|
|
1026
|
+
</DropdownItem>
|
|
1027
|
+
<DropdownItem key="clearAll" onClick={() => this.showNotifications(false)}>
|
|
1028
|
+
Clear all
|
|
1029
|
+
</DropdownItem>
|
|
1030
|
+
<DropdownItem key="unclearLast" onClick={() => this.showNotifications(true)}>
|
|
1031
|
+
Unclear last
|
|
1032
|
+
</DropdownItem>
|
|
1033
|
+
<DropdownItem key="settings">Settings</DropdownItem>
|
|
1034
|
+
</>
|
|
1035
|
+
);
|
|
1036
|
+
const notificationDrawerDropdownItems = (
|
|
1037
|
+
<>
|
|
1038
|
+
<DropdownItem
|
|
1039
|
+
key="link"
|
|
1040
|
+
to="#"
|
|
1041
|
+
// Prevent default onClick behavior for demo purposes
|
|
1042
|
+
onClick={(ev) => ev.preventDefault()}
|
|
1043
|
+
>
|
|
1044
|
+
Link
|
|
1045
|
+
</DropdownItem>
|
|
1046
|
+
<DropdownItem key="action">Action</DropdownItem>
|
|
1047
|
+
<Divider component="li" key="separator" />
|
|
1048
|
+
<DropdownItem key="disabled link" isDisabled>
|
|
1049
|
+
Disabled Link
|
|
1050
|
+
</DropdownItem>
|
|
1051
|
+
</>
|
|
1052
|
+
);
|
|
987
1053
|
|
|
988
1054
|
const notificationDrawer = (
|
|
989
1055
|
<NotificationDrawer ref={this.drawerRef}>
|
|
990
|
-
<NotificationDrawerHeader count={this.getNumberUnread()} onClose={
|
|
991
|
-
<
|
|
1056
|
+
<NotificationDrawerHeader count={this.getNumberUnread()} onClose={this.onCloseNotificationDrawer}>
|
|
1057
|
+
<Dropdown
|
|
992
1058
|
onSelect={this.onSelect}
|
|
993
|
-
|
|
994
|
-
<KebabToggle onToggle={(_event, isOpen) => this.onToggle('toggle-id-0', isOpen)} id="toggle-id-0" />
|
|
995
|
-
}
|
|
996
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-0']}
|
|
997
|
-
isPlain
|
|
998
|
-
dropdownItems={notificationDrawerActions}
|
|
1059
|
+
isOpen={isActionsMenuOpen['toggle-id-0'] || false}
|
|
999
1060
|
id="notification-0"
|
|
1000
|
-
|
|
1001
|
-
|
|
1061
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
1062
|
+
popperProps={{ position: 'right' }}
|
|
1063
|
+
toggle={(toggleRef) => (
|
|
1064
|
+
<MenuToggle
|
|
1065
|
+
ref={toggleRef}
|
|
1066
|
+
id="toggle-id-0"
|
|
1067
|
+
aria-label="Notification drawer actions"
|
|
1068
|
+
variant="plain"
|
|
1069
|
+
onClick={() => this.onToggle('toggle-id-0')}
|
|
1070
|
+
isExpanded={isActionsMenuOpen['toggle-id-0'] || false}
|
|
1071
|
+
>
|
|
1072
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
1073
|
+
</MenuToggle>
|
|
1074
|
+
)}
|
|
1075
|
+
>
|
|
1076
|
+
<DropdownList>{notificationDrawerActions}</DropdownList>
|
|
1077
|
+
</Dropdown>
|
|
1002
1078
|
</NotificationDrawerHeader>
|
|
1003
1079
|
<NotificationDrawerBody>
|
|
1004
1080
|
{showNotifications && (
|
|
@@ -1020,20 +1096,27 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
1020
1096
|
title="Unread info notification title"
|
|
1021
1097
|
srTitle="Info notification:"
|
|
1022
1098
|
>
|
|
1023
|
-
<
|
|
1024
|
-
position={DropdownPosition.right}
|
|
1099
|
+
<Dropdown
|
|
1025
1100
|
onSelect={this.onSelect}
|
|
1026
|
-
|
|
1027
|
-
<KebabToggle
|
|
1028
|
-
onToggle={(_event, isOpen) => this.onToggle('toggle-id-5', isOpen)}
|
|
1029
|
-
id="toggle-id-5"
|
|
1030
|
-
/>
|
|
1031
|
-
}
|
|
1032
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-5']}
|
|
1033
|
-
isPlain
|
|
1034
|
-
dropdownItems={notificationDrawerDropdownItems}
|
|
1101
|
+
isOpen={isActionsMenuOpen['toggle-id-5'] || false}
|
|
1035
1102
|
id="notification-5"
|
|
1036
|
-
|
|
1103
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
1104
|
+
popperProps={{ position: 'right' }}
|
|
1105
|
+
toggle={(toggleRef) => (
|
|
1106
|
+
<MenuToggle
|
|
1107
|
+
ref={toggleRef}
|
|
1108
|
+
id="toggle-id-5"
|
|
1109
|
+
aria-label="Notification drawer actions"
|
|
1110
|
+
variant="plain"
|
|
1111
|
+
onClick={() => this.onToggle('toggle-id-5')}
|
|
1112
|
+
isExpanded={isActionsMenuOpen['toggle-id-5'] || false}
|
|
1113
|
+
>
|
|
1114
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
1115
|
+
</MenuToggle>
|
|
1116
|
+
)}
|
|
1117
|
+
>
|
|
1118
|
+
<DropdownList>{notificationDrawerDropdownItems}</DropdownList>
|
|
1119
|
+
</Dropdown>
|
|
1037
1120
|
</NotificationDrawerListItemHeader>
|
|
1038
1121
|
<NotificationDrawerListItemBody timestamp="5 minutes ago">
|
|
1039
1122
|
This is an info notification description.
|
|
@@ -1049,20 +1132,27 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
1049
1132
|
title="Unread danger notification title. This is a long title to show how the title will wrap if it is long and wraps to multiple lines."
|
|
1050
1133
|
srTitle="Danger notification:"
|
|
1051
1134
|
>
|
|
1052
|
-
<
|
|
1053
|
-
position={DropdownPosition.right}
|
|
1135
|
+
<Dropdown
|
|
1054
1136
|
onSelect={this.onSelect}
|
|
1055
|
-
|
|
1056
|
-
<KebabToggle
|
|
1057
|
-
onToggle={(_event, isOpen) => this.onToggle('toggle-id-6', isOpen)}
|
|
1058
|
-
id="toggle-id-6"
|
|
1059
|
-
/>
|
|
1060
|
-
}
|
|
1061
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-6']}
|
|
1062
|
-
isPlain
|
|
1063
|
-
dropdownItems={notificationDrawerDropdownItems}
|
|
1137
|
+
isOpen={isActionsMenuOpen['toggle-id-6'] || false}
|
|
1064
1138
|
id="notification-6"
|
|
1065
|
-
|
|
1139
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
1140
|
+
popperProps={{ position: 'right' }}
|
|
1141
|
+
toggle={(toggleRef) => (
|
|
1142
|
+
<MenuToggle
|
|
1143
|
+
ref={toggleRef}
|
|
1144
|
+
id="toggle-id-6"
|
|
1145
|
+
aria-label="Notification drawer actions"
|
|
1146
|
+
variant="plain"
|
|
1147
|
+
onClick={() => this.onToggle('toggle-id-6')}
|
|
1148
|
+
isExpanded={isActionsMenuOpen['toggle-id-6'] || false}
|
|
1149
|
+
>
|
|
1150
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
1151
|
+
</MenuToggle>
|
|
1152
|
+
)}
|
|
1153
|
+
>
|
|
1154
|
+
<DropdownList>{notificationDrawerDropdownItems}</DropdownList>
|
|
1155
|
+
</Dropdown>
|
|
1066
1156
|
</NotificationDrawerListItemHeader>
|
|
1067
1157
|
<NotificationDrawerListItemBody timestamp="10 minutes ago">
|
|
1068
1158
|
This is a danger notification description. This is a long description to show how the title will
|
|
@@ -1079,20 +1169,27 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
1079
1169
|
title="Read warning notification title"
|
|
1080
1170
|
srTitle="Warning notification:"
|
|
1081
1171
|
>
|
|
1082
|
-
<
|
|
1083
|
-
position={DropdownPosition.right}
|
|
1172
|
+
<Dropdown
|
|
1084
1173
|
onSelect={this.onSelect}
|
|
1085
|
-
|
|
1086
|
-
<KebabToggle
|
|
1087
|
-
onToggle={(_event, isOpen) => this.onToggle('toggle-id-7', isOpen)}
|
|
1088
|
-
id="toggle-id-7"
|
|
1089
|
-
/>
|
|
1090
|
-
}
|
|
1091
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-7']}
|
|
1092
|
-
isPlain
|
|
1093
|
-
dropdownItems={notificationDrawerDropdownItems}
|
|
1174
|
+
isOpen={isActionsMenuOpen['toggle-id-7'] || false}
|
|
1094
1175
|
id="notification-7"
|
|
1095
|
-
|
|
1176
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
1177
|
+
popperProps={{ position: 'right' }}
|
|
1178
|
+
toggle={(toggleRef) => (
|
|
1179
|
+
<MenuToggle
|
|
1180
|
+
ref={toggleRef}
|
|
1181
|
+
id="toggle-id-7"
|
|
1182
|
+
aria-label="Notification drawer actions"
|
|
1183
|
+
variant="plain"
|
|
1184
|
+
onClick={() => this.onToggle('toggle-id-7')}
|
|
1185
|
+
isExpanded={isActionsMenuOpen['toggle-id-7'] || false}
|
|
1186
|
+
>
|
|
1187
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
1188
|
+
</MenuToggle>
|
|
1189
|
+
)}
|
|
1190
|
+
>
|
|
1191
|
+
<DropdownList>{notificationDrawerDropdownItems}</DropdownList>
|
|
1192
|
+
</Dropdown>
|
|
1096
1193
|
</NotificationDrawerListItemHeader>
|
|
1097
1194
|
<NotificationDrawerListItemBody timestamp="20 minutes ago">
|
|
1098
1195
|
This is a warning notification description.
|
|
@@ -1108,21 +1205,27 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
1108
1205
|
title="Read success notification title"
|
|
1109
1206
|
srTitle="Success notification:"
|
|
1110
1207
|
>
|
|
1111
|
-
<
|
|
1112
|
-
position={DropdownPosition.right}
|
|
1113
|
-
direction={DropdownDirection.up}
|
|
1208
|
+
<Dropdown
|
|
1114
1209
|
onSelect={this.onSelect}
|
|
1115
|
-
|
|
1116
|
-
<KebabToggle
|
|
1117
|
-
onToggle={(_event, isOpen) => this.onToggle('toggle-id-8', isOpen)}
|
|
1118
|
-
id="toggle-id-8"
|
|
1119
|
-
/>
|
|
1120
|
-
}
|
|
1121
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-8']}
|
|
1122
|
-
isPlain
|
|
1123
|
-
dropdownItems={notificationDrawerDropdownItems}
|
|
1210
|
+
isOpen={isActionsMenuOpen['toggle-id-8'] || false}
|
|
1124
1211
|
id="notification-8"
|
|
1125
|
-
|
|
1212
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
1213
|
+
popperProps={{ position: 'right' }}
|
|
1214
|
+
toggle={(toggleRef) => (
|
|
1215
|
+
<MenuToggle
|
|
1216
|
+
ref={toggleRef}
|
|
1217
|
+
id="toggle-id-8"
|
|
1218
|
+
aria-label="Notification drawer actions"
|
|
1219
|
+
variant="plain"
|
|
1220
|
+
onClick={() => this.onToggle('toggle-id-8')}
|
|
1221
|
+
isExpanded={isActionsMenuOpen['toggle-id-8'] || false}
|
|
1222
|
+
>
|
|
1223
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
1224
|
+
</MenuToggle>
|
|
1225
|
+
)}
|
|
1226
|
+
>
|
|
1227
|
+
<DropdownList>{notificationDrawerDropdownItems}</DropdownList>
|
|
1228
|
+
</Dropdown>
|
|
1126
1229
|
</NotificationDrawerListItemHeader>
|
|
1127
1230
|
<NotificationDrawerListItemBody timestamp="30 minutes ago">
|
|
1128
1231
|
This is a success notification description.
|
|
@@ -1147,20 +1250,27 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
1147
1250
|
title="Unread info notification title"
|
|
1148
1251
|
srTitle="Info notification:"
|
|
1149
1252
|
>
|
|
1150
|
-
<
|
|
1151
|
-
position={DropdownPosition.right}
|
|
1253
|
+
<Dropdown
|
|
1152
1254
|
onSelect={this.onSelect}
|
|
1153
|
-
|
|
1154
|
-
<KebabToggle
|
|
1155
|
-
onToggle={(_event, isOpen) => this.onToggle('toggle-id-9', isOpen)}
|
|
1156
|
-
id="toggle-id-9"
|
|
1157
|
-
/>
|
|
1158
|
-
}
|
|
1159
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-9']}
|
|
1160
|
-
isPlain
|
|
1161
|
-
dropdownItems={notificationDrawerDropdownItems}
|
|
1255
|
+
isOpen={isActionsMenuOpen['toggle-id-9'] || false}
|
|
1162
1256
|
id="notification-9"
|
|
1163
|
-
|
|
1257
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
1258
|
+
popperProps={{ position: 'right' }}
|
|
1259
|
+
toggle={(toggleRef) => (
|
|
1260
|
+
<MenuToggle
|
|
1261
|
+
ref={toggleRef}
|
|
1262
|
+
id="toggle-id-9"
|
|
1263
|
+
aria-label="Notification drawer actions"
|
|
1264
|
+
variant="plain"
|
|
1265
|
+
onClick={() => this.onToggle('toggle-id-9')}
|
|
1266
|
+
isExpanded={isActionsMenuOpen['toggle-id-9'] || false}
|
|
1267
|
+
>
|
|
1268
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
1269
|
+
</MenuToggle>
|
|
1270
|
+
)}
|
|
1271
|
+
>
|
|
1272
|
+
<DropdownList>{notificationDrawerDropdownItems}</DropdownList>
|
|
1273
|
+
</Dropdown>
|
|
1164
1274
|
</NotificationDrawerListItemHeader>
|
|
1165
1275
|
<NotificationDrawerListItemBody timestamp="5 minutes ago">
|
|
1166
1276
|
This is an info notification description.
|
|
@@ -1176,20 +1286,27 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
1176
1286
|
title="Unread danger notification title. This is a long title to show how the title will wrap if it is long and wraps to multiple lines."
|
|
1177
1287
|
srTitle="Danger notification:"
|
|
1178
1288
|
>
|
|
1179
|
-
<
|
|
1180
|
-
position={DropdownPosition.right}
|
|
1289
|
+
<Dropdown
|
|
1181
1290
|
onSelect={this.onSelect}
|
|
1182
|
-
|
|
1183
|
-
<KebabToggle
|
|
1184
|
-
onToggle={(_event, isOpen) => this.onToggle('toggle-id-10', isOpen)}
|
|
1185
|
-
id="toggle-id-10"
|
|
1186
|
-
/>
|
|
1187
|
-
}
|
|
1188
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-10']}
|
|
1189
|
-
isPlain
|
|
1190
|
-
dropdownItems={notificationDrawerDropdownItems}
|
|
1291
|
+
isOpen={isActionsMenuOpen['toggle-id-10'] || false}
|
|
1191
1292
|
id="notification-10"
|
|
1192
|
-
|
|
1293
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
1294
|
+
popperProps={{ position: 'right' }}
|
|
1295
|
+
toggle={(toggleRef) => (
|
|
1296
|
+
<MenuToggle
|
|
1297
|
+
ref={toggleRef}
|
|
1298
|
+
id="toggle-id-10"
|
|
1299
|
+
aria-label="Notification drawer actions"
|
|
1300
|
+
variant="plain"
|
|
1301
|
+
onClick={() => this.onToggle('toggle-id-10')}
|
|
1302
|
+
isExpanded={isActionsMenuOpen['toggle-id-10'] || false}
|
|
1303
|
+
>
|
|
1304
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
1305
|
+
</MenuToggle>
|
|
1306
|
+
)}
|
|
1307
|
+
>
|
|
1308
|
+
<DropdownList>{notificationDrawerDropdownItems}</DropdownList>
|
|
1309
|
+
</Dropdown>
|
|
1193
1310
|
</NotificationDrawerListItemHeader>
|
|
1194
1311
|
<NotificationDrawerListItemBody timestamp="10 minutes ago">
|
|
1195
1312
|
This is a danger notification description. This is a long description to show how the title will
|
|
@@ -1206,20 +1323,27 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
1206
1323
|
title="Read warning notification title"
|
|
1207
1324
|
srTitle="Warning notification:"
|
|
1208
1325
|
>
|
|
1209
|
-
<
|
|
1210
|
-
position={DropdownPosition.right}
|
|
1326
|
+
<Dropdown
|
|
1211
1327
|
onSelect={this.onSelect}
|
|
1212
|
-
|
|
1213
|
-
<KebabToggle
|
|
1214
|
-
onToggle={(_event, isOpen) => this.onToggle('toggle-id-11', isOpen)}
|
|
1215
|
-
id="toggle-id-11"
|
|
1216
|
-
/>
|
|
1217
|
-
}
|
|
1218
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-11']}
|
|
1219
|
-
isPlain
|
|
1220
|
-
dropdownItems={notificationDrawerDropdownItems}
|
|
1328
|
+
isOpen={isActionsMenuOpen['toggle-id-11'] || false}
|
|
1221
1329
|
id="notification-11"
|
|
1222
|
-
|
|
1330
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
1331
|
+
popperProps={{ position: 'right' }}
|
|
1332
|
+
toggle={(toggleRef) => (
|
|
1333
|
+
<MenuToggle
|
|
1334
|
+
ref={toggleRef}
|
|
1335
|
+
id="toggle-id-11"
|
|
1336
|
+
aria-label="Notification drawer actions"
|
|
1337
|
+
variant="plain"
|
|
1338
|
+
onClick={() => this.onToggle('toggle-id-11')}
|
|
1339
|
+
isExpanded={isActionsMenuOpen['toggle-id-11'] || false}
|
|
1340
|
+
>
|
|
1341
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
1342
|
+
</MenuToggle>
|
|
1343
|
+
)}
|
|
1344
|
+
>
|
|
1345
|
+
<DropdownList>{notificationDrawerDropdownItems}</DropdownList>
|
|
1346
|
+
</Dropdown>
|
|
1223
1347
|
</NotificationDrawerListItemHeader>
|
|
1224
1348
|
<NotificationDrawerListItemBody timestamp="20 minutes ago">
|
|
1225
1349
|
This is a warning notification description.
|
|
@@ -1235,21 +1359,27 @@ class GroupedNotificationDrawer extends React.Component {
|
|
|
1235
1359
|
title="Read success notification title"
|
|
1236
1360
|
srTitle="Success notification:"
|
|
1237
1361
|
>
|
|
1238
|
-
<
|
|
1239
|
-
position={DropdownPosition.right}
|
|
1240
|
-
direction={DropdownDirection.up}
|
|
1362
|
+
<Dropdown
|
|
1241
1363
|
onSelect={this.onSelect}
|
|
1242
|
-
|
|
1243
|
-
<KebabToggle
|
|
1244
|
-
onToggle={(_event, isOpen) => this.onToggle('toggle-id-12', isOpen)}
|
|
1245
|
-
id="toggle-id-12"
|
|
1246
|
-
/>
|
|
1247
|
-
}
|
|
1248
|
-
isOpen={isActionsMenuOpen && isActionsMenuOpen['toggle-id-12']}
|
|
1249
|
-
isPlain
|
|
1250
|
-
dropdownItems={notificationDrawerDropdownItems}
|
|
1364
|
+
isOpen={isActionsMenuOpen['toggle-id-12'] || false}
|
|
1251
1365
|
id="notification-12"
|
|
1252
|
-
|
|
1366
|
+
onOpenChange={(isOpen) => !isOpen && this.setState({ isActionsMenuOpen: {} })}
|
|
1367
|
+
popperProps={{ position: 'right' }}
|
|
1368
|
+
toggle={(toggleRef) => (
|
|
1369
|
+
<MenuToggle
|
|
1370
|
+
ref={toggleRef}
|
|
1371
|
+
id="toggle-id-12"
|
|
1372
|
+
aria-label="Notification drawer actions"
|
|
1373
|
+
variant="plain"
|
|
1374
|
+
onClick={() => this.onToggle('toggle-id-12')}
|
|
1375
|
+
isExpanded={isActionsMenuOpen['toggle-id-12'] || false}
|
|
1376
|
+
>
|
|
1377
|
+
<EllipsisVIcon aria-hidden="true" />
|
|
1378
|
+
</MenuToggle>
|
|
1379
|
+
)}
|
|
1380
|
+
>
|
|
1381
|
+
<DropdownList>{notificationDrawerDropdownItems}</DropdownList>
|
|
1382
|
+
</Dropdown>
|
|
1253
1383
|
</NotificationDrawerListItemHeader>
|
|
1254
1384
|
<NotificationDrawerListItemBody timestamp="30 minutes ago">
|
|
1255
1385
|
This is a success notification description.
|