Fix formattings

This commit is contained in:
Adria Navarro 2024-09-25 18:17:55 +02:00
parent 7f5f4d9ecb
commit 680cf5803d
1 changed files with 27 additions and 29 deletions

View File

@ -1,40 +1,39 @@
import { FieldType, RelationshipType } from "@budibase/types"
import { Helpers } from "@budibase/bbui"
const columnTypeManyOverrides = {
[FieldType.DATETIME]: {
overridedType: FieldType.STRING,
parser: (value, field) => {
const { timeOnly, dateOnly, ignoreTimezones } = field
const columnTypeManyTypeOverrides = {
[FieldType.DATETIME]: FieldType.STRING,
[FieldType.BOOLEAN]: FieldType.STRING,
[FieldType.SIGNATURE_SINGLE]: FieldType.ATTACHMENTS,
}
const columnTypeManyParser = {
[FieldType.DATETIME]: (value, field) => {
function parseDate(value) {
const { timeOnly, dateOnly, ignoreTimezones } = field || {}
const enableTime = !dateOnly
const parsedValue = Helpers.parseDate(value, {
timeOnly,
enableTime,
ignoreTimezones,
})
const result = Helpers.getDateDisplayValue(parsedValue, {
const parsed = Helpers.getDateDisplayValue(parsedValue, {
enableTime,
timeOnly,
})
return result
},
},
[FieldType.BOOLEAN]: {
overridedType: FieldType.STRING,
parser: value => !!value,
},
[FieldType.SIGNATURE_SINGLE]: {
overridedType: FieldType.ATTACHMENTS,
},
[FieldType.BB_REFERENCE_SINGLE]: {
parser: value => [...new Map(value.map(i => [i._id, i])).values()],
},
[FieldType.BB_REFERENCE]: {
parser: value => [...new Map(value.map(i => [i._id, i])).values()],
},
[FieldType.ARRAY]: {
parser: value => Array.from(new Set(value)),
return parsed
}
return value?.map(v => parseDate(v))
},
[FieldType.BOOLEAN]: value => value?.map(v => !!v),
[FieldType.BB_REFERENCE_SINGLE]: value => [
...new Map(value.map(i => [i._id, i])).values(),
],
[FieldType.BB_REFERENCE]: value => [
...new Map(value.map(i => [i._id, i])).values(),
],
[FieldType.ARRAY]: value => Array.from(new Set(value)),
}
export function enrichSchemaWithRelColumns(schema) {
@ -60,8 +59,7 @@ export function enrichSchemaWithRelColumns(schema) {
name,
related: { field: c, subField: relColumn },
cellRenderType:
(!fromSingle &&
columnTypeManyOverrides[relField.type]?.overridedType) ||
(!fromSingle && columnTypeManyTypeOverrides[relField.type]) ||
relField.type,
}
}
@ -81,11 +79,11 @@ export function getRelatedTableValues(row, field, fromField) {
if (fromSingle) {
result = row[field.related.field]?.[0]?.[field.related.subField]
} else {
const parser =
columnTypeManyOverrides[field.type]?.parser || (value => value)
const parser = columnTypeManyParser[field.type] || (value => value)
result = parser(
row[field.related.field].flatMap(r => r[field.related.subField], field)
row[field.related.field].flatMap(r => r[field.related.subField]),
field
)
if (