diff --git a/apps/client/src/features/share/utils.ts b/apps/client/src/features/share/utils.ts index 74ec349f..cc73eb57 100644 --- a/apps/client/src/features/share/utils.ts +++ b/apps/client/src/features/share/utils.ts @@ -11,11 +11,13 @@ export type SharedPageTreeNode = { parentPageId: string; hasChildren: boolean; children: SharedPageTreeNode[]; - label: string, - value: string, + label: string; + value: string; }; -export function buildSharedPageTree(pages: Partial): SharedPageTreeNode[] { +export function buildSharedPageTree( + pages: Partial, +): SharedPageTreeNode[] { const pageMap: Record = {}; // Initialize each page as a tree node and store it in a map. @@ -30,7 +32,7 @@ export function buildSharedPageTree(pages: Partial): SharedPageTreeNode hasChildren: false, spaceId: page.spaceId, parentPageId: page.parentPageId, - label: page.title || 'untitled', + label: page.title || "untitled", value: page.id, children: [], }; @@ -55,6 +57,12 @@ export function buildSharedPageTree(pages: Partial): SharedPageTreeNode } }); - // Return the sorted tree. - return sortPositionKeys(tree); + function sortTree(nodes: SharedPageTreeNode[]): SharedPageTreeNode[] { + return sortPositionKeys(nodes).map((node: SharedPageTreeNode) => ({ + ...node, + children: sortTree(node.children), + })); + } + + return sortTree(tree); }