@patternfly/react-core 6.0.0-alpha.85 → 6.0.0-alpha.86

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 (154) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/components/package.json +1 -1
  3. package/deprecated/package.json +1 -1
  4. package/dist/dynamic/components/AboutModal/package.json +1 -1
  5. package/dist/dynamic/components/Accordion/package.json +1 -1
  6. package/dist/dynamic/components/ActionList/package.json +1 -1
  7. package/dist/dynamic/components/Alert/package.json +1 -1
  8. package/dist/dynamic/components/Avatar/package.json +1 -1
  9. package/dist/dynamic/components/BackToTop/package.json +1 -1
  10. package/dist/dynamic/components/Backdrop/package.json +1 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +1 -1
  12. package/dist/dynamic/components/Badge/package.json +1 -1
  13. package/dist/dynamic/components/Banner/package.json +1 -1
  14. package/dist/dynamic/components/Brand/package.json +1 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +1 -1
  16. package/dist/dynamic/components/Button/package.json +1 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +1 -1
  18. package/dist/dynamic/components/Card/package.json +1 -1
  19. package/dist/dynamic/components/Checkbox/package.json +1 -1
  20. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  21. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  22. package/dist/dynamic/components/Content/package.json +1 -1
  23. package/dist/dynamic/components/DataList/package.json +1 -1
  24. package/dist/dynamic/components/DatePicker/package.json +1 -1
  25. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  26. package/dist/dynamic/components/Divider/package.json +1 -1
  27. package/dist/dynamic/components/Drawer/package.json +1 -1
  28. package/dist/dynamic/components/Dropdown/package.json +1 -1
  29. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  30. package/dist/dynamic/components/EmptyState/package.json +1 -1
  31. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  32. package/dist/dynamic/components/FileUpload/package.json +1 -1
  33. package/dist/dynamic/components/Form/package.json +1 -1
  34. package/dist/dynamic/components/FormSelect/package.json +1 -1
  35. package/dist/dynamic/components/HelperText/package.json +1 -1
  36. package/dist/dynamic/components/Hint/package.json +1 -1
  37. package/dist/dynamic/components/Icon/package.json +1 -1
  38. package/dist/dynamic/components/InputGroup/package.json +1 -1
  39. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  40. package/dist/dynamic/components/Label/package.json +1 -1
  41. package/dist/dynamic/components/List/package.json +1 -1
  42. package/dist/dynamic/components/LoginPage/package.json +1 -1
  43. package/dist/dynamic/components/Masthead/package.json +1 -1
  44. package/dist/dynamic/components/Menu/package.json +1 -1
  45. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  46. package/dist/dynamic/components/Modal/package.json +1 -1
  47. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  48. package/dist/dynamic/components/Nav/package.json +1 -1
  49. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  50. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  51. package/dist/dynamic/components/NumberInput/package.json +1 -1
  52. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  53. package/dist/dynamic/components/Page/package.json +1 -1
  54. package/dist/dynamic/components/Pagination/package.json +1 -1
  55. package/dist/dynamic/components/Panel/package.json +1 -1
  56. package/dist/dynamic/components/Popover/package.json +1 -1
  57. package/dist/dynamic/components/Progress/package.json +1 -1
  58. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  59. package/dist/dynamic/components/Radio/package.json +1 -1
  60. package/dist/dynamic/components/SearchInput/package.json +1 -1
  61. package/dist/dynamic/components/Select/package.json +1 -1
  62. package/dist/dynamic/components/Sidebar/package.json +1 -1
  63. package/dist/dynamic/components/SimpleList/package.json +1 -1
  64. package/dist/dynamic/components/Skeleton/package.json +1 -1
  65. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  66. package/dist/dynamic/components/Slider/package.json +1 -1
  67. package/dist/dynamic/components/Spinner/package.json +1 -1
  68. package/dist/dynamic/components/Switch/package.json +1 -1
  69. package/dist/dynamic/components/Tabs/package.json +1 -1
  70. package/dist/dynamic/components/TextArea/package.json +1 -1
  71. package/dist/dynamic/components/TextInput/package.json +1 -1
  72. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  73. package/dist/dynamic/components/Tile/package.json +1 -1
  74. package/dist/dynamic/components/TimePicker/package.json +1 -1
  75. package/dist/dynamic/components/Timestamp/package.json +1 -1
  76. package/dist/dynamic/components/Title/package.json +1 -1
  77. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  78. package/dist/dynamic/components/Toolbar/package.json +1 -1
  79. package/dist/dynamic/components/Tooltip/package.json +1 -1
  80. package/dist/dynamic/components/TreeView/package.json +1 -1
  81. package/dist/dynamic/components/Truncate/package.json +1 -1
  82. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  83. package/dist/dynamic/components/Wizard/package.json +1 -1
  84. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/package.json +1 -1
  90. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  91. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  92. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  93. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  94. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  95. package/dist/dynamic/helpers/constants/package.json +1 -1
  96. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  97. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  98. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  99. package/dist/dynamic/helpers/package.json +1 -1
  100. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  101. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  102. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  103. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  104. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  105. package/dist/dynamic/helpers/util/package.json +1 -1
  106. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  107. package/dist/dynamic/layouts/Flex/package.json +1 -1
  108. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  109. package/dist/dynamic/layouts/Grid/package.json +1 -1
  110. package/dist/dynamic/layouts/Level/package.json +1 -1
  111. package/dist/dynamic/layouts/Split/package.json +1 -1
  112. package/dist/dynamic/layouts/Stack/package.json +1 -1
  113. package/dist/dynamic/styles/package.json +1 -1
  114. package/dist/esm/components/Wizard/WizardNavItem.d.ts +1 -1
  115. package/dist/esm/components/Wizard/WizardNavItem.d.ts.map +1 -1
  116. package/dist/esm/components/Wizard/WizardNavItem.js +5 -3
  117. package/dist/esm/components/Wizard/WizardNavItem.js.map +1 -1
  118. package/dist/esm/components/Wizard/WizardStep.d.ts +1 -1
  119. package/dist/esm/components/Wizard/WizardStep.d.ts.map +1 -1
  120. package/dist/esm/components/Wizard/WizardToggle.d.ts.map +1 -1
  121. package/dist/esm/components/Wizard/WizardToggle.js +7 -3
  122. package/dist/esm/components/Wizard/WizardToggle.js.map +1 -1
  123. package/dist/esm/components/Wizard/types.d.ts +3 -2
  124. package/dist/esm/components/Wizard/types.d.ts.map +1 -1
  125. package/dist/esm/components/Wizard/types.js +1 -0
  126. package/dist/esm/components/Wizard/types.js.map +1 -1
  127. package/dist/js/components/Wizard/WizardNavItem.d.ts +1 -1
  128. package/dist/js/components/Wizard/WizardNavItem.d.ts.map +1 -1
  129. package/dist/js/components/Wizard/WizardNavItem.js +5 -3
  130. package/dist/js/components/Wizard/WizardNavItem.js.map +1 -1
  131. package/dist/js/components/Wizard/WizardStep.d.ts +1 -1
  132. package/dist/js/components/Wizard/WizardStep.d.ts.map +1 -1
  133. package/dist/js/components/Wizard/WizardToggle.d.ts.map +1 -1
  134. package/dist/js/components/Wizard/WizardToggle.js +7 -3
  135. package/dist/js/components/Wizard/WizardToggle.js.map +1 -1
  136. package/dist/js/components/Wizard/types.d.ts +3 -2
  137. package/dist/js/components/Wizard/types.d.ts.map +1 -1
  138. package/dist/js/components/Wizard/types.js +1 -0
  139. package/dist/js/components/Wizard/types.js.map +1 -1
  140. package/dist/umd/assets/{output-CNxOEygf.css → output-DncgfZci.css} +12042 -12042
  141. package/dist/umd/react-core.min.js +1 -1
  142. package/helpers/package.json +1 -1
  143. package/layouts/package.json +1 -1
  144. package/next/package.json +1 -1
  145. package/package.json +2 -2
  146. package/src/components/Wizard/WizardNavItem.tsx +7 -4
  147. package/src/components/Wizard/WizardStep.tsx +1 -1
  148. package/src/components/Wizard/WizardToggle.tsx +16 -3
  149. package/src/components/Wizard/__tests__/WizardNavItem.test.tsx +6 -0
  150. package/src/components/Wizard/__tests__/WizardStep.test.tsx +2 -0
  151. package/src/components/Wizard/examples/Wizard.md +2 -2
  152. package/src/components/Wizard/examples/WizardStepStatus.tsx +82 -0
  153. package/src/components/Wizard/types.tsx +3 -2
  154. package/src/components/Wizard/examples/WizardStepErrorStatus.tsx +0 -54
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.0.0-alpha.84","private":true}
1
+ {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.0.0-alpha.85","private":true}
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.0.0-alpha.84","private":true}
1
+ {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.0.0-alpha.85","private":true}
package/next/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.0.0-alpha.84","private":true}
1
+ {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.0.0-alpha.85","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.0.0-alpha.85",
3
+ "version": "6.0.0-alpha.86",
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",
@@ -64,5 +64,5 @@
64
64
  "react": "^17 || ^18",
65
65
  "react-dom": "^17 || ^18"
66
66
  },
67
- "gitHead": "c3878e74a655cae5c081b3f2b799f060ccd47fed"
67
+ "gitHead": "25a8747bbb2bd86419ea3ee470535709f6e7fe26"
68
68
  }
@@ -4,6 +4,7 @@ import { css } from '@patternfly/react-styles';
4
4
  import styles from '@patternfly/react-styles/css/components/Wizard/wizard';
5
5
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
6
6
  import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';
7
+ import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';
7
8
 
8
9
  import { OUIAProps, useOUIAProps } from '../../helpers';
9
10
  import { WizardNavItemStatus } from './types';
@@ -38,7 +39,7 @@ export interface WizardNavItemProps
38
39
  /** The id for the navigation item */
39
40
  id?: string | number;
40
41
  /** Used to determine the icon displayed next to content. Default has no icon. */
41
- status?: 'default' | 'error';
42
+ status?: 'default' | 'error' | 'success';
42
43
  }
43
44
 
44
45
  export const WizardNavItem = ({
@@ -96,18 +97,20 @@ export const WizardNavItem = ({
96
97
  styles.wizardNavLink,
97
98
  isCurrent && styles.modifiers.current,
98
99
  isDisabled && styles.modifiers.disabled,
99
- status === WizardNavItemStatus.Error && styles.modifiers.danger
100
+ status === WizardNavItemStatus.Error && styles.modifiers.danger,
101
+ status === WizardNavItemStatus.Success && styles.modifiers.success
100
102
  )}
101
103
  aria-disabled={isDisabled ? true : null}
102
104
  aria-current={isCurrent && !children ? 'step' : false}
103
105
  {...(isExpandable && { 'aria-expanded': isExpanded })}
104
106
  {...ouiaProps}
105
107
  >
106
- {status === WizardNavItemStatus.Error && (
108
+ {status !== WizardNavItemStatus.Default && (
107
109
  <>
108
110
  <span className="pf-v6-screen-reader">, {status}</span>
109
111
  <span className={css(styles.wizardNavLinkStatusIcon)}>
110
- <ExclamationCircleIcon />
112
+ {status === WizardNavItemStatus.Error && <ExclamationCircleIcon />}
113
+ {status === WizardNavItemStatus.Success && <CheckCircleIcon />}
111
114
  </span>
112
115
  </>
113
116
  )}
@@ -29,7 +29,7 @@ export interface WizardStepProps {
29
29
  /** Replaces the step's footer. The step's footer takes precedance over the wizard's footer. */
30
30
  footer?: React.ReactElement | Partial<WizardFooterProps>;
31
31
  /** Used to determine icon next to the step's navigation item */
32
- status?: 'default' | 'error';
32
+ status?: 'default' | 'error' | 'success';
33
33
  /** Flag to determine whether parent steps can expand or not. Defaults to false. */
34
34
  isExpandable?: boolean;
35
35
  }
@@ -5,6 +5,7 @@ import styles from '@patternfly/react-styles/css/components/Wizard/wizard';
5
5
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
6
6
  import CaretDownIcon from '@patternfly/react-icons/dist/esm/icons/caret-down-icon';
7
7
  import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';
8
+ import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';
8
9
 
9
10
  import { KeyTypes } from '../../helpers/constants';
10
11
  import { WizardStepType, isWizardSubStep } from './types';
@@ -91,12 +92,24 @@ export const WizardToggle = ({
91
92
  aria-expanded={isNavExpanded}
92
93
  >
93
94
  <span className={css(styles.wizardToggleList)}>
94
- <span className={css(styles.wizardToggleListItem, isActiveStepStatus === 'error' && styles.modifiers.danger)}>
95
- {isActiveStepStatus === 'error' ? (
95
+ <span
96
+ className={css(
97
+ styles.wizardToggleListItem,
98
+ isActiveStepStatus === 'error' && styles.modifiers.danger,
99
+ isActiveStepStatus === 'success' && styles.modifiers.success
100
+ )}
101
+ >
102
+ {isActiveStepStatus === 'error' && (
96
103
  <span className={css(styles.wizardToggleStatusIcon)}>
97
104
  <ExclamationCircleIcon />
98
105
  </span>
99
- ) : (
106
+ )}
107
+ {isActiveStepStatus === 'success' && (
108
+ <span className={css(styles.wizardToggleStatusIcon)}>
109
+ <CheckCircleIcon />
110
+ </span>
111
+ )}
112
+ {isActiveStepStatus !== 'success' && isActiveStepStatus !== 'error' && (
100
113
  <span className={css(styles.wizardToggleNum)}>{wizardToggleIndex}</span>
101
114
  )}{' '}
102
115
  {parentStep?.name || activeStep?.name}
@@ -59,3 +59,9 @@ test(`Renders screen reader text and danger icon when status is error`, () => {
59
59
  expect(screen.getByRole('button')).toHaveClass(styles.modifiers.danger);
60
60
  expect(screen.getByText(', error')).toBeInTheDocument();
61
61
  });
62
+
63
+ test(`Renders screen reader text and success icon when status is success`, () => {
64
+ render(<WizardNavItem status="success" />);
65
+ expect(screen.getByRole('button')).toHaveClass(styles.modifiers.success);
66
+ expect(screen.getByText(', success')).toBeInTheDocument();
67
+ });
@@ -70,4 +70,6 @@ test('updates "navItem" in context when the value changes', () => {
70
70
  test('updates "status" in context when the value changes', () => {
71
71
  render(<WizardStep {...testStep} status="error" />);
72
72
  expect(setStep).toHaveBeenCalledWith({ ...testStepProps, status: 'error', isVisited: true });
73
+ render(<WizardStep {...testStep} status="success" />);
74
+ expect(setStep).toHaveBeenCalledWith({ ...testStepProps, status: 'success', isVisited: true });
73
75
  });
@@ -165,9 +165,9 @@ To focus the main content element of the `Wizard`, pass in the `shouldFocusConte
165
165
 
166
166
  ```
167
167
 
168
- ### Step error status
168
+ ### Step status
169
169
 
170
- ```ts file="./WizardStepErrorStatus.tsx"
170
+ ```ts file="./WizardStepStatus.tsx"
171
171
 
172
172
  ```
173
173
 
@@ -0,0 +1,82 @@
1
+ import React from 'react';
2
+
3
+ import { Radio, Wizard, WizardStep } from '@patternfly/react-core';
4
+
5
+ interface SomeContextProps {
6
+ errorMessage: string | undefined;
7
+ setErrorMessage(error: string | undefined): void;
8
+ successMessage: string | undefined;
9
+ setSuccessMessage(error: string | undefined): void;
10
+ }
11
+ type SomeContextRenderProps = Pick<SomeContextProps, 'successMessage', 'errorMessage'>;
12
+ interface SomeContextProviderProps {
13
+ children: (context: SomeContextRenderProps) => React.ReactElement;
14
+ }
15
+
16
+ const SomeContext: React.Context<SomeContextProps> = React.createContext({} as SomeContextProps);
17
+
18
+ const SomeContextProvider = ({ children }: SomeContextProviderProps) => {
19
+ const [errorMessage, setErrorMessage] = React.useState<string>();
20
+ const [successMessage, setSuccessMessage] = React.useState<string>();
21
+
22
+ return (
23
+ <SomeContext.Provider value={{ errorMessage, setErrorMessage, successMessage, setSuccessMessage }}>
24
+ {children({ errorMessage, successMessage })}
25
+ </SomeContext.Provider>
26
+ );
27
+ };
28
+
29
+ const StepContentWithAction = () => {
30
+ const { errorMessage, setErrorMessage, successMessage, setSuccessMessage } = React.useContext(SomeContext);
31
+
32
+ return (
33
+ <>
34
+ <Radio
35
+ label="Give step 1 an error status"
36
+ isChecked={!!errorMessage}
37
+ onChange={(_event, checked) => {
38
+ setErrorMessage(checked ? 'Some error message' : undefined);
39
+ setSuccessMessage(!checked ? 'Some error message' : undefined);
40
+ }}
41
+ id="toggle-error-checkbox"
42
+ name="Toggle Status"
43
+ />
44
+ <Radio
45
+ label="Give step 1 a success status"
46
+ isChecked={!!successMessage}
47
+ onChange={(_event, checked) => {
48
+ setSuccessMessage(checked ? 'Some success message' : undefined);
49
+ setErrorMessage(!checked ? 'Some success message' : undefined);
50
+ }}
51
+ id="toggle-success-checkbox"
52
+ name="Toggle Status"
53
+ />
54
+ </>
55
+ );
56
+ };
57
+
58
+ export const WizardStepStatus: React.FunctionComponent = () => (
59
+ <SomeContextProvider>
60
+ {({ errorMessage, successMessage }) => {
61
+ let status = 'default';
62
+ if (errorMessage) {
63
+ status = 'error';
64
+ } else if (successMessage) {
65
+ status = 'success';
66
+ }
67
+ return (
68
+ <Wizard height={400} title="Step status wizard">
69
+ <WizardStep status={status} id="status-step-1" name="Step 1">
70
+ Step 1 content
71
+ </WizardStep>
72
+ <WizardStep name="Status step" id="error-status-step-2">
73
+ <StepContentWithAction />
74
+ </WizardStep>
75
+ <WizardStep name="Review" id="status-review-step" footer={{ nextButtonText: 'Finish' }}>
76
+ Review step content
77
+ </WizardStep>
78
+ </Wizard>
79
+ );
80
+ }}
81
+ </SomeContextProvider>
82
+ );
@@ -23,12 +23,13 @@ export interface WizardBasicStep {
23
23
  /** Replaces the step's footer. The step's footer takes precedance over the wizard's footer. */
24
24
  footer?: React.ReactElement | Partial<WizardFooterProps>;
25
25
  /** Used to determine icon next to the step's navItem */
26
- status?: 'default' | 'error';
26
+ status?: 'default' | 'error' | 'success';
27
27
  }
28
28
 
29
29
  export enum WizardNavItemStatus {
30
30
  Default = 'default',
31
- Error = 'error'
31
+ Error = 'error',
32
+ Success = 'success'
32
33
  }
33
34
 
34
35
  /** Type for customizing a button (next, back or cancel) in a Wizard footer. It omits some props which either have a default value or are passed directly via WizardFooterProps. */
@@ -1,54 +0,0 @@
1
- import React from 'react';
2
-
3
- import { Checkbox, Wizard, WizardStep } from '@patternfly/react-core';
4
-
5
- interface SomeContextProps {
6
- errorMessage: string | undefined;
7
- setErrorMessage(error: string | undefined): void;
8
- }
9
- type SomeContextRenderProps = Pick<SomeContextProps, 'errorMessage'>;
10
- interface SomeContextProviderProps {
11
- children: (context: SomeContextRenderProps) => React.ReactElement;
12
- }
13
-
14
- const SomeContext: React.Context<SomeContextProps> = React.createContext({} as SomeContextProps);
15
-
16
- const SomeContextProvider = ({ children }: SomeContextProviderProps) => {
17
- const [errorMessage, setErrorMessage] = React.useState<string>();
18
-
19
- return (
20
- <SomeContext.Provider value={{ errorMessage, setErrorMessage }}>{children({ errorMessage })}</SomeContext.Provider>
21
- );
22
- };
23
-
24
- const StepContentWithAction = () => {
25
- const { errorMessage, setErrorMessage } = React.useContext(SomeContext);
26
-
27
- return (
28
- <Checkbox
29
- label="Give step 1 an error status"
30
- isChecked={!!errorMessage}
31
- onChange={(_event, checked) => setErrorMessage(checked ? 'Some error message' : undefined)}
32
- id="toggle-error-checkbox"
33
- name="Toggle Error Checkbox"
34
- />
35
- );
36
- };
37
-
38
- export const WizardStepErrorStatus: React.FunctionComponent = () => (
39
- <SomeContextProvider>
40
- {({ errorMessage }) => (
41
- <Wizard height={400} title="Step error status wizard">
42
- <WizardStep status={errorMessage ? 'error' : 'default'} id="error-status-step-1" name="Step 1">
43
- Step 1 content
44
- </WizardStep>
45
- <WizardStep name="Error action step" id="error-status-step-2">
46
- <StepContentWithAction />
47
- </WizardStep>
48
- <WizardStep name="Review" id="error-status-review-step" footer={{ nextButtonText: 'Finish' }}>
49
- Review step content
50
- </WizardStep>
51
- </Wizard>
52
- )}
53
- </SomeContextProvider>
54
- );