({
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)
| 4160 | } |
| 4161 | |
| 4162 | function 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 |
nothing calls this directly
no test coverage detected