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
33 lines
933 B
Plaintext
33 lines
933 B
Plaintext
'use client';
|
|
|
|
import { fieldAffectsData } from 'payload/shared';
|
|
export const buildPathSegments = fields => {
|
|
return fields.reduce((acc, field) => {
|
|
const fields = 'fields' in field ? field.fields : undefined;
|
|
if (fields) {
|
|
if (fieldAffectsData(field)) {
|
|
// group, block, array
|
|
acc.push(`${field.name}.`);
|
|
} else {
|
|
// rows, collapsibles, unnamed-tab
|
|
acc.push(...buildPathSegments(fields));
|
|
}
|
|
} else if (field.type === 'tabs') {
|
|
// tabs
|
|
if ('tabs' in field) {
|
|
field.tabs?.forEach(tab => {
|
|
if ('name' in tab) {
|
|
acc.push(`${tab.name}.`);
|
|
} else {
|
|
acc.push(...buildPathSegments(tab.fields));
|
|
}
|
|
});
|
|
}
|
|
} else if (fieldAffectsData(field)) {
|
|
// text, number, date, etc.
|
|
acc.push(field.name);
|
|
}
|
|
return acc;
|
|
}, []);
|
|
};
|
|
//# sourceMappingURL=buildPathSegments.js.map |