Files
klz-cables.com/.pnpm-store/v10/files/13/568ede933b788b56c3b796222b5dafaa222926555bdac11c24ceabd3bd364bf47806a57cb85f197bc4248d1330ab7281c37bee6cd5982332131b82717b59b1
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

118 lines
4.2 KiB
Plaintext

import { fieldAffectsData, tabHasName } from '../fields/config/types.js';
const traverseFields = ({ data, // parent,
fields, result })=>{
fields.forEach((field)=>{
switch(field.type){
case 'collapsible':
case 'row':
{
traverseFields({
data,
fields: field.fields,
result
});
break;
}
case 'group':
{
if (fieldAffectsData(field)) {
let targetResult;
if (typeof field.saveToJWT === 'string') {
targetResult = field.saveToJWT;
result[field.saveToJWT] = data[field.name];
} else if (field.saveToJWT) {
targetResult = field.name;
result[field.name] = data[field.name];
}
const groupData = data[field.name];
const groupResult = targetResult ? result[targetResult] : result;
traverseFields({
data: groupData,
fields: field.fields,
result: groupResult
});
break;
} else {
traverseFields({
data,
fields: field.fields,
result
});
break;
}
}
case 'tab':
{
if (tabHasName(field)) {
let targetResult;
if (typeof field.saveToJWT === 'string') {
targetResult = field.saveToJWT;
result[field.saveToJWT] = data[field.name];
} else if (field.saveToJWT) {
targetResult = field.name;
result[field.name] = data[field.name];
}
const tabData = data[field.name];
const tabResult = targetResult ? result[targetResult] : result;
traverseFields({
data: tabData,
fields: field.fields,
result: tabResult
});
} else {
traverseFields({
data,
fields: field.fields,
result
});
}
break;
}
case 'tabs':
{
traverseFields({
data,
fields: field.tabs.map((tab)=>({
...tab,
type: 'tab'
})),
result
});
break;
}
default:
if (fieldAffectsData(field)) {
if (field.saveToJWT) {
if (typeof field.saveToJWT === 'string') {
result[field.saveToJWT] = data[field.name];
delete result[field.name];
} else {
result[field.name] = data[field.name];
}
} else if (field.saveToJWT === false) {
delete result[field.name];
}
}
}
});
return result;
};
export const getFieldsToSign = (args)=>{
const { collectionConfig, email, sid, user } = args;
const result = {
id: user?.id,
collection: collectionConfig.slug,
email
};
if (sid) {
result.sid = sid;
}
traverseFields({
data: user,
fields: collectionConfig.fields,
result
});
return result;
};
//# sourceMappingURL=getFieldsToSign.js.map