From 574b2e5a3c16668a710df57d2625e30906a6329b Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Fri, 6 Sep 2024 13:34:23 +0200 Subject: [PATCH] Map types --- .../GridColumnConfiguration/getColumns.js | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/builder/src/components/design/settings/controls/GridColumnConfiguration/getColumns.js b/packages/builder/src/components/design/settings/controls/GridColumnConfiguration/getColumns.js index 22b42dd427..7380e40de0 100644 --- a/packages/builder/src/components/design/settings/controls/GridColumnConfiguration/getColumns.js +++ b/packages/builder/src/components/design/settings/controls/GridColumnConfiguration/getColumns.js @@ -1,5 +1,3 @@ -import { FieldType } from "@budibase/types" - const modernize = columns => { if (!columns) { return [] @@ -20,7 +18,8 @@ const modernize = columns => { const removeInvalidAddMissing = ( columns = [], defaultColumns, - primaryDisplayColumnName + primaryDisplayColumnName, + schema ) => { const defaultColumnNames = defaultColumns.map(column => column.field) const columnNames = columns.map(column => column.field) @@ -47,6 +46,16 @@ const removeInvalidAddMissing = ( combinedColumns[primaryDisplayIndex].active = true } + for (const column of combinedColumns) { + if (!column.related) { + column.columnType = schema[column.field]?.type + continue + } + + const { field: relField, subField: relSubField } = column.related + column.columnType = schema[relField]?.columns?.[relSubField]?.type + } + return combinedColumns } @@ -99,7 +108,7 @@ const toGridFormat = draggableListColumns => { })) } -const toDraggableListFormat = (gridFormatColumns, createComponent, schema) => { +const toDraggableListFormat = (gridFormatColumns, createComponent) => { return gridFormatColumns.map(column => { return createComponent( "@budibase/standard-components/labelfield", @@ -109,9 +118,7 @@ const toDraggableListFormat = (gridFormatColumns, createComponent, schema) => { active: column.active, field: column.field, label: column.label, - columnType: column.related - ? FieldType.FORMULA - : schema[column.field]?.type, + columnType: column.columnType, width: column.width, conditions: column.conditions, related: column.related, @@ -131,13 +138,10 @@ const getColumns = ({ const validatedColumns = removeInvalidAddMissing( modernize(columns), getDefault(schema), - primaryDisplayColumnName - ) - const draggableList = toDraggableListFormat( - validatedColumns, - createComponent, + primaryDisplayColumnName, schema ) + const draggableList = toDraggableListFormat(validatedColumns, createComponent) const primary = draggableList .filter(entry => entry.field === primaryDisplayColumnName) .map(instance => ({ ...instance, schema }))[0]