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

Function FolderTreeContents

packages/app-core/src/components/Sidebar.tsx:3992–4160  ·  view source on GitHub ↗
({
  folder,
  vaultSettings,
  tree,
  depth,
  collapsed,
  toggleCollapse,
  setView,
  onContextMenu,
  showNotes,
  selectedPath,
  vaultRoot,
  onSelectNote,
  onOpenAsset,
  onNoteContextMenu,
  onAssetContextMenu,
  sortComparator,
  onDropOnFolder,
  selectedKeys,
  onSelectItem,
  dragPayloadForItem,
  idxCounter,
  vimCursor,
  sidebarFocused,
  groupByKind,
  showSidebarChevrons,
  isFolderActive,
}: {
  tree: TreeNode;
  depth: number;
} & TreeRenderProps)

Source from the content-addressed store, hash-verified

3990}
3991
3992function FolderTreeContents({
3993 folder,
3994 vaultSettings,
3995 tree,
3996 depth,
3997 collapsed,
3998 toggleCollapse,
3999 setView,
4000 onContextMenu,
4001 showNotes,
4002 selectedPath,
4003 vaultRoot,
4004 onSelectNote,
4005 onOpenAsset,
4006 onNoteContextMenu,
4007 onAssetContextMenu,
4008 sortComparator,
4009 onDropOnFolder,
4010 selectedKeys,
4011 onSelectItem,
4012 dragPayloadForItem,
4013 idxCounter,
4014 vimCursor,
4015 sidebarFocused,
4016 groupByKind,
4017 showSidebarChevrons,
4018 isFolderActive,
4019}: {
4020 tree: TreeNode;
4021 depth: number;
4022} & TreeRenderProps): JSX.Element {
4023 const entries = useMemo(
4024 () => getTreeRenderEntries(tree, showNotes, sortComparator, groupByKind),
4025 [tree, showNotes, sortComparator, groupByKind],
4026 );
4027 const progressiveEligible = shouldProgressivelyRenderEntries(entries);
4028 const progressive = progressiveEligible && !sidebarFocused;
4029 const [visibleEntryLimit, progressiveSentinelRef] = useProgressiveEntryLimit(
4030 entries.length,
4031 progressive,
4032 );
4033 const selectedEntryIndex = useMemo(
4034 () =>
4035 selectedPath
4036 ? entries.findIndex((entry) => treeRenderEntryPath(entry) === selectedPath)
4037 : -1,
4038 [entries, selectedPath],
4039 );
4040 const effectiveEntryLimit = getSidebarEntryLimitIncludingIndex(
4041 visibleEntryLimit,
4042 entries.length,
4043 selectedEntryIndex,
4044 );
4045 const visibleEntries = useMemo(
4046 () => (progressive ? entries.slice(0, effectiveEntryLimit) : entries),
4047 [effectiveEntryLimit, entries, progressive],
4048 );
4049 useSidebarVisibleNotePrefetch(visibleEntries, showNotes);

Callers

nothing calls this directly

Calls 7

getTreeRenderEntriesFunction · 0.85
useProgressiveEntryLimitFunction · 0.85
treeRenderEntryPathFunction · 0.85
noteSelectionKeyFunction · 0.85

Tested by

no test coverage detected