Files
klz-cables.com/.pnpm-store/v10/files/3b/3840257ba17c888da0dc963c738a4514a561eb375c71d6ba5637f299f8c7e93d082fa7a363fbcb82e7a640ef76f42356f6d7588c5797313033bbf179be1b8d
Marc Mintel 5397309103
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
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

38 lines
1.2 KiB
Plaintext

import { fieldIsHiddenOrDisabled, fieldIsID } from 'payload/shared';
/**
* Filters fields that are hidden, disabled, or have `disableListColumn` set to `true`.
* Recurses through `tabs` and any container with `.fields` (e.g., `row`, `group`, `collapsible`).
*/
export const filterFields = incomingFields => {
const shouldSkipField = field => field.type !== 'ui' && fieldIsHiddenOrDisabled(field) && !fieldIsID(field) || field?.admin?.disableListColumn === true;
return (incomingFields ?? []).reduce((acc, field) => {
if (shouldSkipField(field)) {
return acc;
}
// handle tabs
if (field.type === 'tabs' && 'tabs' in field) {
const formattedField = {
...field,
tabs: field.tabs.map(tab => ({
...tab,
fields: filterFields(tab.fields)
}))
};
acc.push(formattedField);
return acc;
}
// handle fields with subfields (row, group, collapsible, etc.)
if ('fields' in field && Array.isArray(field.fields)) {
const formattedField = {
...field,
fields: filterFields(field.fields)
};
acc.push(formattedField);
return acc;
}
// leaf
acc.push(field);
return acc;
}, []);
};
//# sourceMappingURL=filterFields.js.map