payload
Version:
Node, React, Headless CMS and Application Framework built on Next.js
43 lines (42 loc) • 1.4 kB
JavaScript
/**
* Builds breadcrumbs up from child folder
* all the way up to root folder
*/ export const getFolderBreadcrumbs = async ({ breadcrumbs = [], folderID, req })=>{
const { payload, user } = req;
if (folderID && payload.config.folders) {
const folderFieldName = payload.config.folders.fieldName;
const folderQuery = await payload.find({
collection: payload.config.folders.slug,
depth: 0,
limit: 1,
overrideAccess: false,
req,
select: {
name: true,
[folderFieldName]: true
},
user,
where: {
id: {
equals: folderID
}
}
});
const folder = folderQuery.docs[0];
if (folder) {
breadcrumbs.push({
id: folder.id,
name: folder.name
});
if (folder[folderFieldName]) {
return getFolderBreadcrumbs({
breadcrumbs,
folderID: typeof folder[folderFieldName] === 'number' || typeof folder[folderFieldName] === 'string' ? folder[folderFieldName] : folder[folderFieldName].id,
req
});
}
}
}
return breadcrumbs.reverse();
};
//# sourceMappingURL=getFolderBreadcrumbs.js.map