Skip to content

Commit bdbfd08

Browse files
committed
fix #1192
1 parent 3d1dae2 commit bdbfd08

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

packages/core/modules/utils/configUtils.js

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,9 +237,13 @@ export const getFieldSrc = (field) => {
237237
if (!field)
238238
return null;
239239
if (typeof field === "object") {
240-
if (!field.func && !!field.type) {
241-
// it's already a config
242-
return "field";
240+
if (field._isFuncArg) {
241+
// it's func arg
242+
return null;
243+
}
244+
if (field._isFunc) {
245+
// it's field func
246+
return "func";
243247
}
244248
if (field.func) {
245249
if (field.func && field.arg) {
@@ -250,6 +254,10 @@ export const getFieldSrc = (field) => {
250254
return "func";
251255
}
252256
}
257+
if (!!field.type) {
258+
// it's already a config
259+
return "field";
260+
}
253261
}
254262
if (field?.get?.("func")) { // immutable
255263
if (field?.get("arg")) {
@@ -267,16 +275,25 @@ export const getFieldConfig = (config, field) => {
267275
if (!field)
268276
return null;
269277
if (typeof field == "object") {
270-
if (!field.func && !!field.type) {
278+
if (!field.func && !!field.type && !!field.widgets) {
271279
// it's already a config
280+
// but don't mess up with obj from `getFuncSignature`, it has `type` but no `widgets` and other keys !
272281
return field;
273282
}
283+
if (field._isFuncArg) {
284+
// it's func arg
285+
return getFuncArgConfig(config, field._funcKey, field._argKey);
286+
}
287+
if (field._isFunc) {
288+
// it's a func
289+
return getFuncConfig(config, field._funcKey);
290+
}
274291
if (field.func) {
275292
if (field.func && field.arg) {
276293
// it's func arg
277294
return getFuncArgConfig(config, field.func, field.arg);
278295
} else {
279-
// it's field func
296+
// it's a func
280297
return getFuncConfig(config, field.func);
281298
}
282299
}

0 commit comments

Comments
 (0)