@@ -3,7 +3,7 @@ import { type FormContextProps } from '../../../provider/form-provider';
33import { type FormFieldValidator , type SessionMode , type ValidationResult , type FormField } from '../../../types' ;
44import { hasRendering } from '../../../utils/common-utils' ;
55import { evaluateAsyncExpression , evaluateExpression } from '../../../utils/expression-runner' ;
6- import { evalConditionalRequired , evaluateDisabled , evaluateHide } from '../../../utils/form-helper' ;
6+ import { evalConditionalRequired , evaluateDisabled , evaluateHide , findFieldSection } from '../../../utils/form-helper' ;
77import { isEmpty } from '../../../validators/form-validator' ;
88import { reportError } from '../../../utils/error-utils' ;
99
@@ -90,6 +90,9 @@ function evaluateFieldDependents(field: FormField, values: any, context: FormCon
9090 }
9191 // evaluate hide
9292 if ( dependent . hide ) {
93+ const targetSection = findFieldSection ( formJson , dependent ) ;
94+ // console.log('targetSection', targetSection);
95+
9396 evaluateHide (
9497 { value : dependent , type : 'field' } ,
9598 formFields ,
@@ -99,6 +102,15 @@ function evaluateFieldDependents(field: FormField, values: any, context: FormCon
99102 evaluateExpression ,
100103 updateFormField ,
101104 ) ;
105+ // console.log('dependent', dependent);
106+ let hasVisibleFields = targetSection ?. questions . some ( ( question ) => ! question . isHidden ) ;
107+ // console.log('hasVisibleFields', hasVisibleFields);
108+ // console.log('dependent.isHidden', dependent.isHidden);
109+ if ( ! hasVisibleFields && ! dependent . isHidden ) {
110+ // console.log('FORCE RE-RENDER');
111+ targetSection . isHidden = false ;
112+ shouldUpdateForm = true ;
113+ }
102114 }
103115 // evaluate disabled
104116 if ( typeof dependent . disabled === 'object' && dependent . disabled . disableWhenExpression ) {
@@ -189,7 +201,8 @@ function evaluateFieldDependents(field: FormField, values: any, context: FormCon
189201 } ,
190202 ) ;
191203 }
192- shouldUpdateForm = true ;
204+ // shouldUpdateForm = true;
205+ // console.log('shouldUpdateForm', shouldUpdateForm);
193206 updateFormField ( dependent ) ;
194207 } ) ;
195208 }
@@ -234,6 +247,7 @@ function evaluateFieldDependents(field: FormField, values: any, context: FormCon
234247 }
235248
236249 if ( shouldUpdateForm ) {
250+ // console.log('updating form', formJson);
237251 setForm ( formJson ) ;
238252 }
239253}
0 commit comments