Map types
This commit is contained in:
parent
8ee6e52f08
commit
574b2e5a3c
|
@ -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]
|
||||||
|
|
Loading…
Reference in New Issue