Skip to content

Commit

Permalink
fix: format fields within tab for list controls (#4516)
Browse files Browse the repository at this point in the history
  • Loading branch information
JessChowdhury committed Dec 15, 2023
1 parent a3f29fd commit 2650c70
Showing 1 changed file with 27 additions and 19 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import React from 'react'

import type { SanitizedCollectionConfig } from '../../../../../collections/config/types'
import type { Field } from '../../../../../fields/config/types'

Expand All @@ -8,29 +6,39 @@ import { fieldAffectsData, fieldIsPresentationalOnly } from '../../../../../fiel
const formatFields = (config: SanitizedCollectionConfig): Field[] => {
const hasID =
config.fields.findIndex((field) => fieldAffectsData(field) && field.name === 'id') > -1

const defaultIDField: Field = {
name: 'id',
admin: {
disableBulkEdit: true,
},
label: 'ID',
type: 'text',
}

const shouldSkipField = (field: Field): boolean =>
!fieldIsPresentationalOnly(field) && (field.hidden === true || field.admin?.disabled === true)

const fields: Field[] = config.fields.reduce(
(formatted, field) => {
if (
!fieldIsPresentationalOnly(field) &&
(field.hidden === true || field?.admin?.disabled === true)
) {
if (shouldSkipField(field)) {
return formatted
}

return [...formatted, field]
const formattedField =
field.type === 'tabs'
? {
...field,
tabs: field.tabs.map((tab) => ({
...tab,
fields: tab.fields.filter((tabField) => !shouldSkipField(tabField)),
})),
}
: field

return [...formatted, formattedField]
},
hasID
? []
: [
{
name: 'id',
admin: {
disableBulkEdit: true,
},
label: 'ID',
type: 'text',
},
],
hasID ? [] : [defaultIDField],
)

return fields
Expand Down

0 comments on commit 2650c70

Please sign in to comment.