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