@patternfly/react-core 4.236.7 → 4.236.10
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 +24 -0
- package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.d.ts +2 -0
- package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.d.ts.map +1 -1
- package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.js +4 -3
- package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.js.map +1 -1
- package/dist/esm/components/BackToTop/BackToTop.d.ts +1 -1
- package/dist/esm/components/ContextSelector/ContextSelector.d.ts +2 -0
- package/dist/esm/components/ContextSelector/ContextSelector.d.ts.map +1 -1
- package/dist/esm/components/ContextSelector/ContextSelector.js +4 -3
- package/dist/esm/components/ContextSelector/ContextSelector.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts +2 -0
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js +2 -2
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/Dropdown/DropdownWithContext.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/DropdownWithContext.js +2 -2
- package/dist/esm/components/Dropdown/DropdownWithContext.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControl.d.ts +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorListItem.d.ts +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.d.ts +1 -1
- package/dist/esm/components/Menu/MenuContent.d.ts +1 -1
- package/dist/esm/components/Menu/MenuGroup.d.ts +1 -1
- package/dist/esm/components/Menu/MenuInput.d.ts +1 -1
- package/dist/esm/components/Menu/MenuItem.d.ts +1 -1
- package/dist/esm/components/Nav/NavItem.d.ts +2 -0
- package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavItem.js +2 -2
- package/dist/esm/components/Nav/NavItem.js.map +1 -1
- package/dist/esm/components/NotificationDrawer/NotificationDrawer.d.ts +1 -1
- package/dist/esm/components/OptionsMenu/OptionsMenu.d.ts +2 -0
- package/dist/esm/components/OptionsMenu/OptionsMenu.d.ts.map +1 -1
- package/dist/esm/components/OptionsMenu/OptionsMenu.js +2 -2
- package/dist/esm/components/OptionsMenu/OptionsMenu.js.map +1 -1
- package/dist/esm/components/Panel/Panel.d.ts +1 -1
- package/dist/esm/components/Popover/Popover.d.ts +2 -0
- package/dist/esm/components/Popover/Popover.d.ts.map +1 -1
- package/dist/esm/components/Popover/Popover.js +2 -2
- package/dist/esm/components/Popover/Popover.js.map +1 -1
- package/dist/esm/components/Popover/PopoverCloseButton.d.ts.map +1 -1
- package/dist/esm/components/Popover/PopoverCloseButton.js +2 -11
- package/dist/esm/components/Popover/PopoverCloseButton.js.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.d.ts +2 -0
- package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.js +2 -2
- package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts +2 -0
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +4 -3
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Tabs/OverflowTab.d.ts +2 -0
- package/dist/esm/components/Tabs/OverflowTab.d.ts.map +1 -1
- package/dist/esm/components/Tabs/OverflowTab.js +2 -2
- package/dist/esm/components/Tabs/OverflowTab.js.map +1 -1
- package/dist/esm/components/Tabs/Tab.d.ts +1 -1
- package/dist/esm/components/TimePicker/TimePicker.d.ts +3 -0
- package/dist/esm/components/TimePicker/TimePicker.d.ts.map +1 -1
- package/dist/esm/components/TimePicker/TimePicker.js +5 -4
- package/dist/esm/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.d.ts +2 -0
- package/dist/esm/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js +2 -2
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/helpers/FocusTrap/FocusTrap.d.ts +5 -19
- package/dist/esm/helpers/FocusTrap/FocusTrap.d.ts.map +1 -1
- package/dist/esm/helpers/FocusTrap/FocusTrap.js +10 -6
- package/dist/esm/helpers/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/esm/helpers/Popper/Popper.d.ts +5 -0
- package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/esm/helpers/Popper/Popper.js +42 -7
- package/dist/esm/helpers/Popper/Popper.js.map +1 -1
- package/dist/js/components/ApplicationLauncher/ApplicationLauncher.d.ts +2 -0
- package/dist/js/components/ApplicationLauncher/ApplicationLauncher.d.ts.map +1 -1
- package/dist/js/components/ApplicationLauncher/ApplicationLauncher.js +4 -3
- package/dist/js/components/ApplicationLauncher/ApplicationLauncher.js.map +1 -1
- package/dist/js/components/BackToTop/BackToTop.d.ts +1 -1
- package/dist/js/components/ContextSelector/ContextSelector.d.ts +2 -0
- package/dist/js/components/ContextSelector/ContextSelector.d.ts.map +1 -1
- package/dist/js/components/ContextSelector/ContextSelector.js +4 -3
- package/dist/js/components/ContextSelector/ContextSelector.js.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts +2 -0
- package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.js +2 -2
- package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/components/Dropdown/DropdownWithContext.d.ts.map +1 -1
- package/dist/js/components/Dropdown/DropdownWithContext.js +2 -2
- package/dist/js/components/Dropdown/DropdownWithContext.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControl.d.ts +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorListItem.d.ts +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorListWrapper.d.ts +1 -1
- package/dist/js/components/Menu/MenuContent.d.ts +1 -1
- package/dist/js/components/Menu/MenuGroup.d.ts +1 -1
- package/dist/js/components/Menu/MenuInput.d.ts +1 -1
- package/dist/js/components/Menu/MenuItem.d.ts +1 -1
- package/dist/js/components/Nav/NavItem.d.ts +2 -0
- package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/js/components/Nav/NavItem.js +2 -2
- package/dist/js/components/Nav/NavItem.js.map +1 -1
- package/dist/js/components/NotificationDrawer/NotificationDrawer.d.ts +1 -1
- package/dist/js/components/OptionsMenu/OptionsMenu.d.ts +2 -0
- package/dist/js/components/OptionsMenu/OptionsMenu.d.ts.map +1 -1
- package/dist/js/components/OptionsMenu/OptionsMenu.js +2 -2
- package/dist/js/components/OptionsMenu/OptionsMenu.js.map +1 -1
- package/dist/js/components/Panel/Panel.d.ts +1 -1
- package/dist/js/components/Popover/Popover.d.ts +2 -0
- package/dist/js/components/Popover/Popover.d.ts.map +1 -1
- package/dist/js/components/Popover/Popover.js +2 -2
- package/dist/js/components/Popover/Popover.js.map +1 -1
- package/dist/js/components/Popover/PopoverCloseButton.d.ts.map +1 -1
- package/dist/js/components/Popover/PopoverCloseButton.js +2 -11
- package/dist/js/components/Popover/PopoverCloseButton.js.map +1 -1
- package/dist/js/components/SearchInput/SearchInput.d.ts +2 -0
- package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/js/components/SearchInput/SearchInput.js +2 -2
- package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/js/components/Select/Select.d.ts +2 -0
- package/dist/js/components/Select/Select.d.ts.map +1 -1
- package/dist/js/components/Select/Select.js +4 -3
- package/dist/js/components/Select/Select.js.map +1 -1
- package/dist/js/components/Tabs/OverflowTab.d.ts +2 -0
- package/dist/js/components/Tabs/OverflowTab.d.ts.map +1 -1
- package/dist/js/components/Tabs/OverflowTab.js +2 -2
- package/dist/js/components/Tabs/OverflowTab.js.map +1 -1
- package/dist/js/components/Tabs/Tab.d.ts +1 -1
- package/dist/js/components/TimePicker/TimePicker.d.ts +3 -0
- package/dist/js/components/TimePicker/TimePicker.d.ts.map +1 -1
- package/dist/js/components/TimePicker/TimePicker.js +5 -4
- package/dist/js/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/js/components/Tooltip/Tooltip.d.ts +2 -0
- package/dist/js/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/js/components/Tooltip/Tooltip.js +2 -2
- package/dist/js/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/js/helpers/FocusTrap/FocusTrap.d.ts +5 -19
- package/dist/js/helpers/FocusTrap/FocusTrap.d.ts.map +1 -1
- package/dist/js/helpers/FocusTrap/FocusTrap.js +10 -7
- package/dist/js/helpers/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/js/helpers/Popper/Popper.d.ts +5 -0
- package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/js/helpers/Popper/Popper.js +42 -7
- package/dist/js/helpers/Popper/Popper.js.map +1 -1
- package/dist/umd/react-core.min.css +1072 -1072
- package/dist/umd/react-core.min.js +5 -5
- package/package.json +5 -5
- package/src/components/AlertGroup/examples/AlertGroup.md +52 -15
- package/src/components/ApplicationLauncher/ApplicationLauncher.tsx +6 -1
- package/src/components/ApplicationLauncher/__tests__/ApplicationLauncher.test.tsx +10 -1
- package/src/components/ApplicationLauncher/__tests__/__snapshots__/ApplicationLauncher.test.tsx.snap +153 -7
- package/src/components/ContextSelector/ContextSelector.tsx +6 -1
- package/src/components/ContextSelector/__tests__/ContextSelector.test.tsx +18 -1
- package/src/components/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap +144 -0
- package/src/components/Dropdown/Dropdown.tsx +9 -1
- package/src/components/Dropdown/DropdownWithContext.tsx +2 -0
- package/src/components/Dropdown/__tests__/Dropdown.test.tsx +16 -0
- package/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +131 -7
- package/src/components/Nav/NavItem.tsx +4 -0
- package/src/components/Nav/__tests__/Nav.test.tsx +19 -0
- package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +111 -42
- package/src/components/OptionsMenu/OptionsMenu.tsx +4 -0
- package/src/components/OptionsMenu/__tests__/OptionsMenu.test.tsx +17 -0
- package/src/components/OptionsMenu/__tests__/__snapshots__/OptionsMenu.test.tsx.snap +216 -20
- package/src/components/Popover/Popover.tsx +4 -0
- package/src/components/Popover/PopoverCloseButton.tsx +6 -17
- package/src/components/Popover/__tests__/Popover.test.tsx +25 -0
- package/src/components/Popover/__tests__/__snapshots__/Popover.test.tsx.snap +10 -0
- package/src/components/SearchInput/SearchInput.tsx +4 -0
- package/src/components/SearchInput/__tests__/SearchInput.test.tsx +27 -1
- package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +130 -6
- package/src/components/Select/Select.tsx +6 -1
- package/src/components/Select/__tests__/Select.test.tsx +23 -7
- package/src/components/Select/__tests__/__snapshots__/Select.test.tsx.snap +152 -46
- package/src/components/Tabs/OverflowTab.tsx +4 -0
- package/src/components/Tabs/__tests__/OverflowTab.test.tsx +31 -7
- package/src/components/Tabs/__tests__/__snapshots__/OverflowTab.test.tsx.snap +89 -0
- package/src/components/TimePicker/TimePicker.tsx +6 -1
- package/src/components/TimePicker/__tests__/TimePicker.test.tsx +16 -1
- package/src/components/Tooltip/Tooltip.tsx +4 -0
- package/src/components/Tooltip/__tests__/Tooltip.test.tsx +21 -0
- package/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +10 -0
- package/src/helpers/FocusTrap/FocusTrap.tsx +21 -5
- package/src/helpers/Popper/Popper.tsx +54 -12
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "4.236.
|
|
3
|
+
"version": "4.236.10",
|
|
4
4
|
"description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
|
|
5
5
|
"main": "dist/js/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"generate": "node scripts/copyStyles.js"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@patternfly/react-icons": "^4.87.
|
|
48
|
-
"@patternfly/react-styles": "^4.86.
|
|
49
|
-
"@patternfly/react-tokens": "^4.88.
|
|
47
|
+
"@patternfly/react-icons": "^4.87.10",
|
|
48
|
+
"@patternfly/react-styles": "^4.86.10",
|
|
49
|
+
"@patternfly/react-tokens": "^4.88.10",
|
|
50
50
|
"focus-trap": "6.9.2",
|
|
51
51
|
"react-dropzone": "9.0.0",
|
|
52
52
|
"tippy.js": "5.1.2",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"react": "^16.8.0 || ^17.0.0",
|
|
71
71
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "fb205f92e45be059fa7d0d3fa636e101a66a46aa"
|
|
74
74
|
}
|
|
@@ -6,37 +6,74 @@ propComponents: ['Alert', 'AlertGroup', 'AlertActionCloseButton', 'AlertActionLi
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
## Examples
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
|
|
10
|
+
### Variants
|
|
11
|
+
|
|
12
|
+
Alert groups can be one of the following variants:
|
|
13
|
+
|
|
14
|
+
| Variant | Description |
|
|
15
|
+
| --- | --- |
|
|
16
|
+
| Static inline | Static inline alert groups contain alerts that appear when the page loads, and are seen within the normal page content flow. These groups should not contain alerts that will dynamically appear or update. |
|
|
17
|
+
| Toast | Toast alert groups contain alerts that typically appear in response to an asynchronous event or user action. These groups are positioned on top of other content at the top right of the page.|
|
|
18
|
+
| Dynamic | Dynamic alert groups contain alerts that typically appear in response to a user action, and are seen within the normal page content flow.|
|
|
19
|
+
|
|
20
|
+
Dynamic alerts that are generated after the page initially loads must be appended to either a toast or dynamic `AlertGroup`, both of which must use the `isLiveRegion` property. New alerts appended to a toast or dynamic group will be announced by assistive technologies the moment the change happens. For information about customizing this announcement, read the [aria-atomic and aria-relevant](/components/alert-group/accessibility#aria-atomic-and-aria-relevant) section of the alert group accessibility documentation.
|
|
21
|
+
|
|
22
|
+
### Static inline alert group
|
|
23
|
+
|
|
24
|
+
All alert group variants may combine multiple [alert variants](/components/alert) For example, the following static inline alert group includes one "success" alert and one "info" alert.
|
|
25
|
+
|
|
11
26
|
```ts file="./AlertGroupStatic.tsx"
|
|
12
27
|
```
|
|
13
28
|
|
|
14
29
|
### Toast alert group
|
|
15
|
-
|
|
30
|
+
|
|
31
|
+
Toast alert groups are created by passing in the `isToast` and `isLiveRegion` properties.
|
|
32
|
+
|
|
33
|
+
Click the buttons in the example below to add alerts to a toast group.
|
|
34
|
+
|
|
16
35
|
```ts file="./AlertGroupToast.tsx"
|
|
17
36
|
```
|
|
18
37
|
|
|
19
38
|
### Toast alert group with overflow capture
|
|
20
|
-
|
|
39
|
+
|
|
40
|
+
Users will see an overflow message once a predefined number of alerts are displayed. They will not see any alerts beyond the display limit, which must be explicitly set.
|
|
41
|
+
|
|
42
|
+
In the following example, an overflow message will appear when more than 4 alerts would be shown. When a 5th alert would appear, an overflow message is shown instead.
|
|
43
|
+
|
|
44
|
+
When an overflow message appears in an `AlertGroup` using the `isLiveRegion` property, the "view 1 more alert" text label will be announced, but the alert message will not.
|
|
45
|
+
|
|
46
|
+
Users navigating via keyboard or another assistive technology will need a way to navigate to and reveal hidden alerts before they disappear. Alternatively, there should be a place where notifications or alerts are collected to be viewed or read later.
|
|
47
|
+
|
|
21
48
|
```ts file="AlertGroupToastOverflowCapture.tsx" isBeta
|
|
22
49
|
```
|
|
23
50
|
|
|
24
|
-
###
|
|
25
|
-
|
|
51
|
+
### Asynchronous alert groups
|
|
52
|
+
|
|
53
|
+
The following example shows how alerts can be triggered by an asynchronous event in the application. You can customize how an alert will be announced to assistive technology by adjusting the value of the `aria-live` property. Click the "start async" alert button below and then click the buttons in the above toast examples to demonstrate how asynchronous events add alerts to a group. Click the "stop async alerts" button to halt this behavior.
|
|
54
|
+
|
|
55
|
+
See the [alert group accessibility tab](/components/alert-group/accessibility) for more information on customizing this behavior.
|
|
56
|
+
|
|
57
|
+
```ts file="./AlertGroupAsync.tsx"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Dynamic alert groups
|
|
61
|
+
|
|
62
|
+
Click the buttons in the example below to add dynamic alerts to a group.
|
|
63
|
+
|
|
26
64
|
```ts file="./AlertGroupSingularDynamic.tsx"
|
|
27
65
|
```
|
|
28
66
|
|
|
29
|
-
###
|
|
30
|
-
|
|
67
|
+
### Dynamic alert group with overflow message
|
|
68
|
+
|
|
69
|
+
In the following example, there can be a maximum of 4 alerts shown at once.
|
|
70
|
+
|
|
31
71
|
```ts file="AlertGroupSingularDynamicOverflow.tsx" isBeta
|
|
32
72
|
```
|
|
33
73
|
|
|
34
|
-
### Multiple dynamic alert
|
|
35
|
-
These alerts will appear in the page, most likely in response to a user action.
|
|
36
|
-
```ts file="./AlertGroupMultipleDynamic.tsx"
|
|
37
|
-
```
|
|
74
|
+
### Multiple dynamic alert groups
|
|
38
75
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
```ts file="./
|
|
76
|
+
You may add multiple alerts to an alert group at once. Click the "add alert collection" button in the example below to add a batch of 3 toast alerts to a group.
|
|
77
|
+
|
|
78
|
+
```ts file="./AlertGroupMultipleDynamic.tsx"
|
|
42
79
|
```
|
|
@@ -61,6 +61,8 @@ export interface ApplicationLauncherProps
|
|
|
61
61
|
favoritesLabel?: string;
|
|
62
62
|
/** ID of toggle */
|
|
63
63
|
toggleId?: string;
|
|
64
|
+
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
65
|
+
removeFindDomNode?: boolean;
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
export class ApplicationLauncher extends React.Component<ApplicationLauncherProps> {
|
|
@@ -83,7 +85,8 @@ export class ApplicationLauncher extends React.Component<ApplicationLauncherProp
|
|
|
83
85
|
searchPlaceholderText: 'Filter by name...',
|
|
84
86
|
searchNoResultsText: 'No results found',
|
|
85
87
|
favoritesLabel: 'Favorites',
|
|
86
|
-
menuAppendTo: 'inline'
|
|
88
|
+
menuAppendTo: 'inline',
|
|
89
|
+
removeFindDomNode: false
|
|
87
90
|
};
|
|
88
91
|
|
|
89
92
|
createSearchBox = () => {
|
|
@@ -129,6 +132,7 @@ export class ApplicationLauncher extends React.Component<ApplicationLauncherProp
|
|
|
129
132
|
favoritesLabel,
|
|
130
133
|
searchNoResultsText,
|
|
131
134
|
menuAppendTo,
|
|
135
|
+
removeFindDomNode,
|
|
132
136
|
...props
|
|
133
137
|
} = this.props;
|
|
134
138
|
let renderableItems: React.ReactNode[] = [];
|
|
@@ -189,6 +193,7 @@ export class ApplicationLauncher extends React.Component<ApplicationLauncherProp
|
|
|
189
193
|
className={className}
|
|
190
194
|
aria-label={ariaLabel}
|
|
191
195
|
menuAppendTo={menuAppendTo}
|
|
196
|
+
removeFindDomNode={removeFindDomNode}
|
|
192
197
|
toggle={
|
|
193
198
|
<DropdownToggle
|
|
194
199
|
id={toggleId}
|
|
@@ -55,8 +55,17 @@ describe('ApplicationLauncher', () => {
|
|
|
55
55
|
|
|
56
56
|
test('custom icon', () => {
|
|
57
57
|
const { asFragment } = render(
|
|
58
|
-
<
|
|
58
|
+
<React.StrictMode>
|
|
59
|
+
<ApplicationLauncher items={dropdownItems} isOpen toggleIcon={<HelpIcon id="test-icon" />} />
|
|
60
|
+
</React.StrictMode>
|
|
59
61
|
);
|
|
60
62
|
expect(asFragment()).toMatchSnapshot();
|
|
61
63
|
});
|
|
64
|
+
|
|
65
|
+
test('Renders in strict mode', () => {
|
|
66
|
+
const consoleError = jest.spyOn(console, 'error');
|
|
67
|
+
const { asFragment } = render(<ApplicationLauncher removeFindDomNode isOpen items={dropdownItems} />);
|
|
68
|
+
expect(consoleError).not.toHaveBeenCalled();
|
|
69
|
+
expect(asFragment()).toMatchSnapshot();
|
|
70
|
+
});
|
|
62
71
|
});
|
package/src/components/ApplicationLauncher/__tests__/__snapshots__/ApplicationLauncher.test.tsx.snap
CHANGED
|
@@ -1,5 +1,151 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`ApplicationLauncher Renders in strict mode 1`] = `
|
|
4
|
+
<DocumentFragment>
|
|
5
|
+
<nav
|
|
6
|
+
aria-label="Application launcher"
|
|
7
|
+
class="pf-c-app-launcher pf-m-expanded"
|
|
8
|
+
data-ouia-component-type="PF4/ApplicationLauncher"
|
|
9
|
+
data-ouia-safe="true"
|
|
10
|
+
>
|
|
11
|
+
<button
|
|
12
|
+
aria-expanded="true"
|
|
13
|
+
aria-haspopup="true"
|
|
14
|
+
aria-label="Application launcher"
|
|
15
|
+
class="pf-c-app-launcher__toggle"
|
|
16
|
+
data-ouia-component-id="OUIA-Generated-DropdownToggle-8"
|
|
17
|
+
data-ouia-component-type="PF4/DropdownToggle"
|
|
18
|
+
data-ouia-safe="true"
|
|
19
|
+
id="pf-dropdown-toggle-id-7"
|
|
20
|
+
type="button"
|
|
21
|
+
>
|
|
22
|
+
<span>
|
|
23
|
+
<svg
|
|
24
|
+
aria-hidden="true"
|
|
25
|
+
fill="currentColor"
|
|
26
|
+
height="1em"
|
|
27
|
+
role="img"
|
|
28
|
+
style="vertical-align: -0.125em;"
|
|
29
|
+
viewBox="0 0 512 512"
|
|
30
|
+
width="1em"
|
|
31
|
+
>
|
|
32
|
+
<path
|
|
33
|
+
d="M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"
|
|
34
|
+
/>
|
|
35
|
+
</svg>
|
|
36
|
+
</span>
|
|
37
|
+
</button>
|
|
38
|
+
<ul
|
|
39
|
+
aria-labelledby="pf-dropdown-toggle-id-7"
|
|
40
|
+
class="pf-c-app-launcher__menu"
|
|
41
|
+
role="menu"
|
|
42
|
+
>
|
|
43
|
+
<li
|
|
44
|
+
role="none"
|
|
45
|
+
>
|
|
46
|
+
<a
|
|
47
|
+
aria-disabled="false"
|
|
48
|
+
class="pf-c-app-launcher__menu-item"
|
|
49
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-19"
|
|
50
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
51
|
+
data-ouia-safe="true"
|
|
52
|
+
role="menuitem"
|
|
53
|
+
tabindex="-1"
|
|
54
|
+
>
|
|
55
|
+
Link
|
|
56
|
+
</a>
|
|
57
|
+
</li>
|
|
58
|
+
<li
|
|
59
|
+
role="none"
|
|
60
|
+
>
|
|
61
|
+
<button
|
|
62
|
+
aria-disabled="false"
|
|
63
|
+
class="pf-c-app-launcher__menu-item"
|
|
64
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-20"
|
|
65
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
66
|
+
data-ouia-safe="true"
|
|
67
|
+
role="menuitem"
|
|
68
|
+
tabindex="-1"
|
|
69
|
+
type="button"
|
|
70
|
+
>
|
|
71
|
+
Action
|
|
72
|
+
</button>
|
|
73
|
+
</li>
|
|
74
|
+
<li
|
|
75
|
+
role="none"
|
|
76
|
+
>
|
|
77
|
+
<a
|
|
78
|
+
aria-disabled="true"
|
|
79
|
+
class="pf-m-disabled pf-c-app-launcher__menu-item"
|
|
80
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-21"
|
|
81
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
82
|
+
data-ouia-safe="true"
|
|
83
|
+
role="menuitem"
|
|
84
|
+
tabindex="-1"
|
|
85
|
+
>
|
|
86
|
+
Disabled Link
|
|
87
|
+
</a>
|
|
88
|
+
</li>
|
|
89
|
+
<li
|
|
90
|
+
role="none"
|
|
91
|
+
>
|
|
92
|
+
<button
|
|
93
|
+
aria-disabled="true"
|
|
94
|
+
class="pf-m-disabled pf-c-app-launcher__menu-item"
|
|
95
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-22"
|
|
96
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
97
|
+
data-ouia-safe="true"
|
|
98
|
+
role="menuitem"
|
|
99
|
+
tabindex="-1"
|
|
100
|
+
type="button"
|
|
101
|
+
>
|
|
102
|
+
Disabled Action
|
|
103
|
+
</button>
|
|
104
|
+
</li>
|
|
105
|
+
<li
|
|
106
|
+
role="none"
|
|
107
|
+
>
|
|
108
|
+
<div
|
|
109
|
+
class="pf-c-divider"
|
|
110
|
+
role="separator"
|
|
111
|
+
/>
|
|
112
|
+
</li>
|
|
113
|
+
<li
|
|
114
|
+
role="none"
|
|
115
|
+
>
|
|
116
|
+
<a
|
|
117
|
+
aria-disabled="false"
|
|
118
|
+
class="pf-c-app-launcher__menu-item"
|
|
119
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-23"
|
|
120
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
121
|
+
data-ouia-safe="true"
|
|
122
|
+
role="menuitem"
|
|
123
|
+
tabindex="-1"
|
|
124
|
+
>
|
|
125
|
+
Separated Link
|
|
126
|
+
</a>
|
|
127
|
+
</li>
|
|
128
|
+
<li
|
|
129
|
+
role="none"
|
|
130
|
+
>
|
|
131
|
+
<button
|
|
132
|
+
aria-disabled="false"
|
|
133
|
+
class="pf-c-app-launcher__menu-item"
|
|
134
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-24"
|
|
135
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
136
|
+
data-ouia-safe="true"
|
|
137
|
+
role="menuitem"
|
|
138
|
+
tabindex="-1"
|
|
139
|
+
type="button"
|
|
140
|
+
>
|
|
141
|
+
Separated Action
|
|
142
|
+
</button>
|
|
143
|
+
</li>
|
|
144
|
+
</ul>
|
|
145
|
+
</nav>
|
|
146
|
+
</DocumentFragment>
|
|
147
|
+
`;
|
|
148
|
+
|
|
3
149
|
exports[`ApplicationLauncher custom icon 1`] = `
|
|
4
150
|
<DocumentFragment>
|
|
5
151
|
<nav
|
|
@@ -13,7 +159,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
13
159
|
aria-haspopup="true"
|
|
14
160
|
aria-label="Application launcher"
|
|
15
161
|
class="pf-c-app-launcher__toggle"
|
|
16
|
-
data-ouia-component-id="OUIA-Generated-DropdownToggle-
|
|
162
|
+
data-ouia-component-id="OUIA-Generated-DropdownToggle-7"
|
|
17
163
|
data-ouia-component-type="PF4/DropdownToggle"
|
|
18
164
|
data-ouia-safe="true"
|
|
19
165
|
id="pf-dropdown-toggle-id-5"
|
|
@@ -47,7 +193,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
47
193
|
<a
|
|
48
194
|
aria-disabled="false"
|
|
49
195
|
class="pf-c-app-launcher__menu-item"
|
|
50
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
196
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-8"
|
|
51
197
|
data-ouia-component-type="PF4/DropdownItem"
|
|
52
198
|
data-ouia-safe="true"
|
|
53
199
|
role="menuitem"
|
|
@@ -62,7 +208,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
62
208
|
<button
|
|
63
209
|
aria-disabled="false"
|
|
64
210
|
class="pf-c-app-launcher__menu-item"
|
|
65
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
211
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-10"
|
|
66
212
|
data-ouia-component-type="PF4/DropdownItem"
|
|
67
213
|
data-ouia-safe="true"
|
|
68
214
|
role="menuitem"
|
|
@@ -78,7 +224,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
78
224
|
<a
|
|
79
225
|
aria-disabled="true"
|
|
80
226
|
class="pf-m-disabled pf-c-app-launcher__menu-item"
|
|
81
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
227
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-12"
|
|
82
228
|
data-ouia-component-type="PF4/DropdownItem"
|
|
83
229
|
data-ouia-safe="true"
|
|
84
230
|
role="menuitem"
|
|
@@ -93,7 +239,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
93
239
|
<button
|
|
94
240
|
aria-disabled="true"
|
|
95
241
|
class="pf-m-disabled pf-c-app-launcher__menu-item"
|
|
96
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
242
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-14"
|
|
97
243
|
data-ouia-component-type="PF4/DropdownItem"
|
|
98
244
|
data-ouia-safe="true"
|
|
99
245
|
role="menuitem"
|
|
@@ -117,7 +263,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
117
263
|
<a
|
|
118
264
|
aria-disabled="false"
|
|
119
265
|
class="pf-c-app-launcher__menu-item"
|
|
120
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
266
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-16"
|
|
121
267
|
data-ouia-component-type="PF4/DropdownItem"
|
|
122
268
|
data-ouia-safe="true"
|
|
123
269
|
role="menuitem"
|
|
@@ -132,7 +278,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
132
278
|
<button
|
|
133
279
|
aria-disabled="false"
|
|
134
280
|
class="pf-c-app-launcher__menu-item"
|
|
135
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
281
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-18"
|
|
136
282
|
data-ouia-component-type="PF4/DropdownItem"
|
|
137
283
|
data-ouia-safe="true"
|
|
138
284
|
role="menuitem"
|
|
@@ -66,6 +66,8 @@ export interface ContextSelectorProps extends Omit<ToggleMenuBaseProps, 'menuApp
|
|
|
66
66
|
isFlipEnabled?: boolean;
|
|
67
67
|
/** Id of the context selector */
|
|
68
68
|
id?: string;
|
|
69
|
+
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
70
|
+
removeFindDomNode?: boolean;
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
export class ContextSelector extends React.Component<ContextSelectorProps, { ouiaStateId: string }> {
|
|
@@ -89,7 +91,8 @@ export class ContextSelector extends React.Component<ContextSelectorProps, { oui
|
|
|
89
91
|
footer: null as React.ReactNode,
|
|
90
92
|
isPlain: false,
|
|
91
93
|
isText: false,
|
|
92
|
-
isFlipEnabled: false
|
|
94
|
+
isFlipEnabled: false,
|
|
95
|
+
removeFindDomNode: false
|
|
93
96
|
};
|
|
94
97
|
constructor(props: ContextSelectorProps) {
|
|
95
98
|
super(props);
|
|
@@ -131,6 +134,7 @@ export class ContextSelector extends React.Component<ContextSelectorProps, { oui
|
|
|
131
134
|
disableFocusTrap,
|
|
132
135
|
isFlipEnabled,
|
|
133
136
|
id,
|
|
137
|
+
removeFindDomNode,
|
|
134
138
|
...props
|
|
135
139
|
} = this.props;
|
|
136
140
|
|
|
@@ -231,6 +235,7 @@ export class ContextSelector extends React.Component<ContextSelectorProps, { oui
|
|
|
231
235
|
popper={popperContainer}
|
|
232
236
|
appendTo={menuAppendTo === 'parent' ? getParentElement() : menuAppendTo}
|
|
233
237
|
isVisible={isOpen}
|
|
238
|
+
removeFindDomNode={removeFindDomNode}
|
|
234
239
|
/>
|
|
235
240
|
);
|
|
236
241
|
}
|
|
@@ -21,7 +21,24 @@ describe('ContextSelector', () => {
|
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
test('Renders ContextSelector open', () => {
|
|
24
|
-
const { asFragment } = render(
|
|
24
|
+
const { asFragment } = render(
|
|
25
|
+
<ContextSelector isOpen id="render-open">
|
|
26
|
+
{items}
|
|
27
|
+
</ContextSelector>
|
|
28
|
+
);
|
|
29
|
+
expect(asFragment()).toMatchSnapshot();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
test('Renders in strict mode', () => {
|
|
33
|
+
const consoleError = jest.spyOn(console, 'error');
|
|
34
|
+
const { asFragment } = render(
|
|
35
|
+
<React.StrictMode>
|
|
36
|
+
<ContextSelector removeFindDomNode isOpen id="render">
|
|
37
|
+
{items}
|
|
38
|
+
</ContextSelector>
|
|
39
|
+
</React.StrictMode>
|
|
40
|
+
);
|
|
41
|
+
expect(consoleError).not.toHaveBeenCalled();
|
|
25
42
|
expect(asFragment()).toMatchSnapshot();
|
|
26
43
|
});
|
|
27
44
|
|
package/src/components/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap
CHANGED
|
@@ -183,3 +183,147 @@ exports[`ContextSelector Renders ContextSelector open 1`] = `
|
|
|
183
183
|
</div>
|
|
184
184
|
</DocumentFragment>
|
|
185
185
|
`;
|
|
186
|
+
|
|
187
|
+
exports[`ContextSelector Renders in strict mode 1`] = `
|
|
188
|
+
<DocumentFragment>
|
|
189
|
+
<div
|
|
190
|
+
class="pf-c-context-selector pf-m-expanded"
|
|
191
|
+
data-ouia-component-id="OUIA-Generated-ContextSelector-4"
|
|
192
|
+
data-ouia-component-type="PF4/ContextSelector"
|
|
193
|
+
data-ouia-safe="true"
|
|
194
|
+
>
|
|
195
|
+
<button
|
|
196
|
+
aria-expanded="true"
|
|
197
|
+
aria-labelledby="pf-context-selector-label-id-render pf-context-selector-toggle-id-render"
|
|
198
|
+
class="pf-c-context-selector__toggle"
|
|
199
|
+
id="pf-context-selector-toggle-id-render"
|
|
200
|
+
type="button"
|
|
201
|
+
>
|
|
202
|
+
<span
|
|
203
|
+
class="pf-c-context-selector__toggle-text"
|
|
204
|
+
/>
|
|
205
|
+
<span
|
|
206
|
+
class="pf-c-context-selector__toggle-icon"
|
|
207
|
+
>
|
|
208
|
+
<svg
|
|
209
|
+
aria-hidden="true"
|
|
210
|
+
fill="currentColor"
|
|
211
|
+
height="1em"
|
|
212
|
+
role="img"
|
|
213
|
+
style="vertical-align: -0.125em;"
|
|
214
|
+
viewBox="0 0 320 512"
|
|
215
|
+
width="1em"
|
|
216
|
+
>
|
|
217
|
+
<path
|
|
218
|
+
d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
|
|
219
|
+
/>
|
|
220
|
+
</svg>
|
|
221
|
+
</span>
|
|
222
|
+
</button>
|
|
223
|
+
<div
|
|
224
|
+
class="pf-c-context-selector__menu"
|
|
225
|
+
id="render"
|
|
226
|
+
>
|
|
227
|
+
<div>
|
|
228
|
+
<div
|
|
229
|
+
class="pf-c-context-selector__menu-search"
|
|
230
|
+
>
|
|
231
|
+
<div
|
|
232
|
+
class="pf-c-input-group"
|
|
233
|
+
>
|
|
234
|
+
<input
|
|
235
|
+
aria-invalid="false"
|
|
236
|
+
aria-label="Search menu items"
|
|
237
|
+
class="pf-c-form-control"
|
|
238
|
+
data-ouia-component-id="OUIA-Generated-TextInputBase-3"
|
|
239
|
+
data-ouia-component-type="PF4/TextInput"
|
|
240
|
+
data-ouia-safe="true"
|
|
241
|
+
placeholder="Search"
|
|
242
|
+
type="search"
|
|
243
|
+
value=""
|
|
244
|
+
/>
|
|
245
|
+
<button
|
|
246
|
+
aria-disabled="false"
|
|
247
|
+
aria-label="Search menu items"
|
|
248
|
+
class="pf-c-button pf-m-control"
|
|
249
|
+
data-ouia-component-id="OUIA-Generated-Button-control-3"
|
|
250
|
+
data-ouia-component-type="PF4/Button"
|
|
251
|
+
data-ouia-safe="true"
|
|
252
|
+
type="button"
|
|
253
|
+
>
|
|
254
|
+
<svg
|
|
255
|
+
aria-hidden="true"
|
|
256
|
+
fill="currentColor"
|
|
257
|
+
height="1em"
|
|
258
|
+
role="img"
|
|
259
|
+
style="vertical-align: -0.125em;"
|
|
260
|
+
viewBox="0 0 512 512"
|
|
261
|
+
width="1em"
|
|
262
|
+
>
|
|
263
|
+
<path
|
|
264
|
+
d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"
|
|
265
|
+
/>
|
|
266
|
+
</svg>
|
|
267
|
+
</button>
|
|
268
|
+
</div>
|
|
269
|
+
</div>
|
|
270
|
+
<ul
|
|
271
|
+
class="pf-c-context-selector__menu-list"
|
|
272
|
+
role="menu"
|
|
273
|
+
>
|
|
274
|
+
<li
|
|
275
|
+
role="none"
|
|
276
|
+
>
|
|
277
|
+
<button
|
|
278
|
+
class="pf-c-context-selector__menu-list-item"
|
|
279
|
+
role="menuitem"
|
|
280
|
+
>
|
|
281
|
+
My Project
|
|
282
|
+
</button>
|
|
283
|
+
</li>
|
|
284
|
+
<li
|
|
285
|
+
role="none"
|
|
286
|
+
>
|
|
287
|
+
<button
|
|
288
|
+
class="pf-c-context-selector__menu-list-item"
|
|
289
|
+
role="menuitem"
|
|
290
|
+
>
|
|
291
|
+
OpenShift Cluster
|
|
292
|
+
</button>
|
|
293
|
+
</li>
|
|
294
|
+
<li
|
|
295
|
+
role="none"
|
|
296
|
+
>
|
|
297
|
+
<button
|
|
298
|
+
class="pf-c-context-selector__menu-list-item"
|
|
299
|
+
role="menuitem"
|
|
300
|
+
>
|
|
301
|
+
Production Ansible
|
|
302
|
+
</button>
|
|
303
|
+
</li>
|
|
304
|
+
<li
|
|
305
|
+
role="none"
|
|
306
|
+
>
|
|
307
|
+
<button
|
|
308
|
+
class="pf-c-context-selector__menu-list-item"
|
|
309
|
+
role="menuitem"
|
|
310
|
+
>
|
|
311
|
+
AWS
|
|
312
|
+
</button>
|
|
313
|
+
</li>
|
|
314
|
+
<li
|
|
315
|
+
role="none"
|
|
316
|
+
>
|
|
317
|
+
<button
|
|
318
|
+
class="pf-c-context-selector__menu-list-item"
|
|
319
|
+
role="menuitem"
|
|
320
|
+
>
|
|
321
|
+
Azure
|
|
322
|
+
</button>
|
|
323
|
+
</li>
|
|
324
|
+
</ul>
|
|
325
|
+
</div>
|
|
326
|
+
</div>
|
|
327
|
+
</div>
|
|
328
|
+
</DocumentFragment>
|
|
329
|
+
`;
|
|
@@ -60,6 +60,8 @@ export interface DropdownProps
|
|
|
60
60
|
* appended inline, e.g. `menuAppendTo="parent"`
|
|
61
61
|
*/
|
|
62
62
|
isFlipEnabled?: boolean;
|
|
63
|
+
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
64
|
+
removeFindDomNode?: boolean;
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
export const Dropdown: React.FunctionComponent<DropdownProps> = ({
|
|
@@ -72,6 +74,7 @@ export const Dropdown: React.FunctionComponent<DropdownProps> = ({
|
|
|
72
74
|
contextProps,
|
|
73
75
|
menuAppendTo = 'inline',
|
|
74
76
|
isFlipEnabled = false,
|
|
77
|
+
removeFindDomNode = false,
|
|
75
78
|
...props
|
|
76
79
|
}: DropdownProps) => (
|
|
77
80
|
<DropdownContext.Provider
|
|
@@ -97,7 +100,12 @@ export const Dropdown: React.FunctionComponent<DropdownProps> = ({
|
|
|
97
100
|
...contextProps
|
|
98
101
|
}}
|
|
99
102
|
>
|
|
100
|
-
<DropdownWithContext
|
|
103
|
+
<DropdownWithContext
|
|
104
|
+
menuAppendTo={menuAppendTo}
|
|
105
|
+
isFlipEnabled={isFlipEnabled}
|
|
106
|
+
removeFindDomNode={removeFindDomNode}
|
|
107
|
+
{...props}
|
|
108
|
+
/>
|
|
101
109
|
</DropdownContext.Provider>
|
|
102
110
|
);
|
|
103
111
|
Dropdown.displayName = 'Dropdown';
|
|
@@ -77,6 +77,7 @@ export class DropdownWithContext extends React.Component<DropdownProps & OUIAPro
|
|
|
77
77
|
autoFocus,
|
|
78
78
|
menuAppendTo,
|
|
79
79
|
isFlipEnabled,
|
|
80
|
+
removeFindDomNode,
|
|
80
81
|
...props
|
|
81
82
|
} = this.props;
|
|
82
83
|
const id = toggle.props.id || `pf-dropdown-toggle-id-${DropdownWithContext.currentId++}`;
|
|
@@ -174,6 +175,7 @@ export class DropdownWithContext extends React.Component<DropdownProps & OUIAPro
|
|
|
174
175
|
position={position}
|
|
175
176
|
appendTo={menuAppendTo === 'parent' ? getParentElement() : menuAppendTo}
|
|
176
177
|
isVisible={isOpen}
|
|
178
|
+
removeFindDomNode={removeFindDomNode}
|
|
177
179
|
/>
|
|
178
180
|
);
|
|
179
181
|
}}
|
|
@@ -123,6 +123,22 @@ describe('Dropdown', () => {
|
|
|
123
123
|
);
|
|
124
124
|
expect(asFragment()).toMatchSnapshot();
|
|
125
125
|
});
|
|
126
|
+
|
|
127
|
+
test('Renders in strict mode', () => {
|
|
128
|
+
const consoleError = jest.spyOn(console, 'error');
|
|
129
|
+
const { asFragment } = render(
|
|
130
|
+
<React.StrictMode>
|
|
131
|
+
<Dropdown
|
|
132
|
+
isOpen
|
|
133
|
+
dropdownItems={dropdownItems}
|
|
134
|
+
toggle={<DropdownToggle id="Dropdown Toggle">Dropdown</DropdownToggle>}
|
|
135
|
+
removeFindDomNode
|
|
136
|
+
/>
|
|
137
|
+
</React.StrictMode>
|
|
138
|
+
);
|
|
139
|
+
expect(consoleError).not.toHaveBeenCalled();
|
|
140
|
+
expect(asFragment()).toMatchSnapshot();
|
|
141
|
+
});
|
|
126
142
|
});
|
|
127
143
|
|
|
128
144
|
describe('KebabToggle', () => {
|