MCPcopy Create free account
hub / github.com/ZenNotes/zennotes / getTreeRenderEntries

Function getTreeRenderEntries

packages/app-core/src/components/Sidebar.tsx:3884–3931  ·  view source on GitHub ↗
(
  node: TreeNode,
  showNotes: boolean,
  sortComparator: ((a: NoteMeta, b: NoteMeta) => number) | null,
  groupByKind: boolean,
)

Source from the content-addressed store, hash-verified

3882}
3883
3884function getTreeRenderEntries(
3885 node: TreeNode,
3886 showNotes: boolean,
3887 sortComparator: ((a: NoteMeta, b: NoteMeta) => number) | null,
3888 groupByKind: boolean,
3889): TreeRenderEntry[] {
3890 const sortedChildren = node.children.slice().sort(compareFolderNodes);
3891
3892 if (!showNotes) {
3893 return sortedChildren.map((child) => ({ type: "folder", node: child }));
3894 }
3895
3896 if (sortComparator || groupByKind) {
3897 return [
3898 ...sortedChildren.map(
3899 (child) => ({ type: "folder", node: child }) as const,
3900 ),
3901 ...node.notes
3902 .slice()
3903 .sort(sortComparator ?? ((a, b) => a.siblingOrder - b.siblingOrder))
3904 .map((note) => ({ type: "note", note }) as const),
3905 ...node.assets
3906 .slice()
3907 .sort((a, b) => a.siblingOrder - b.siblingOrder)
3908 .map((asset) => ({ type: "asset", asset }) as const),
3909 ];
3910 }
3911
3912 return [
3913 ...node.children.map((child) => ({
3914 type: "folder" as const,
3915 node: child,
3916 siblingOrder: child.siblingOrder,
3917 })),
3918 ...node.notes.map((note) => ({
3919 type: "note" as const,
3920 note,
3921 siblingOrder: note.siblingOrder,
3922 })),
3923 ...node.assets.map((asset) => ({
3924 type: "asset" as const,
3925 asset,
3926 siblingOrder: asset.siblingOrder,
3927 })),
3928 ]
3929 .sort((a, b) => a.siblingOrder - b.siblingOrder)
3930 .map(({ siblingOrder: _siblingOrder, ...entry }) => entry);
3931}
3932
3933function countNotesInTree(node: TreeNode): number {
3934 return (

Callers 3

FolderTreeContentsFunction · 0.85
FolderTreeRootFunction · 0.85
SubTreeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected