Files
AFFiNE-Mirror/libs/components/layout/src/header/utils.ts
T
2022-07-27 17:40:42 +08:00

26 lines
666 B
TypeScript

import { TreeItem, TreeItems } from './../workspace-sidebar/page-tree';
const pickPath = (treeItems: TreeItem | TreeItems, targetId: string) => {
const pick = (tree: TreeItem, result: TreeItem[] = []) => {
if (tree.id === targetId) {
result.push(tree);
return result;
}
for (const child of tree?.children || []) {
if (pick(child, result).length) {
result.unshift(tree);
break;
}
}
return result;
};
return (Array.isArray(treeItems) ? treeItems : [treeItems]).map(treeItem =>
pick(treeItem)
);
};
export { pickPath };