1
+ import uniqueId from "lodash/uniqueId" ;
1
2
import isUndefined from "lodash/isUndefined" ;
2
3
import pick from "lodash/pick" ;
3
4
import uniq from "lodash/uniq" ;
4
- import uniqueId from "lodash/uniqueId" ;
5
5
6
6
import { DataContext , DataRecord } from "@/services/client/data.types" ;
7
7
import {
@@ -15,8 +15,8 @@ import {
15
15
View ,
16
16
Widget ,
17
17
} from "@/services/client/meta.types" ;
18
- import { getJSON } from "@/utils/data-record" ;
19
18
import { toCamelCase , toKebabCase , toSnakeCase } from "@/utils/names" ;
19
+ import { getJSON } from "@/utils/data-record" ;
20
20
21
21
import {
22
22
getBaseDummy ,
@@ -27,8 +27,8 @@ import { moment } from "@/services/client/l10n.ts";
27
27
import { MetaData , ViewData } from "@/services/client/meta" ;
28
28
import { LoadingCache } from "@/utils/cache" ;
29
29
import convert from "@/utils/convert" ;
30
- import { findViewItems } from "@/utils/schema" ;
31
30
import { Attrs , DEFAULT_ATTRS , FormState } from "./types" ;
31
+ import { findViewItems } from "@/utils/schema" ;
32
32
33
33
import * as WIDGETS from "../widgets" ;
34
34
@@ -251,21 +251,19 @@ export function processContextValues(
251
251
values [ fieldName ] = value
252
252
? compactJson ( value , {
253
253
findItem : ( jsonPath : string ) => {
254
- function findTargetNames ( schema : Schema ) : string [ ] {
254
+ function findTargetNames ( schema : Schema ) : Schema [ ] {
255
255
const items =
256
256
schema . type !== "panel-related" ? ( schema . items ?? [ ] ) : [ ] ;
257
257
const nested = items . flatMap ( ( item ) => findTargetNames ( item ) ) ;
258
258
return [
259
259
...items
260
260
. filter ( ( item ) => item . json && item . name === fieldName )
261
- . map ( ( item ) => {
262
- const itemFields : Record < string , JsonField > =
263
- item . jsonFields ?? { } ;
264
- return Object . values ( itemFields ) . find (
265
- ( jsonItem : JsonField ) => jsonItem . name === jsonPath ,
266
- ) ?. targetName as string ;
267
- } )
268
- . filter ( Boolean ) ,
261
+ . map (
262
+ ( item ) =>
263
+ item . jsonFields ?. find (
264
+ ( jsonItem : JsonField ) => jsonItem . name === jsonPath ,
265
+ ) ?. targetName ,
266
+ ) ,
269
267
...nested ,
270
268
] ;
271
269
}
@@ -435,6 +433,13 @@ export function processView(
435
433
) ;
436
434
}
437
435
436
+ if ( Array . isArray ( res . jsonFields ) ) {
437
+ res . jsonFields = res . jsonFields . reduce (
438
+ ( prev , field ) => ( { ...prev , [ field . name ! ] : field } ) ,
439
+ { } ,
440
+ ) ;
441
+ }
442
+
438
443
return res ;
439
444
}
440
445
0 commit comments