({
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)
| 3990 | } |
| 3991 | |
| 3992 | function 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); |
nothing calls this directly
no test coverage detected