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

Function FolderTreeRoot

packages/app-core/src/components/Sidebar.tsx:4162–4300  ·  view source on GitHub ↗
({
  label,
  icon,
  folder,
  tree,
  vaultSettings,
  isFolderActive,
  collapsed,
  toggleCollapse,
  setView,
  onContextMenu,
  showNotes,
  selectedPath,
  vaultRoot,
  onSelectNote,
  onOpenAsset,
  onNoteContextMenu,
  onAssetContextMenu,
  sortComparator,
  onDropOnFolder,
  selectedKeys,
  onSelectItem,
  dragPayloadForItem,
  idxCounter,
  vimCursor,
  sidebarFocused,
  groupByKind,
  showSidebarChevrons,
  headerAction,
}: {
  label: string;
  icon: JSX.Element;
  tree: TreeNode;
  /** Optional inline action shown on the right of the header row,
   *  revealed on hover. Used to surface a quick "+" for Quick Notes. */
  headerAction?: JSX.Element;
} & TreeRenderProps)

Source from the content-addressed store, hash-verified

4160}
4161
4162function FolderTreeRoot({
4163 label,
4164 icon,
4165 folder,
4166 tree,
4167 vaultSettings,
4168 isFolderActive,
4169 collapsed,
4170 toggleCollapse,
4171 setView,
4172 onContextMenu,
4173 showNotes,
4174 selectedPath,
4175 vaultRoot,
4176 onSelectNote,
4177 onOpenAsset,
4178 onNoteContextMenu,
4179 onAssetContextMenu,
4180 sortComparator,
4181 onDropOnFolder,
4182 selectedKeys,
4183 onSelectItem,
4184 dragPayloadForItem,
4185 idxCounter,
4186 vimCursor,
4187 sidebarFocused,
4188 groupByKind,
4189 showSidebarChevrons,
4190 headerAction,
4191}: {
4192 label: string;
4193 icon: JSX.Element;
4194 tree: TreeNode;
4195 /** Optional inline action shown on the right of the header row,
4196 * revealed on hover. Used to surface a quick "+" for Quick Notes. */
4197 headerAction?: JSX.Element;
4198} & TreeRenderProps): JSX.Element {
4199 const rootKey = `${folder}:`;
4200 const isCollapsed = collapsed.has(rootKey);
4201 const total = countNotesInTree(tree);
4202 const entries = useMemo(
4203 () => getTreeRenderEntries(tree, showNotes, sortComparator, groupByKind),
4204 [tree, showNotes, sortComparator, groupByKind],
4205 );
4206 const rootActive = isFolderActive(folder, "");
4207 const rootProgressive = shouldProgressivelyRenderEntries(entries);
4208 const rootPrefetchEntries = useMemo(
4209 () =>
4210 rootProgressive
4211 ? entries.slice(0, getInitialSidebarEntryLimit(entries.length, rootProgressive))
4212 : entries,
4213 [entries, rootProgressive],
4214 );
4215 useSidebarVisibleNotePrefetch(rootPrefetchEntries, showNotes && (rootActive || isCollapsed));
4216 const hasChildren = entries.length > 0;
4217 const [dragHover, setDragHover] = useState(false);
4218 const myIdx = idxCounter.value++;
4219

Callers

nothing calls this directly

Calls 10

hasZenItemFunction · 0.90
readDragPayloadFunction · 0.90
countNotesInTreeFunction · 0.85
getTreeRenderEntriesFunction · 0.85
isFolderActiveFunction · 0.85
prefetchSidebarEdgeNotesFunction · 0.85
onContextMenuFunction · 0.85

Tested by

no test coverage detected