dapth-payload-plugin-tree-list
Version:
A plugin for Payload CMS that adds a collapsible Tree list view.
26 lines (25 loc) • 727 B
JavaScript
export function generateTreeList(docs) {
if (!docs || !docs.length) {
return [];
}
const docsById = docs.reduce((acc, doc, index)=>{
acc[doc.id] = {
...doc,
children: [],
originalIndex: index
};
return acc;
}, {});
const childIds = new Set();
const rootDocs = [];
docs.forEach((doc)=>{
if (doc.parent === null || !docsById[doc.parent]) {
rootDocs.push(docsById[doc.id]);
} else {
docsById[doc.parent].children.push(docsById[doc.id]);
childIds.add(doc.id);
}
});
return rootDocs.filter((doc)=>!childIds.has(doc.id));
}
//# sourceMappingURL=generateTreeList.js.map