Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
43 lines
1.8 KiB
Plaintext
43 lines
1.8 KiB
Plaintext
import { flattenTopLevelFields } from 'payload';
|
|
import { fieldAffectsData } from 'payload/shared';
|
|
import { filterFieldsWithPermissions } from '../providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js';
|
|
import { getInitialColumns } from '../providers/TableColumns/getInitialColumns.js';
|
|
export const getColumns = ({
|
|
clientConfig,
|
|
collectionConfig,
|
|
collectionSlug,
|
|
columns,
|
|
i18n,
|
|
permissions
|
|
}) => {
|
|
const isPolymorphic = Array.isArray(collectionSlug);
|
|
const fields = !isPolymorphic ? collectionConfig?.fields ?? [] : [];
|
|
if (isPolymorphic) {
|
|
for (const collection of collectionSlug) {
|
|
const clientCollectionConfig = clientConfig.collections.find(each => each.slug === collection);
|
|
for (const field of filterFieldsWithPermissions({
|
|
fieldPermissions: permissions?.collections?.[collection]?.fields || true,
|
|
fields: clientCollectionConfig.fields
|
|
})) {
|
|
if (fieldAffectsData(field)) {
|
|
if (fields.some(each => fieldAffectsData(each) && each.name === field.name)) {
|
|
continue;
|
|
}
|
|
}
|
|
fields.push(field);
|
|
}
|
|
}
|
|
}
|
|
return columns?.length ? columns?.filter(column => flattenTopLevelFields(fields, {
|
|
i18n,
|
|
keepPresentationalFields: true,
|
|
moveSubFieldsToTop: true
|
|
})?.some(field => {
|
|
const accessor = 'accessor' in field ? field.accessor : 'name' in field ? field.name : undefined;
|
|
return accessor === column.accessor;
|
|
})) : getInitialColumns(isPolymorphic ? fields : filterFieldsWithPermissions({
|
|
fieldPermissions: typeof collectionSlug === 'string' && permissions?.collections?.[collectionSlug]?.fields ? permissions.collections[collectionSlug].fields : true,
|
|
fields
|
|
}), collectionConfig?.admin?.useAsTitle, isPolymorphic ? [] : collectionConfig?.admin?.defaultColumns);
|
|
};
|
|
//# sourceMappingURL=getColumns.js.map |