1
0
Fork 0
mirror of synced 2024-09-20 11:27:56 +12:00

Map types

This commit is contained in:
Adria Navarro 2024-09-06 13:34:23 +02:00
parent c804818adc
commit bb3332a20f

View file

@ -1,5 +1,3 @@
import { FieldType } from "@budibase/types"
const modernize = columns => { const modernize = columns => {
if (!columns) { if (!columns) {
return [] return []
@ -20,7 +18,8 @@ const modernize = columns => {
const removeInvalidAddMissing = ( const removeInvalidAddMissing = (
columns = [], columns = [],
defaultColumns, defaultColumns,
primaryDisplayColumnName primaryDisplayColumnName,
schema
) => { ) => {
const defaultColumnNames = defaultColumns.map(column => column.field) const defaultColumnNames = defaultColumns.map(column => column.field)
const columnNames = columns.map(column => column.field) const columnNames = columns.map(column => column.field)
@ -47,6 +46,16 @@ const removeInvalidAddMissing = (
combinedColumns[primaryDisplayIndex].active = true 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 return combinedColumns
} }
@ -99,7 +108,7 @@ const toGridFormat = draggableListColumns => {
})) }))
} }
const toDraggableListFormat = (gridFormatColumns, createComponent, schema) => { const toDraggableListFormat = (gridFormatColumns, createComponent) => {
return gridFormatColumns.map(column => { return gridFormatColumns.map(column => {
return createComponent( return createComponent(
"@budibase/standard-components/labelfield", "@budibase/standard-components/labelfield",
@ -109,9 +118,7 @@ const toDraggableListFormat = (gridFormatColumns, createComponent, schema) => {
active: column.active, active: column.active,
field: column.field, field: column.field,
label: column.label, label: column.label,
columnType: column.related columnType: column.columnType,
? FieldType.FORMULA
: schema[column.field]?.type,
width: column.width, width: column.width,
conditions: column.conditions, conditions: column.conditions,
related: column.related, related: column.related,
@ -131,13 +138,10 @@ const getColumns = ({
const validatedColumns = removeInvalidAddMissing( const validatedColumns = removeInvalidAddMissing(
modernize(columns), modernize(columns),
getDefault(schema), getDefault(schema),
primaryDisplayColumnName primaryDisplayColumnName,
)
const draggableList = toDraggableListFormat(
validatedColumns,
createComponent,
schema schema
) )
const draggableList = toDraggableListFormat(validatedColumns, createComponent)
const primary = draggableList const primary = draggableList
.filter(entry => entry.field === primaryDisplayColumnName) .filter(entry => entry.field === primaryDisplayColumnName)
.map(instance => ({ ...instance, schema }))[0] .map(instance => ({ ...instance, schema }))[0]