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

Function NoteList

packages/app-core/src/components/NoteList.tsx:64–923  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

62}
63
64export function NoteList(): JSX.Element {
65 const vault = useStore((s) => s.vault)
66 const notes = useStore((s) => s.notes)
67 const folders = useStore((s) => s.folders)
68 const assetFiles = useStore((s) => s.assetFiles)
69 const activeNote = useStore((s) => s.activeNote)
70 // Note-list row slot height tracks the Density tweak; the same DENSITY number
71 // feeds the virtualizer itemSize so windowing matches the painted rows. At
72 // compact the row card also drops to a single excerpt line so it doesn't clip.
73 const rowDensity = useStore((s) => densityFromTweaks(s.themeTweaks))
74 const noteRowH = DENSITY[rowDensity].noteRow
75 const view = useStore((s) => s.view)
76 const vaultSettings = useStore((s) => s.vaultSettings)
77 const selectedPath = useStore((s) => s.selectedPath)
78 const selectNote = useStore((s) => s.selectNote)
79 const previewNote = useStore((s) => s.previewNote)
80 const createAndOpen = useStore((s) => s.createAndOpen)
81 const toggleNoteList = useStore((s) => s.toggleNoteList)
82 const refreshNotes = useStore((s) => s.refreshNotes)
83 const refreshAssets = useStore((s) => s.refreshAssets)
84 const deleteAssetAction = useStore((s) => s.deleteAsset)
85 const noteListWidth = useStore((s) => s.noteListWidth)
86 const setNoteListWidth = useStore((s) => s.setNoteListWidth)
87 const noteSortOrder = useStore((s) => s.noteSortOrder)
88 const renameNote = useStore((s) => s.renameNote)
89 const moveNote = useStore((s) => s.moveNote)
90 const tabsEnabled = useStore((s) => s.tabsEnabled)
91 const openNoteInTab = useStore((s) => s.openNoteInTab)
92 const openDatabase = useStore((s) => s.openDatabase)
93 const prefetchNotes = useStore((s) => s.prefetchNotes)
94 const focusedPanel = useStore((s) => s.focusedPanel)
95 const noteListCursorIndex = useStore((s) => s.noteListCursorIndex)
96 const setFocusedPanel = useStore((s) => s.setFocusedPanel)
97 const systemFolderLabels = useStore((s) => s.systemFolderLabels)
98 const workspaceMode = useStore((s) => s.workspaceMode)
99 const canRevealInFileManager =
100 window.zen.getAppInfo().runtime === 'desktop' && workspaceMode !== 'remote'
101 const canManageAssetFiles =
102 window.zen.getAppInfo().runtime === 'desktop' &&
103 workspaceMode !== 'remote' &&
104 typeof window.zen.renameAsset === 'function' &&
105 typeof window.zen.moveAsset === 'function' &&
106 typeof window.zen.duplicateAsset === 'function'
107 const canDeleteAssets =
108 window.zen.getAppInfo().runtime === 'desktop' &&
109 workspaceMode !== 'remote'
110 const absolutePathLabel =
111 workspaceMode === 'remote' ? 'Copy Server Path' : 'Copy Absolute Path'
112 const folderLabels = useMemo(
113 () => resolveSystemFolderLabels(systemFolderLabels),
114 [systemFolderLabels]
115 )
116 const [menu, setMenu] = useState<{ x: number; y: number; path: string } | null>(null)
117 const [assetMenu, setAssetMenu] = useState<{ x: number; y: number; path: string } | null>(null)
118 const [assetLayout, setAssetLayout] = useState<AssetLayout>(() => {
119 try {
120 const raw = localStorage.getItem(ASSET_LAYOUT_KEY)
121 return raw === 'list' ? 'list' : 'grid'

Callers

nothing calls this directly

Calls 15

densityFromTweaksFunction · 0.90
promptAppFunction · 0.90
confirmAppFunction · 0.90
noteBelongsToFolderViewFunction · 0.90
assetBelongsToFolderViewFunction · 0.90
naturalCompareFunction · 0.90
getVirtualRangeFunction · 0.90
isPrimaryNotesAtRootFunction · 0.90
isDatabaseCsvPathFunction · 0.90
assetTabPathFunction · 0.90
updateSizeFunction · 0.85

Tested by

no test coverage detected