Fix crash when many-type related column value is non-array

This commit is contained in:
Andrew Kingston 2024-10-14 12:20:53 +01:00
parent 963b3ae35c
commit 37e601254c
No known key found for this signature in database
1 changed files with 6 additions and 10 deletions

View File

@ -24,9 +24,9 @@ const columnTypeManyParser = {
return parsed return parsed
} }
return value?.map(v => parseDate(v)) return value.map(v => parseDate(v))
}, },
[FieldType.BOOLEAN]: value => value?.map(v => !!v), [FieldType.BOOLEAN]: value => value.map(v => !!v),
[FieldType.BB_REFERENCE_SINGLE]: value => [ [FieldType.BB_REFERENCE_SINGLE]: value => [
...new Map(value.map(i => [i._id, i])).values(), ...new Map(value.map(i => [i._id, i])).values(),
], ],
@ -80,14 +80,10 @@ export function getRelatedTableValues(row, field, fromField) {
result = row[field.related.field]?.[0]?.[field.related.subField] result = row[field.related.field]?.[0]?.[field.related.subField]
} else { } else {
const parser = columnTypeManyParser[field.type] || (value => value) const parser = columnTypeManyParser[field.type] || (value => value)
const value = row[field.related.field]
result = parser(
row[field.related.field]
?.flatMap(r => r[field.related.subField]) ?.flatMap(r => r[field.related.subField])
?.filter(i => i !== undefined && i !== null), ?.filter(i => i !== undefined && i !== null)
field result = parser(value || [], field)
)
if ( if (
[ [
FieldType.STRING, FieldType.STRING,