mirror of
https://github.com/docmost/docmost.git
synced 2025-11-17 07:21:08 +10:00
fix tree nodes sort
This commit is contained in:
@ -11,11 +11,13 @@ export type SharedPageTreeNode = {
|
|||||||
parentPageId: string;
|
parentPageId: string;
|
||||||
hasChildren: boolean;
|
hasChildren: boolean;
|
||||||
children: SharedPageTreeNode[];
|
children: SharedPageTreeNode[];
|
||||||
label: string,
|
label: string;
|
||||||
value: string,
|
value: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function buildSharedPageTree(pages: Partial<IPage[]>): SharedPageTreeNode[] {
|
export function buildSharedPageTree(
|
||||||
|
pages: Partial<IPage[]>,
|
||||||
|
): SharedPageTreeNode[] {
|
||||||
const pageMap: Record<string, SharedPageTreeNode> = {};
|
const pageMap: Record<string, SharedPageTreeNode> = {};
|
||||||
|
|
||||||
// Initialize each page as a tree node and store it in a map.
|
// Initialize each page as a tree node and store it in a map.
|
||||||
@ -30,7 +32,7 @@ export function buildSharedPageTree(pages: Partial<IPage[]>): SharedPageTreeNode
|
|||||||
hasChildren: false,
|
hasChildren: false,
|
||||||
spaceId: page.spaceId,
|
spaceId: page.spaceId,
|
||||||
parentPageId: page.parentPageId,
|
parentPageId: page.parentPageId,
|
||||||
label: page.title || 'untitled',
|
label: page.title || "untitled",
|
||||||
value: page.id,
|
value: page.id,
|
||||||
children: [],
|
children: [],
|
||||||
};
|
};
|
||||||
@ -55,6 +57,12 @@ export function buildSharedPageTree(pages: Partial<IPage[]>): SharedPageTreeNode
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Return the sorted tree.
|
function sortTree(nodes: SharedPageTreeNode[]): SharedPageTreeNode[] {
|
||||||
return sortPositionKeys(tree);
|
return sortPositionKeys(nodes).map((node: SharedPageTreeNode) => ({
|
||||||
|
...node,
|
||||||
|
children: sortTree(node.children),
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
return sortTree(tree);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user