@@ -17,21 +17,18 @@ FormFieldHideWrapper.defaultProps = {
1717} ;
1818
1919//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.
2021const checkUIState = ( { fieldName, uiState} ) => {
2122 const fieldState = uiState . fields [ fieldName ] ;
22- if ( ! fieldState ) return { visible : true , disabled : false } ;
23+ if ( ! fieldState ) return { visible : undefined , disabled : undefined } ;
2324
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 ;
3027
3128 return { visible, disabled} ;
3229} ;
3330
34- const SingleField = ( { component, name, ...rest } ) => {
31+ const SingleField = ( { component, hideField , name, ...rest } ) => {
3532 const {
3633 actionMapper,
3734 componentMapper,
@@ -100,7 +97,9 @@ const SingleField = ({component, name, ...rest}) => {
10097 }
10198
10299 return (
103- < FormFieldHideWrapper hideField = { ! fieldState . visible } >
100+ < FormFieldHideWrapper
101+ hideField = { fieldState . visible === undefined ? hideField : ! fieldState . visible }
102+ >
104103 < Component
105104 { ...componentProps }
106105 { ...overrideProps }
0 commit comments