@@ -17,21 +17,18 @@ FormFieldHideWrapper.defaultProps = {
17
17
} ;
18
18
19
19
//Helper function to read the top uiState from the uiState stack of the specified field
20
+ //undefined means that no explicit uiState is set by a condition.
20
21
const checkUIState = ( { fieldName, uiState} ) => {
21
22
const fieldState = uiState . fields [ fieldName ] ;
22
- if ( ! fieldState ) return { visible : true , disabled : false } ;
23
+ if ( ! fieldState ) return { visible : undefined , disabled : undefined } ;
23
24
24
- //If no visibility information exists, default to visible=true
25
- //Else use info from the first met condition in the uiState stack for this field
26
- const visible = ! fieldState . visible ? true : fieldState . visible [ 0 ] . value ;
27
-
28
- //Disabled defaults to false if no explicit information exists
29
- const disabled = ! fieldState . disabled ? false : fieldState . disabled [ 0 ] . value ;
25
+ const visible = ! fieldState . visible ? undefined : fieldState . visible [ 0 ] . value ;
26
+ const disabled = ! fieldState . disabled ? undefined : fieldState . disabled [ 0 ] . value ;
30
27
31
28
return { visible, disabled} ;
32
29
} ;
33
30
34
- const SingleField = ( { component, name, ...rest } ) => {
31
+ const SingleField = ( { component, hideField , name, ...rest } ) => {
35
32
const {
36
33
actionMapper,
37
34
componentMapper,
@@ -100,7 +97,9 @@ const SingleField = ({component, name, ...rest}) => {
100
97
}
101
98
102
99
return (
103
- < FormFieldHideWrapper hideField = { ! fieldState . visible } >
100
+ < FormFieldHideWrapper
101
+ hideField = { fieldState . visible === undefined ? hideField : ! fieldState . visible }
102
+ >
104
103
< Component
105
104
{ ...componentProps }
106
105
{ ...overrideProps }
0 commit comments