@@ -6,8 +6,10 @@ interface SomeContextProps {
66 setErrorMessage ( error : string | undefined ) : void ;
77 successMessage : string | undefined ;
88 setSuccessMessage ( error : string | undefined ) : void ;
9+ warningMessage : string | undefined ;
10+ setWarningMessage ( error : string | undefined ) : void ;
911}
10- type SomeContextRenderProps = Pick < SomeContextProps , 'successMessage' , 'errorMessage' > ;
12+ type SomeContextRenderProps = Pick < SomeContextProps , 'successMessage' , 'errorMessage' , 'warningMessage' > ;
1113interface SomeContextProviderProps {
1214 children : ( context : SomeContextRenderProps ) => React . ReactElement < any > ;
1315}
@@ -17,16 +19,20 @@ const SomeContext: React.Context<SomeContextProps> = createContext({} as SomeCon
1719const SomeContextProvider = ( { children } : SomeContextProviderProps ) => {
1820 const [ errorMessage , setErrorMessage ] = useState < string > ( ) ;
1921 const [ successMessage , setSuccessMessage ] = useState < string > ( ) ;
22+ const [ warningMessage , setWarningMessage ] = useState < string > ( ) ;
2023
2124 return (
22- < SomeContext . Provider value = { { errorMessage, setErrorMessage, successMessage, setSuccessMessage } } >
23- { children ( { errorMessage, successMessage } ) }
25+ < SomeContext . Provider
26+ value = { { errorMessage, setErrorMessage, successMessage, setSuccessMessage, warningMessage, setWarningMessage } }
27+ >
28+ { children ( { errorMessage, successMessage, warningMessage } ) }
2429 </ SomeContext . Provider >
2530 ) ;
2631} ;
2732
2833const StepContentWithAction = ( ) => {
29- const { errorMessage, setErrorMessage, successMessage, setSuccessMessage } = useContext ( SomeContext ) ;
34+ const { errorMessage, setErrorMessage, successMessage, setSuccessMessage, warningMessage, setWarningMessage } =
35+ useContext ( SomeContext ) ;
3036
3137 return (
3238 < >
@@ -35,7 +41,8 @@ const StepContentWithAction = () => {
3541 isChecked = { ! ! errorMessage }
3642 onChange = { ( _event , checked ) => {
3743 setErrorMessage ( checked ? 'Some error message' : undefined ) ;
38- setSuccessMessage ( ! checked ? 'Some error message' : undefined ) ;
44+ setSuccessMessage ( checked ? undefined : successMessage ) ;
45+ setWarningMessage ( checked ? undefined : warningMessage ) ;
3946 } }
4047 id = "toggle-error-checkbox"
4148 name = "Toggle Status"
@@ -45,23 +52,37 @@ const StepContentWithAction = () => {
4552 isChecked = { ! ! successMessage }
4653 onChange = { ( _event , checked ) => {
4754 setSuccessMessage ( checked ? 'Some success message' : undefined ) ;
48- setErrorMessage ( ! checked ? 'Some success message' : undefined ) ;
55+ setErrorMessage ( checked ? undefined : errorMessage ) ;
56+ setWarningMessage ( checked ? undefined : warningMessage ) ;
4957 } }
5058 id = "toggle-success-checkbox"
5159 name = "Toggle Status"
5260 />
61+ < Radio
62+ label = "Give step 1 a warning status"
63+ isChecked = { ! ! warningMessage }
64+ onChange = { ( _event , checked ) => {
65+ setWarningMessage ( checked ? 'Some warning message' : undefined ) ;
66+ setErrorMessage ( checked ? undefined : errorMessage ) ;
67+ setSuccessMessage ( checked ? undefined : successMessage ) ;
68+ } }
69+ id = "toggle-warning-checkbox"
70+ name = "Toggle Status"
71+ />
5372 </ >
5473 ) ;
5574} ;
5675
5776export const WizardStepStatus : React . FunctionComponent = ( ) => (
5877 < SomeContextProvider >
59- { ( { errorMessage, successMessage } ) => {
78+ { ( { errorMessage, successMessage, warningMessage } ) => {
6079 let status = 'default' ;
6180 if ( errorMessage ) {
6281 status = 'error' ;
6382 } else if ( successMessage ) {
6483 status = 'success' ;
84+ } else if ( warningMessage ) {
85+ status = 'warning' ;
6586 }
6687 return (
6788 < Wizard height = { 400 } title = "Step status wizard" >
0 commit comments