@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
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Modal, ModalVariant, Button } from '@patternfly/react-core';
|
|
3
2
|
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
Modal,
|
|
4
|
+
ModalVariant,
|
|
5
|
+
Button,
|
|
6
|
+
Dropdown,
|
|
7
|
+
DropdownList,
|
|
8
|
+
DropdownItem,
|
|
9
|
+
MenuToggle,
|
|
10
|
+
MenuToggleElement
|
|
11
|
+
} from '@patternfly/react-core';
|
|
9
12
|
|
|
10
13
|
export const ModalWithDropdown: React.FunctionComponent = () => {
|
|
11
14
|
const [isModalOpen, setIsModalOpen] = React.useState(false);
|
|
@@ -16,8 +19,8 @@ export const ModalWithDropdown: React.FunctionComponent = () => {
|
|
|
16
19
|
setIsDropdownOpen(false);
|
|
17
20
|
};
|
|
18
21
|
|
|
19
|
-
const handleDropdownToggle = (
|
|
20
|
-
setIsDropdownOpen(isDropdownOpen);
|
|
22
|
+
const handleDropdownToggle = () => {
|
|
23
|
+
setIsDropdownOpen(!isDropdownOpen);
|
|
21
24
|
};
|
|
22
25
|
|
|
23
26
|
const onSelect = () => {
|
|
@@ -39,19 +42,6 @@ export const ModalWithDropdown: React.FunctionComponent = () => {
|
|
|
39
42
|
}
|
|
40
43
|
};
|
|
41
44
|
|
|
42
|
-
const dropdownItems = [
|
|
43
|
-
<DropdownItemDeprecated key="link">Link</DropdownItemDeprecated>,
|
|
44
|
-
<DropdownItemDeprecated key="action" component="button">
|
|
45
|
-
Action
|
|
46
|
-
</DropdownItemDeprecated>,
|
|
47
|
-
<DropdownItemDeprecated key="disabled link" isDisabled>
|
|
48
|
-
Disabled Link
|
|
49
|
-
</DropdownItemDeprecated>,
|
|
50
|
-
<DropdownItemDeprecated key="disabled action" isDisabled component="button">
|
|
51
|
-
Disabled Action
|
|
52
|
-
</DropdownItemDeprecated>
|
|
53
|
-
];
|
|
54
|
-
|
|
55
45
|
return (
|
|
56
46
|
<React.Fragment>
|
|
57
47
|
<Button variant="primary" onClick={handleModalToggle}>
|
|
@@ -80,21 +70,37 @@ export const ModalWithDropdown: React.FunctionComponent = () => {
|
|
|
80
70
|
</div>
|
|
81
71
|
<br />
|
|
82
72
|
<div>
|
|
83
|
-
<
|
|
73
|
+
<Dropdown
|
|
74
|
+
isOpen={isDropdownOpen}
|
|
84
75
|
onSelect={onSelect}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
76
|
+
onOpenChange={(isOpen: boolean) => setIsDropdownOpen(isOpen)}
|
|
77
|
+
toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
|
|
78
|
+
<MenuToggle ref={toggleRef} onClick={handleDropdownToggle} isExpanded={isDropdownOpen}>
|
|
79
|
+
Dropdown
|
|
80
|
+
</MenuToggle>
|
|
81
|
+
)}
|
|
82
|
+
>
|
|
83
|
+
<DropdownList>
|
|
84
|
+
<DropdownItem itemId={0} key="action">
|
|
85
|
+
Action
|
|
86
|
+
</DropdownItem>
|
|
87
|
+
<DropdownItem
|
|
88
|
+
itemId={1}
|
|
89
|
+
key="link"
|
|
90
|
+
to="#default-link2"
|
|
91
|
+
// Prevent the default onClick functionality for example purposes
|
|
92
|
+
onClick={(ev: any) => ev.preventDefault()}
|
|
90
93
|
>
|
|
91
|
-
|
|
92
|
-
</
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
94
|
+
Link
|
|
95
|
+
</DropdownItem>
|
|
96
|
+
<DropdownItem itemId={2} isDisabled key="disabled action">
|
|
97
|
+
Disabled Action
|
|
98
|
+
</DropdownItem>
|
|
99
|
+
<DropdownItem itemId={3} isDisabled key="disabled link" to="#default-link4">
|
|
100
|
+
Disabled Link
|
|
101
|
+
</DropdownItem>
|
|
102
|
+
</DropdownList>
|
|
103
|
+
</Dropdown>
|
|
98
104
|
</div>
|
|
99
105
|
</Modal>
|
|
100
106
|
</React.Fragment>
|
|
@@ -4,12 +4,11 @@ import { css } from '@patternfly/react-styles';
|
|
|
4
4
|
import { getOUIAProps, OUIAProps, getDefaultOUIAId } from '../../helpers';
|
|
5
5
|
|
|
6
6
|
export type NavSelectClickHandler = (
|
|
7
|
-
|
|
7
|
+
event: React.FormEvent<HTMLInputElement>,
|
|
8
8
|
itemId: number | string,
|
|
9
9
|
groupId: number | string,
|
|
10
10
|
to: string
|
|
11
11
|
) => void;
|
|
12
|
-
|
|
13
12
|
export interface NavProps
|
|
14
13
|
extends Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, 'onSelect'>,
|
|
15
14
|
OUIAProps {
|
|
@@ -18,18 +17,22 @@ export interface NavProps
|
|
|
18
17
|
/** Additional classes added to the container */
|
|
19
18
|
className?: string;
|
|
20
19
|
/** Callback for updating when item selection changes */
|
|
21
|
-
onSelect?: (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
onSelect?: (
|
|
21
|
+
event: React.FormEvent<HTMLInputElement>,
|
|
22
|
+
selectedItem: {
|
|
23
|
+
groupId: number | string;
|
|
24
|
+
itemId: number | string;
|
|
25
|
+
to: string;
|
|
26
|
+
}
|
|
27
|
+
) => void;
|
|
27
28
|
/** Callback for when a list is expanded or collapsed */
|
|
28
|
-
onToggle?: (
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
onToggle?: (
|
|
30
|
+
event: React.MouseEvent<HTMLButtonElement>,
|
|
31
|
+
toggledItem: {
|
|
32
|
+
groupId: number | string;
|
|
33
|
+
isExpanded: boolean;
|
|
34
|
+
}
|
|
35
|
+
) => void;
|
|
33
36
|
/** Accessible label for the nav when there are multiple navs on the page */
|
|
34
37
|
'aria-label'?: string;
|
|
35
38
|
/** Indicates which theme color to use */
|
|
@@ -49,12 +52,7 @@ export interface NavContextProps {
|
|
|
49
52
|
itemId: number | string,
|
|
50
53
|
to: string,
|
|
51
54
|
preventDefault: boolean,
|
|
52
|
-
onClick:
|
|
53
|
-
e: React.FormEvent<HTMLInputElement>,
|
|
54
|
-
itemId: number | string,
|
|
55
|
-
groupId: number | string,
|
|
56
|
-
to: string
|
|
57
|
-
) => void
|
|
55
|
+
onClick: NavSelectClickHandler
|
|
58
56
|
) => void;
|
|
59
57
|
onToggle?: (event: React.MouseEvent<HTMLButtonElement>, groupId: number | string, expanded: boolean) => void;
|
|
60
58
|
updateIsScrollable?: (isScrollable: boolean) => void;
|
|
@@ -99,7 +97,7 @@ export class Nav extends React.Component<
|
|
|
99
97
|
event.preventDefault();
|
|
100
98
|
}
|
|
101
99
|
|
|
102
|
-
this.props.onSelect({ groupId, itemId,
|
|
100
|
+
this.props.onSelect(event, { groupId, itemId, to });
|
|
103
101
|
|
|
104
102
|
if (onClick) {
|
|
105
103
|
onClick(event, itemId, groupId, to);
|
|
@@ -108,8 +106,7 @@ export class Nav extends React.Component<
|
|
|
108
106
|
|
|
109
107
|
// Callback from NavExpandable
|
|
110
108
|
onToggle(event: React.MouseEvent<HTMLButtonElement>, groupId: number | string, toggleValue: boolean) {
|
|
111
|
-
this.props.onToggle({
|
|
112
|
-
event,
|
|
109
|
+
this.props.onToggle(event, {
|
|
113
110
|
groupId,
|
|
114
111
|
isExpanded: toggleValue
|
|
115
112
|
});
|
|
@@ -153,7 +150,7 @@ export class Nav extends React.Component<
|
|
|
153
150
|
updateIsScrollable: (isScrollable: boolean) => this.setState({ isScrollable }),
|
|
154
151
|
isHorizontal: ['horizontal', 'tertiary', 'horizontal-subnav'].includes(variant),
|
|
155
152
|
flyoutRef: this.state.flyoutRef,
|
|
156
|
-
setFlyoutRef: flyoutRef => this.setState({ flyoutRef }),
|
|
153
|
+
setFlyoutRef: (flyoutRef) => this.setState({ flyoutRef }),
|
|
157
154
|
navRef: this.navRef
|
|
158
155
|
}}
|
|
159
156
|
>
|
|
@@ -13,6 +13,7 @@ import './nav.css';
|
|
|
13
13
|
### Default
|
|
14
14
|
|
|
15
15
|
```ts file="./NavDefault.tsx"
|
|
16
|
+
|
|
16
17
|
```
|
|
17
18
|
|
|
18
19
|
### Grouped
|
|
@@ -20,31 +21,37 @@ import './nav.css';
|
|
|
20
21
|
The following example shows two navigation groups, each with a `title` prop passed into the nav group component. To keep nav groups accessible an `aria-label` must be passed in if the `title` prop is not passed in.
|
|
21
22
|
|
|
22
23
|
```ts file="./NavGrouped.tsx"
|
|
24
|
+
|
|
23
25
|
```
|
|
24
26
|
|
|
25
27
|
### Expandable
|
|
26
28
|
|
|
27
29
|
```ts file="./NavExpandable.tsx"
|
|
30
|
+
|
|
28
31
|
```
|
|
29
32
|
|
|
30
33
|
### Expandable third level
|
|
31
34
|
|
|
32
35
|
```ts file="./NavExpandableThirdLevel.tsx"
|
|
36
|
+
|
|
33
37
|
```
|
|
34
38
|
|
|
35
39
|
### Mixed
|
|
36
40
|
|
|
37
41
|
```ts file="./NavMixed.tsx"
|
|
42
|
+
|
|
38
43
|
```
|
|
39
44
|
|
|
40
45
|
### Horizontal subnav
|
|
41
46
|
|
|
42
47
|
```ts file="./NavHorizontalSubNav.tsx"
|
|
48
|
+
|
|
43
49
|
```
|
|
44
50
|
|
|
45
51
|
### Legacy tertiary
|
|
46
52
|
|
|
47
53
|
```ts file="./NavLegacyTertiary.tsx"
|
|
54
|
+
|
|
48
55
|
```
|
|
49
56
|
|
|
50
57
|
### Flyout
|
|
@@ -52,9 +59,26 @@ The following example shows two navigation groups, each with a `title` prop pass
|
|
|
52
59
|
A flyout should be a `Menu` component. Press `space` or `right arrow` to open a flyout using the keyboard, use the arrow keys to navigate between flyout items, and press `escape` or `left arrow` to close a flyout.
|
|
53
60
|
|
|
54
61
|
```ts file="./NavFlyout.tsx" isBeta
|
|
62
|
+
|
|
55
63
|
```
|
|
56
64
|
|
|
57
65
|
### Drilldown
|
|
58
66
|
|
|
59
67
|
```ts isBeta file="./NavDrilldown.tsx"
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Types
|
|
72
|
+
|
|
73
|
+
### NavSelectClickHandler
|
|
74
|
+
|
|
75
|
+
The NavItem `onClick` prop accepts the `NavSelectClickHandler` type, which is made up of the following argument and return types:
|
|
76
|
+
|
|
77
|
+
```noLive
|
|
78
|
+
(
|
|
79
|
+
event: React.FormEvent<HTMLInputElement>,
|
|
80
|
+
itemId: number | string,
|
|
81
|
+
groupId: number | string,
|
|
82
|
+
to: string
|
|
83
|
+
) => void;
|
|
60
84
|
```
|
|
@@ -4,7 +4,7 @@ import { Nav, NavItem, NavList } from '@patternfly/react-core';
|
|
|
4
4
|
export const NavDefault: React.FunctionComponent = () => {
|
|
5
5
|
const [activeItem, setActiveItem] = React.useState(0);
|
|
6
6
|
|
|
7
|
-
const onSelect = (result: { itemId: number | string }) => {
|
|
7
|
+
const onSelect = (_event: React.FormEvent<HTMLInputElement>, result: { itemId: number | string }) => {
|
|
8
8
|
setActiveItem(result.itemId as number);
|
|
9
9
|
};
|
|
10
10
|
|
|
@@ -5,12 +5,18 @@ export const NavExpandableExample: React.FunctionComponent = () => {
|
|
|
5
5
|
const [activeGroup, setActiveGroup] = React.useState('nav-expandable-group-1');
|
|
6
6
|
const [activeItem, setActiveItem] = React.useState('nav-expandable-group-1_item-1');
|
|
7
7
|
|
|
8
|
-
const onSelect = (
|
|
8
|
+
const onSelect = (
|
|
9
|
+
_event: React.FormEvent<HTMLInputElement>,
|
|
10
|
+
result: { itemId: number | string; groupId: number | string }
|
|
11
|
+
) => {
|
|
9
12
|
setActiveGroup(result.groupId as string);
|
|
10
13
|
setActiveItem(result.itemId as string);
|
|
11
14
|
};
|
|
12
15
|
|
|
13
|
-
const onToggle = (
|
|
16
|
+
const onToggle = (
|
|
17
|
+
_event: React.MouseEvent<HTMLButtonElement>,
|
|
18
|
+
result: { groupId: number | string; isExpanded: boolean }
|
|
19
|
+
) => {
|
|
14
20
|
// eslint-disable-next-line no-console
|
|
15
21
|
console.log(`Group ${result.groupId} expanded? ${result.isExpanded}`);
|
|
16
22
|
};
|
|
@@ -5,12 +5,18 @@ export const NavExpandableThirdLevel: React.FunctionComponent = () => {
|
|
|
5
5
|
const [activeGroup, setActiveGroup] = React.useState('nav-expand3rd-group-1');
|
|
6
6
|
const [activeItem, setActiveItem] = React.useState('nav-expand3rd-group-1_item-1');
|
|
7
7
|
|
|
8
|
-
const onSelect = (
|
|
8
|
+
const onSelect = (
|
|
9
|
+
_event: React.FormEvent<HTMLInputElement>,
|
|
10
|
+
result: { itemId: number | string; groupId: number | string }
|
|
11
|
+
) => {
|
|
9
12
|
setActiveGroup(result.groupId as string);
|
|
10
13
|
setActiveItem(result.itemId as string);
|
|
11
14
|
};
|
|
12
15
|
|
|
13
|
-
const onToggle = (
|
|
16
|
+
const onToggle = (
|
|
17
|
+
_event: React.MouseEvent<HTMLButtonElement>,
|
|
18
|
+
result: { groupId: number | string; isExpanded: boolean }
|
|
19
|
+
) => {
|
|
14
20
|
// eslint-disable-next-line no-console
|
|
15
21
|
console.log(`Group ${result.groupId} expanded? ${result.isExpanded}`);
|
|
16
22
|
};
|
|
@@ -4,7 +4,7 @@ import { Nav, NavItem, NavList, Menu, MenuContent, MenuList, MenuItem } from '@p
|
|
|
4
4
|
export const NavFlyout: React.FunctionComponent = () => {
|
|
5
5
|
const [activeItem, setActiveItem] = React.useState('nav-flyout-default-link-1');
|
|
6
6
|
|
|
7
|
-
const onSelect = (result: { itemId: number | string }) => {
|
|
7
|
+
const onSelect = (event: React.FormEvent<HTMLInputElement>, result: { itemId: number | string }) => {
|
|
8
8
|
setActiveItem(result.itemId as string);
|
|
9
9
|
};
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@ import { Nav, NavItem, NavGroup } from '@patternfly/react-core';
|
|
|
4
4
|
export const NavGrouped: React.FunctionComponent = () => {
|
|
5
5
|
const [activeItem, setActiveItem] = React.useState('group-1_item-1');
|
|
6
6
|
|
|
7
|
-
const onSelect = (result: { itemId: number | string }) => {
|
|
7
|
+
const onSelect = (_event: React.FormEvent<HTMLInputElement>, result: { itemId: number | string }) => {
|
|
8
8
|
setActiveItem(result.itemId as string);
|
|
9
9
|
};
|
|
10
10
|
|
|
@@ -4,14 +4,14 @@ import { Nav, NavItem, NavList } from '@patternfly/react-core';
|
|
|
4
4
|
export const NavHorizontalSubNav: React.FunctionComponent = () => {
|
|
5
5
|
const [activeItem, setActiveItem] = React.useState(0);
|
|
6
6
|
|
|
7
|
-
const onSelect = (result: { itemId: number | string }) => {
|
|
7
|
+
const onSelect = (_event: React.FormEvent<HTMLInputElement>, result: { itemId: number | string }) => {
|
|
8
8
|
setActiveItem(result.itemId as number);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
return (
|
|
12
12
|
<Nav onSelect={onSelect} variant="horizontal-subnav" aria-label="Horizontal subnav local">
|
|
13
13
|
<NavList>
|
|
14
|
-
{Array.apply(0, Array(10)).map(function(_item, index: number) {
|
|
14
|
+
{Array.apply(0, Array(10)).map(function (_item, index: number) {
|
|
15
15
|
const num = index + 1;
|
|
16
16
|
return (
|
|
17
17
|
<NavItem
|
|
@@ -4,14 +4,14 @@ import { Nav, NavItem, NavList } from '@patternfly/react-core';
|
|
|
4
4
|
export const NavLegacyTertiary: React.FunctionComponent = () => {
|
|
5
5
|
const [activeItem, setActiveItem] = React.useState(0);
|
|
6
6
|
|
|
7
|
-
const onSelect = (result: { itemId: number | string }) => {
|
|
7
|
+
const onSelect = (_event: React.FormEvent<HTMLInputElement>, result: { itemId: number | string }) => {
|
|
8
8
|
setActiveItem(result.itemId as number);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
return (
|
|
12
12
|
<Nav onSelect={onSelect} variant="tertiary" aria-label="Tertiary local">
|
|
13
13
|
<NavList>
|
|
14
|
-
{Array.apply(0, Array(10)).map(function(_item, index: number) {
|
|
14
|
+
{Array.apply(0, Array(10)).map(function (_item, index: number) {
|
|
15
15
|
const num = index + 1;
|
|
16
16
|
return (
|
|
17
17
|
<NavItem
|
|
@@ -5,7 +5,10 @@ export const NavMixed: React.FunctionComponent = () => {
|
|
|
5
5
|
const [activeGroup, setActiveGroup] = React.useState('');
|
|
6
6
|
const [activeItem, setActiveItem] = React.useState('ungrouped_item-1');
|
|
7
7
|
|
|
8
|
-
const onSelect = (
|
|
8
|
+
const onSelect = (
|
|
9
|
+
_event: React.FormEvent<HTMLInputElement>,
|
|
10
|
+
result: { itemId: number | string; groupId: number | string | null }
|
|
11
|
+
) => {
|
|
9
12
|
setActiveGroup(result.groupId as string);
|
|
10
13
|
setActiveItem(result.itemId as string);
|
|
11
14
|
};
|
|
@@ -16,15 +16,8 @@ propComponents:
|
|
|
16
16
|
]
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
import {
|
|
20
|
-
Dropdown as DropdownDeprecated,
|
|
21
|
-
DropdownItem as DropdownItemDeprecated,
|
|
22
|
-
DropdownPosition,
|
|
23
|
-
DropdownDirection,
|
|
24
|
-
DropdownSeparator,
|
|
25
|
-
KebabToggle
|
|
26
|
-
} from '@patternfly/react-core/deprecated';
|
|
27
19
|
import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
|
|
20
|
+
import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
|
|
28
21
|
|
|
29
22
|
## Examples
|
|
30
23
|
|