@patternfly/react-core 5.0.0-alpha.37 → 5.0.0-alpha.38

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.
Files changed (25) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/components/OverflowMenu/OverflowMenuDropdownItem.d.ts +4 -4
  3. package/components/OverflowMenu/OverflowMenuDropdownItem.d.ts.map +1 -1
  4. package/components/OverflowMenu/OverflowMenuDropdownItem.js +3 -3
  5. package/components/OverflowMenu/OverflowMenuDropdownItem.js.map +1 -1
  6. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.d.ts +4 -4
  7. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.d.ts.map +1 -1
  8. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.js +3 -3
  9. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.js.map +1 -1
  10. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.d.ts +4 -4
  11. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.d.ts.map +1 -1
  12. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.js +3 -3
  13. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.js.map +1 -1
  14. package/dist/umd/react-core.min.js +1 -1
  15. package/package.json +2 -2
  16. package/src/components/OverflowMenu/OverflowMenuDropdownItem.tsx +6 -6
  17. package/src/components/OverflowMenu/__tests__/Generated/OverflowMenuDropdownItem.test.tsx +1 -4
  18. package/src/components/OverflowMenu/__tests__/Generated/__snapshots__/OverflowMenuDropdownItem.test.tsx.snap +14 -6
  19. package/src/components/OverflowMenu/examples/OverflowMenu.md +146 -73
  20. package/src/components/OverflowMenu/examples/OverflowMenuBreakpointOnContainer.tsx +26 -16
  21. package/src/components/Toolbar/examples/Toolbar.md +2 -0
  22. package/src/components/Toolbar/examples/ToolbarStacked.tsx +34 -25
  23. package/src/demos/Card/Card.md +30 -16
  24. package/src/demos/Tabs.md +3 -0
  25. package/src/demos/examples/Tabs/TabsAndTable.tsx +18 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "5.0.0-alpha.37",
3
+ "version": "5.0.0-alpha.38",
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",
@@ -70,5 +70,5 @@
70
70
  "react": "^17 || ^18",
71
71
  "react-dom": "^17 || ^18"
72
72
  },
73
- "gitHead": "67f588da8b7b8858729deeb6472e63b88da4d3cc"
73
+ "gitHead": "084195b009f7c1a02b1dde8918218ac3b0e0d6fb"
74
74
  }
@@ -1,24 +1,24 @@
1
1
  import * as React from 'react';
2
- import { DropdownItem, DropdownItemProps } from '../Dropdown';
2
+ import { DropdownItem, DropdownItemProps } from '../../next/components/Dropdown';
3
3
  import { OverflowMenuContext } from './OverflowMenuContext';
4
4
 
5
- export interface OverflowMenuDropdownItemProps extends DropdownItemProps {
5
+ export interface OverflowMenuDropdownItemProps extends Omit<DropdownItemProps, 'ref'> {
6
6
  /** Indicates when a dropdown item shows and hides the corresponding list item */
7
7
  isShared?: boolean;
8
- /** Indicates the index of the list item */
9
- index?: number;
8
+ /** Identifies the component in the dropdown onSelect callback */
9
+ itemId?: string | number;
10
10
  }
11
11
 
12
12
  export const OverflowMenuDropdownItem: React.FunctionComponent<OverflowMenuDropdownItemProps> = ({
13
13
  children,
14
14
  isShared = false,
15
- index,
15
+ itemId,
16
16
  ...additionalProps
17
17
  }: OverflowMenuDropdownItemProps) => (
18
18
  <OverflowMenuContext.Consumer>
19
19
  {value =>
20
20
  (!isShared || value.isBelowBreakpoint) && (
21
- <DropdownItem component="button" index={index} {...additionalProps}>
21
+ <DropdownItem component="button" itemId={itemId} {...additionalProps}>
22
22
  {children}
23
23
  </DropdownItem>
24
24
  )
@@ -3,14 +3,11 @@ import React from 'react';
3
3
  import { render } from '@testing-library/react';
4
4
 
5
5
  import { OverflowMenuDropdownItem } from '../../OverflowMenuDropdownItem';
6
- import { DropdownArrowContext } from '../../../Dropdown';
7
6
 
8
7
  describe('OverflowMenuDropdownItem', () => {
9
8
  it('should match snapshot', () => {
10
9
  const { asFragment } = render(
11
- <DropdownArrowContext.Provider value={{ sendRef: jest.fn(), keyHandler: undefined }}>
12
- <OverflowMenuDropdownItem children={'any'} isShared={false} />
13
- </DropdownArrowContext.Provider>
10
+ <OverflowMenuDropdownItem itemId="id" children={'any'} isShared={false} />
14
11
  );
15
12
  expect(asFragment()).toMatchSnapshot();
16
13
  });
@@ -3,19 +3,27 @@
3
3
  exports[`OverflowMenuDropdownItem should match snapshot 1`] = `
4
4
  <DocumentFragment>
5
5
  <li
6
+ class="pf-c-menu__list-item"
7
+ data-ouia-component-id="OUIA-Generated-DropdownItem-1"
8
+ data-ouia-component-type="PF4/DropdownItem"
9
+ data-ouia-safe="true"
6
10
  role="none"
7
11
  >
8
12
  <button
9
- aria-disabled="false"
10
- class=""
11
- data-ouia-component-id="OUIA-Generated-DropdownItem-1"
12
- data-ouia-component-type="PF4/DropdownItem"
13
- data-ouia-safe="true"
13
+ class="pf-c-menu__item"
14
14
  role="menuitem"
15
15
  tabindex="-1"
16
16
  type="button"
17
17
  >
18
- any
18
+ <span
19
+ class="pf-c-menu__item-main"
20
+ >
21
+ <span
22
+ class="pf-c-menu__item-text"
23
+ >
24
+ any
25
+ </span>
26
+ </span>
19
27
  </button>
20
28
  </li>
21
29
  </DocumentFragment>
@@ -9,13 +9,15 @@ propComponents:
9
9
  'OverflowMenuControl',
10
10
  'OverflowMenuDropdownItem',
11
11
  'OverflowMenuGroup',
12
- 'OverflowMenuItem',
12
+ 'OverflowMenuItem'
13
13
  ]
14
14
  ---
15
15
 
16
16
  import AlignLeftIcon from '@patternfly/react-icons/dist/esm/icons/align-left-icon';
17
17
  import AlignCenterIcon from '@patternfly/react-icons/dist/esm/icons/align-center-icon';
18
18
  import AlignRightIcon from '@patternfly/react-icons/dist/esm/icons/align-right-icon';
19
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
20
+ import { Dropdown as DropdownNext, DropdownList } from '@patternfly/react-core/next';
19
21
 
20
22
  ## Examples
21
23
 
@@ -29,9 +31,11 @@ import {
29
31
  OverflowMenuContent,
30
32
  OverflowMenuGroup,
31
33
  OverflowMenuItem,
32
- OverflowMenuDropdownItem
34
+ OverflowMenuDropdownItem,
35
+ MenuToggle
33
36
  } from '@patternfly/react-core';
34
- import { Dropdown, KebabToggle } from '@patternfly/react-core';
37
+ import { Dropdown as DropdownNext, DropdownList } from '@patternfly/react-core/next';
38
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
35
39
 
36
40
  class SimpleOverflowMenu extends React.Component {
37
41
  constructor(props) {
@@ -39,12 +43,12 @@ class SimpleOverflowMenu extends React.Component {
39
43
  this.state = {
40
44
  isOpen: false
41
45
  };
42
- this.onToggle = (_event, isOpen) => {
46
+ this.onToggle = () => {
43
47
  this.setState({
44
- isOpen
48
+ isOpen: !this.state.isOpen
45
49
  });
46
50
  };
47
- this.onSelect = event => {
51
+ this.onSelect = (event) => {
48
52
  this.setState({
49
53
  isOpen: !this.state.isOpen
50
54
  });
@@ -54,19 +58,19 @@ class SimpleOverflowMenu extends React.Component {
54
58
  render() {
55
59
  const { isOpen } = this.state;
56
60
  const dropdownItems = [
57
- <OverflowMenuDropdownItem key="item1" isShared>
61
+ <OverflowMenuDropdownItem itemId={0} key="item1" isShared>
58
62
  Item 1
59
63
  </OverflowMenuDropdownItem>,
60
- <OverflowMenuDropdownItem key="item2" isShared>
64
+ <OverflowMenuDropdownItem itemId={1} key="item2" isShared>
61
65
  Item 2
62
66
  </OverflowMenuDropdownItem>,
63
- <OverflowMenuDropdownItem key="item3" isShared>
67
+ <OverflowMenuDropdownItem itemId={2} key="item3" isShared>
64
68
  Item 3
65
69
  </OverflowMenuDropdownItem>,
66
- <OverflowMenuDropdownItem key="item4" isShared>
70
+ <OverflowMenuDropdownItem itemId={3} key="item4" isShared>
67
71
  Item 4
68
72
  </OverflowMenuDropdownItem>,
69
- <OverflowMenuDropdownItem key="item5" isShared>
73
+ <OverflowMenuDropdownItem itemId={5} key="item5" isShared>
70
74
  Item 5
71
75
  </OverflowMenuDropdownItem>
72
76
  ];
@@ -82,15 +86,28 @@ class SimpleOverflowMenu extends React.Component {
82
86
  </OverflowMenuGroup>
83
87
  </OverflowMenuContent>
84
88
  <OverflowMenuControl>
85
- <Dropdown
89
+ <DropdownNext
86
90
  onSelect={this.onSelect}
87
- toggle={<KebabToggle onToggle={this.onToggle} />}
91
+ toggle={(toggleRef) => (
92
+ <MenuToggle
93
+ ref={toggleRef}
94
+ aria-label="Simple example overflow menu"
95
+ variant="plain"
96
+ onClick={this.onToggle}
97
+ isExpanded={isOpen}
98
+ >
99
+ <EllipsisVIcon />
100
+ </MenuToggle>
101
+ )}
88
102
  isOpen={isOpen}
89
- isPlain
90
- dropdownItems={dropdownItems}
91
- isFlipEnabled
92
- menuAppendTo="parent"
93
- />
103
+ onOpenChange={(isOpen) =>
104
+ this.setState({
105
+ isOpen
106
+ })
107
+ }
108
+ >
109
+ <DropdownList>{dropdownItems}</DropdownList>
110
+ </DropdownNext>
94
111
  </OverflowMenuControl>
95
112
  </OverflowMenu>
96
113
  );
@@ -108,9 +125,13 @@ import {
108
125
  OverflowMenuContent,
109
126
  OverflowMenuGroup,
110
127
  OverflowMenuItem,
111
- OverflowMenuDropdownItem
128
+ OverflowMenuDropdownItem,
129
+ MenuToggle,
130
+ Button,
131
+ ButtonVariant
112
132
  } from '@patternfly/react-core';
113
- import { Dropdown, KebabToggle, Button, ButtonVariant } from '@patternfly/react-core';
133
+ import { Dropdown as DropdownNext, DropdownList } from '@patternfly/react-core/next';
134
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
114
135
  import AlignLeftIcon from '@patternfly/react-icons/dist/esm/icons/align-left-icon';
115
136
  import AlignCenterIcon from '@patternfly/react-icons/dist/esm/icons/align-center-icon';
116
137
  import AlignRightIcon from '@patternfly/react-icons/dist/esm/icons/align-right-icon';
@@ -121,12 +142,12 @@ class OverflowMenuGroupTypes extends React.Component {
121
142
  this.state = {
122
143
  isOpen: false
123
144
  };
124
- this.onToggle = (_event, isOpen) => {
145
+ this.onToggle = () => {
125
146
  this.setState({
126
- isOpen
147
+ isOpen: !this.state.isOpen
127
148
  });
128
149
  };
129
- this.onSelect = event => {
150
+ this.onSelect = (event) => {
130
151
  this.setState({
131
152
  isOpen: !this.state.isOpen
132
153
  });
@@ -136,31 +157,31 @@ class OverflowMenuGroupTypes extends React.Component {
136
157
  render() {
137
158
  const { isOpen } = this.state;
138
159
  const dropdownItems = [
139
- <OverflowMenuDropdownItem key="item1" isShared>
160
+ <OverflowMenuDropdownItem itemId={0} key="item1" isShared>
140
161
  Item 1
141
162
  </OverflowMenuDropdownItem>,
142
- <OverflowMenuDropdownItem key="item2" isShared>
163
+ <OverflowMenuDropdownItem itemId={1} key="item2" isShared>
143
164
  Item 2
144
165
  </OverflowMenuDropdownItem>,
145
- <OverflowMenuDropdownItem key="item3" isShared>
166
+ <OverflowMenuDropdownItem itemId={2} key="item3" isShared>
146
167
  Item 3
147
168
  </OverflowMenuDropdownItem>,
148
- <OverflowMenuDropdownItem key="primary" isShared>
169
+ <OverflowMenuDropdownItem itemId={3} key="primary" isShared>
149
170
  Primary
150
171
  </OverflowMenuDropdownItem>,
151
- <OverflowMenuDropdownItem key="secondary" isShared>
172
+ <OverflowMenuDropdownItem itemId={4} key="secondary" isShared>
152
173
  Secondary
153
174
  </OverflowMenuDropdownItem>,
154
- <OverflowMenuDropdownItem key="tertiary" isShared>
175
+ <OverflowMenuDropdownItem itemId={5} key="tertiary" isShared>
155
176
  Tertiary
156
177
  </OverflowMenuDropdownItem>,
157
- <OverflowMenuDropdownItem key="action1" isShared>
178
+ <OverflowMenuDropdownItem itemId={6} key="action1" isShared>
158
179
  Action 1
159
180
  </OverflowMenuDropdownItem>,
160
- <OverflowMenuDropdownItem key="action2" isShared>
181
+ <OverflowMenuDropdownItem itemId={7} key="action2" isShared>
161
182
  Action 2
162
183
  </OverflowMenuDropdownItem>,
163
- <OverflowMenuDropdownItem key="action3" isShared>
184
+ <OverflowMenuDropdownItem itemId={8} key="action3" isShared>
164
185
  Action 3
165
186
  </OverflowMenuDropdownItem>
166
187
  ];
@@ -202,15 +223,28 @@ class OverflowMenuGroupTypes extends React.Component {
202
223
  </OverflowMenuGroup>
203
224
  </OverflowMenuContent>
204
225
  <OverflowMenuControl>
205
- <Dropdown
226
+ <DropdownNext
206
227
  onSelect={this.onSelect}
207
- toggle={<KebabToggle onToggle={this.onToggle} />}
228
+ toggle={(toggleRef) => (
229
+ <MenuToggle
230
+ ref={toggleRef}
231
+ aria-label="Group example overflow menu"
232
+ variant="plain"
233
+ onClick={this.onToggle}
234
+ isExpanded={isOpen}
235
+ >
236
+ <EllipsisVIcon />
237
+ </MenuToggle>
238
+ )}
208
239
  isOpen={isOpen}
209
- isPlain
210
- dropdownItems={dropdownItems}
211
- isFlipEnabled
212
- menuAppendTo="parent"
213
- />
240
+ onOpenChange={(isOpen) =>
241
+ this.setState({
242
+ isOpen
243
+ })
244
+ }
245
+ >
246
+ <DropdownList>{dropdownItems}</DropdownList>
247
+ </DropdownNext>
214
248
  </OverflowMenuControl>
215
249
  </OverflowMenu>
216
250
  );
@@ -228,9 +262,13 @@ import {
228
262
  OverflowMenuContent,
229
263
  OverflowMenuGroup,
230
264
  OverflowMenuItem,
231
- OverflowMenuDropdownItem
265
+ OverflowMenuDropdownItem,
266
+ MenuToggle,
267
+ Button,
268
+ ButtonVariant
232
269
  } from '@patternfly/react-core';
233
- import { Dropdown, KebabToggle, Button, ButtonVariant } from '@patternfly/react-core';
270
+ import { Dropdown as DropdownNext, DropdownList } from '@patternfly/react-core/next';
271
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
234
272
  import AlignLeftIcon from '@patternfly/react-icons/dist/esm/icons/align-left-icon';
235
273
  import AlignCenterIcon from '@patternfly/react-icons/dist/esm/icons/align-center-icon';
236
274
  import AlignRightIcon from '@patternfly/react-icons/dist/esm/icons/align-right-icon';
@@ -241,12 +279,12 @@ class OverflowMenuAdditionalOptions extends React.Component {
241
279
  this.state = {
242
280
  isOpen: false
243
281
  };
244
- this.onToggle = (_event, isOpen) => {
282
+ this.onToggle = () => {
245
283
  this.setState({
246
- isOpen
284
+ isOpen: !this.state.isOpen
247
285
  });
248
286
  };
249
- this.onSelect = event => {
287
+ this.onSelect = (event) => {
250
288
  this.setState({
251
289
  isOpen: !this.state.isOpen
252
290
  });
@@ -256,25 +294,27 @@ class OverflowMenuAdditionalOptions extends React.Component {
256
294
  render() {
257
295
  const { isOpen } = this.state;
258
296
  const dropdownItems = [
259
- <OverflowMenuDropdownItem key="1" isShared>
297
+ <OverflowMenuDropdownItem itemId={0} key="1" isShared>
260
298
  Primary
261
299
  </OverflowMenuDropdownItem>,
262
- <OverflowMenuDropdownItem key="2" isShared>
300
+ <OverflowMenuDropdownItem itemId={1} key="2" isShared>
263
301
  Secondary
264
302
  </OverflowMenuDropdownItem>,
265
- <OverflowMenuDropdownItem key="3" isShared>
303
+ <OverflowMenuDropdownItem itemId={2} key="3" isShared>
266
304
  Tertiary
267
305
  </OverflowMenuDropdownItem>,
268
- <OverflowMenuDropdownItem key="4" isShared>
306
+ <OverflowMenuDropdownItem itemId={3} key="4" isShared>
269
307
  Action 4
270
308
  </OverflowMenuDropdownItem>,
271
- <OverflowMenuDropdownItem key="5" isShared>
309
+ <OverflowMenuDropdownItem itemId={4} key="5" isShared>
272
310
  Action 5
273
311
  </OverflowMenuDropdownItem>,
274
- <OverflowMenuDropdownItem key="6" isShared>
312
+ <OverflowMenuDropdownItem itemId={5} key="6" isShared>
275
313
  Action 6
276
314
  </OverflowMenuDropdownItem>,
277
- <OverflowMenuDropdownItem key="7">Action 7</OverflowMenuDropdownItem>
315
+ <OverflowMenuDropdownItem itemId={6} key="7">
316
+ Action 7
317
+ </OverflowMenuDropdownItem>
278
318
  ];
279
319
  return (
280
320
  <OverflowMenu breakpoint="lg">
@@ -309,15 +349,28 @@ class OverflowMenuAdditionalOptions extends React.Component {
309
349
  </OverflowMenuGroup>
310
350
  </OverflowMenuContent>
311
351
  <OverflowMenuControl hasAdditionalOptions>
312
- <Dropdown
352
+ <DropdownNext
313
353
  onSelect={this.onSelect}
314
- toggle={<KebabToggle onToggle={this.onToggle} />}
354
+ toggle={(toggleRef) => (
355
+ <MenuToggle
356
+ ref={toggleRef}
357
+ aria-label="Multiple group example overflow menu"
358
+ variant="plain"
359
+ onClick={this.onToggle}
360
+ isExpanded={isOpen}
361
+ >
362
+ <EllipsisVIcon />
363
+ </MenuToggle>
364
+ )}
315
365
  isOpen={isOpen}
316
- isPlain
317
- dropdownItems={dropdownItems}
318
- isFlipEnabled
319
- menuAppendTo="parent"
320
- />
366
+ onOpenChange={(isOpen) =>
367
+ this.setState({
368
+ isOpen
369
+ })
370
+ }
371
+ >
372
+ <DropdownList>{dropdownItems}</DropdownList>
373
+ </DropdownNext>
321
374
  </OverflowMenuControl>
322
375
  </OverflowMenu>
323
376
  );
@@ -335,9 +388,13 @@ import {
335
388
  OverflowMenuContent,
336
389
  OverflowMenuGroup,
337
390
  OverflowMenuItem,
338
- OverflowMenuDropdownItem
391
+ OverflowMenuDropdownItem,
392
+ MenuToggle,
393
+ Button,
394
+ ButtonVariant
339
395
  } from '@patternfly/react-core';
340
- import { Dropdown, KebabToggle, Button, ButtonVariant } from '@patternfly/react-core';
396
+ import { Dropdown as DropdownNext, DropdownList } from '@patternfly/react-core/next';
397
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
341
398
 
342
399
  class OverflowMenuPersist extends React.Component {
343
400
  constructor(props) {
@@ -345,12 +402,12 @@ class OverflowMenuPersist extends React.Component {
345
402
  this.state = {
346
403
  isOpen: false
347
404
  };
348
- this.onToggle = (_event, isOpen) => {
405
+ this.onToggle = () => {
349
406
  this.setState({
350
- isOpen
407
+ isOpen: !this.state.isOpen
351
408
  });
352
409
  };
353
- this.onSelect = event => {
410
+ this.onSelect = (event, itemId) => {
354
411
  this.setState({
355
412
  isOpen: !this.state.isOpen
356
413
  });
@@ -360,13 +417,15 @@ class OverflowMenuPersist extends React.Component {
360
417
  render() {
361
418
  const { isOpen } = this.state;
362
419
  const dropdownItems = [
363
- <OverflowMenuDropdownItem key="secondary" isShared>
420
+ <OverflowMenuDropdownItem itemId={0} key="secondary" isShared>
364
421
  Secondary
365
422
  </OverflowMenuDropdownItem>,
366
- <OverflowMenuDropdownItem key="tertiary" isShared>
423
+ <OverflowMenuDropdownItem itemId={1} key="tertiary" isShared>
367
424
  Tertiary
368
425
  </OverflowMenuDropdownItem>,
369
- <OverflowMenuDropdownItem key="action">Action 4</OverflowMenuDropdownItem>
426
+ <OverflowMenuDropdownItem itemId={2} key="action">
427
+ Action 4
428
+ </OverflowMenuDropdownItem>
370
429
  ];
371
430
  return (
372
431
  <OverflowMenu breakpoint="lg">
@@ -384,15 +443,28 @@ class OverflowMenuPersist extends React.Component {
384
443
  </OverflowMenuGroup>
385
444
  </OverflowMenuContent>
386
445
  <OverflowMenuControl hasAdditionalOptions>
387
- <Dropdown
446
+ <DropdownNext
388
447
  onSelect={this.onSelect}
389
- toggle={<KebabToggle onToggle={this.onToggle} />}
448
+ toggle={(toggleRef) => (
449
+ <MenuToggle
450
+ ref={toggleRef}
451
+ aria-label="Persistent example overflow menu"
452
+ variant="plain"
453
+ onClick={this.onToggle}
454
+ isExpanded={isOpen}
455
+ >
456
+ <EllipsisVIcon />
457
+ </MenuToggle>
458
+ )}
390
459
  isOpen={isOpen}
391
- isPlain
392
- dropdownItems={dropdownItems}
393
- isFlipEnabled
394
- menuAppendTo="parent"
395
- />
460
+ onOpenChange={(isOpen) =>
461
+ this.setState({
462
+ isOpen
463
+ })
464
+ }
465
+ >
466
+ <DropdownList>{dropdownItems}</DropdownList>
467
+ </DropdownNext>
396
468
  </OverflowMenuControl>
397
469
  </OverflowMenu>
398
470
  );
@@ -407,4 +479,5 @@ By passing in the `breakpointReference` property, the overflow menu's breakpoint
407
479
  You can change the container width in this example by adjusting the slider. As the container width changes, the overflow menu will change between a horizontal menu and a vertical dropdown despite the viewport width not changing.
408
480
 
409
481
  ```ts file="./OverflowMenuBreakpointOnContainer.tsx"
482
+
410
483
  ```
@@ -6,18 +6,19 @@ import {
6
6
  OverflowMenuGroup,
7
7
  OverflowMenuItem,
8
8
  OverflowMenuDropdownItem,
9
- Dropdown,
10
- KebabToggle,
9
+ MenuToggle,
11
10
  Slider
12
11
  } from '@patternfly/react-core';
12
+ import { Dropdown as DropdownNext, DropdownList } from '@patternfly/react-core/next';
13
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
13
14
 
14
15
  export const OverflowMenuBreakpointOnContainer: React.FunctionComponent = () => {
15
16
  const [isOpen, setIsOpen] = React.useState(false);
16
17
  const [containerWidth, setContainerWidth] = React.useState(100);
17
18
  const containerRef = React.useRef<HTMLDivElement>(null);
18
19
 
19
- const onToggle = (_event: any, isOpen: boolean) => {
20
- setIsOpen(isOpen);
20
+ const onToggle = () => {
21
+ setIsOpen(!isOpen);
21
22
  };
22
23
 
23
24
  const onSelect = () => {
@@ -36,19 +37,19 @@ export const OverflowMenuBreakpointOnContainer: React.FunctionComponent = () =>
36
37
  };
37
38
 
38
39
  const dropdownItems = [
39
- <OverflowMenuDropdownItem key="item1" isShared>
40
+ <OverflowMenuDropdownItem itemId={0} key="item1" isShared>
40
41
  Item 1
41
42
  </OverflowMenuDropdownItem>,
42
- <OverflowMenuDropdownItem key="item2" isShared>
43
+ <OverflowMenuDropdownItem itemId={1} key="item2" isShared>
43
44
  Item 2
44
45
  </OverflowMenuDropdownItem>,
45
- <OverflowMenuDropdownItem key="item3" isShared>
46
+ <OverflowMenuDropdownItem itemId={2} key="item3" isShared>
46
47
  Item 3
47
48
  </OverflowMenuDropdownItem>,
48
- <OverflowMenuDropdownItem key="item4" isShared>
49
+ <OverflowMenuDropdownItem itemId={3} key="item4" isShared>
49
50
  Item 4
50
51
  </OverflowMenuDropdownItem>,
51
- <OverflowMenuDropdownItem key="item5" isShared>
52
+ <OverflowMenuDropdownItem itemId={4} key="item5" isShared>
52
53
  Item 5
53
54
  </OverflowMenuDropdownItem>
54
55
  ];
@@ -83,15 +84,24 @@ export const OverflowMenuBreakpointOnContainer: React.FunctionComponent = () =>
83
84
  </OverflowMenuGroup>
84
85
  </OverflowMenuContent>
85
86
  <OverflowMenuControl>
86
- <Dropdown
87
+ <DropdownNext
87
88
  onSelect={onSelect}
88
- toggle={<KebabToggle onToggle={onToggle} />}
89
+ toggle={toggleRef => (
90
+ <MenuToggle
91
+ ref={toggleRef}
92
+ aria-label="Breakpoint on container example overflow menu"
93
+ variant="plain"
94
+ onClick={onToggle}
95
+ isExpanded={isOpen}
96
+ >
97
+ <EllipsisVIcon />
98
+ </MenuToggle>
99
+ )}
89
100
  isOpen={isOpen}
90
- isPlain
91
- dropdownItems={dropdownItems}
92
- isFlipEnabled
93
- menuAppendTo="parent"
94
- />
101
+ onOpenChange={isOpen => setIsOpen(isOpen)}
102
+ >
103
+ <DropdownList>{dropdownItems}</DropdownList>
104
+ </DropdownNext>
95
105
  </OverflowMenuControl>
96
106
  </OverflowMenu>
97
107
  </div>
@@ -10,6 +10,8 @@ import CloneIcon from '@patternfly/react-icons/dist/esm/icons/clone-icon';
10
10
  import SyncIcon from '@patternfly/react-icons/dist/esm/icons/sync-icon';
11
11
  import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon';
12
12
  import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
13
+ import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon';
14
+ import { Dropdown as DropdownNext, DropdownItem as DropdownItemNext, DropdownList } from '@patternfly/react-core/next';
13
15
 
14
16
  ## Examples
15
17