Skip to content

Commit 8c706cd

Browse files
committed
fix: don't show field loader if no resolver defined
1 parent 61e1653 commit 8c706cd

1 file changed

Lines changed: 18 additions & 10 deletions

File tree

  • packages/core/components/Puck/components/Fields

packages/core/components/Puck/components/Fields/index.tsx

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)