Compare commits

...

10 Commits

4 changed files with 24 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
'use client'
import type { I18nClient } from '@payloadcms/translations'
import type { ClientField } from 'payload'
import { fieldAffectsData, flattenTopLevelFields } from 'payload/shared'
@@ -6,10 +7,10 @@ import { fieldAffectsData, flattenTopLevelFields } from 'payload/shared'
export const getTextFieldsToBeSearched = (
listSearchableFields: string[],
fields: ClientField[],
i18n: I18nClient,
): ClientField[] => {
if (listSearchableFields) {
const flattenedFields = flattenTopLevelFields(fields) as ClientField[]
const flattenedFields = flattenTopLevelFields({ fields, i18n }) as ClientField[]
return flattenedFields.filter(
(field) => fieldAffectsData(field) && listSearchableFields.includes(field.name),
)

View File

@@ -86,6 +86,7 @@ export const ListControls: React.FC<ListControlsProps> = (props) => {
const listSearchableFields = getTextFieldsToBeSearched(
collectionConfig.admin.listSearchableFields,
collectionConfig.fields,
i18n,
)
const searchLabelTranslated = useRef(

View File

@@ -1,6 +1,7 @@
'use client'
import type { ClientCollectionConfig, ClientField } from 'payload'
import { useTranslation } from '../providers/Translation/index.js'
import { flattenTopLevelFields } from 'payload/shared'
export const useUseTitleField = (collection: ClientCollectionConfig): ClientField => {
@@ -8,8 +9,9 @@ export const useUseTitleField = (collection: ClientCollectionConfig): ClientFiel
admin: { useAsTitle },
fields,
} = collection
const { i18n } = useTranslation()
const topLevelFields = flattenTopLevelFields(fields) as ClientField[]
const topLevelFields = flattenTopLevelFields({ fields, i18n }) as ClientField[]
return topLevelFields?.find((field) => 'name' in field && field.name === useAsTitle)
}

View File

@@ -804,6 +804,23 @@ describe('List View', () => {
})
describe('table columns', () => {
const openColumnControls = async () => {
await page.locator('.list-controls__toggle-columns').click()
await expect(page.locator('.list-controls__columns.rah-static--height-auto')).toBeVisible()
}
test('should render field in group as column', async () => {
await createPost({ group: { title: 'nested group title 1' } })
await page.goto(postsUrl.list)
await openColumnControls()
await page
.locator('.column-selector .column-selector__column', {
hasText: exactText('Group > Title'),
})
.click()
await expect(page.locator('.row-1 .cell-group-title')).toHaveText('nested group title 1')
})
test('should hide field column when field.hidden is true', async () => {
await page.goto(postsUrl.list)
await page.locator('.list-controls__toggle-columns').click()