@@ -73,6 +73,10 @@ const useResolvedFields = (): [FieldsType, boolean] => {
7373 ? selectedItem
7474 : { props : rootProps , readOnly : data . root . readOnly } ;
7575
76+ const hasComponentResolver = selectedItem && componentConfig ?. resolveFields ;
77+ const hasRootResolver = ! selectedItem && config . root ?. resolveFields ;
78+ const hasResolver = hasComponentResolver || hasRootResolver ;
79+
7680 const resolveFields = useCallback (
7781 async ( fields : FieldsType = { } ) => {
7882 const lastData =
@@ -84,8 +88,8 @@ const useResolvedFields = (): [FieldsType, boolean] => {
8488
8589 setLastSelectedData ( componentData ) ;
8690
87- if ( selectedItem && componentConfig ?. resolveFields ) {
88- return await componentConfig ? .resolveFields (
91+ if ( hasComponentResolver ) {
92+ return await componentConfig ! . resolveFields ! (
8993 componentData as ComponentData ,
9094 {
9195 changed,
@@ -97,8 +101,8 @@ const useResolvedFields = (): [FieldsType, boolean] => {
97101 ) ;
98102 }
99103
100- if ( ! selectedItem && config . root ?. resolveFields ) {
101- return await config . root ? .resolveFields ( componentData , {
104+ if ( hasRootResolver ) {
105+ return await config . root ! . resolveFields ! ( componentData , {
102106 changed,
103107 fields,
104108 lastFields : resolvedFields ,
@@ -118,14 +122,18 @@ const useResolvedFields = (): [FieldsType, boolean] => {
118122 ) ;
119123
120124 useEffect ( ( ) => {
121- setFieldsLoading ( true ) ;
125+ if ( hasResolver ) {
126+ setFieldsLoading ( true ) ;
122127
123- resolveFields ( defaultFields ) . then ( ( fields ) => {
124- setResolvedFields ( fields || { } ) ;
128+ resolveFields ( defaultFields ) . then ( ( fields ) => {
129+ setResolvedFields ( fields || { } ) ;
125130
126- setFieldsLoading ( false ) ;
127- } ) ;
128- } , [ data , defaultFields , state . ui . itemSelector ] ) ;
131+ setFieldsLoading ( false ) ;
132+ } ) ;
133+ } else {
134+ setResolvedFields ( defaultFields ) ;
135+ }
136+ } , [ data , defaultFields , state . ui . itemSelector , hasResolver ] ) ;
129137
130138 return [ resolvedFields , fieldsLoading ] ;
131139} ;
0 commit comments