mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-05-31 19:15:17 +02:00
bases view for everythign other than notes
This commit is contained in:
parent
5e81b647ed
commit
5b8f603a92
2 changed files with 44 additions and 0 deletions
|
|
@ -3151,6 +3151,26 @@ function App() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Top-level knowledge folders (except Notes) open as a bases view with folder filter
|
||||||
|
const parts = path.split('/')
|
||||||
|
if (parts.length === 2 && parts[0] === 'knowledge' && parts[1] !== 'Notes') {
|
||||||
|
const folderName = parts[1]
|
||||||
|
setBaseConfigByPath((prev) => ({
|
||||||
|
...prev,
|
||||||
|
[BASES_DEFAULT_TAB_PATH]: {
|
||||||
|
...DEFAULT_BASE_CONFIG,
|
||||||
|
name: folderName,
|
||||||
|
filters: [{ category: 'folder', value: folderName }],
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
if (!selectedPath && !isGraphOpen && !selectedBackgroundTask) {
|
||||||
|
setIsChatSidebarOpen(false)
|
||||||
|
setIsRightPaneMaximized(false)
|
||||||
|
}
|
||||||
|
void navigateToView({ type: 'file', path: BASES_DEFAULT_TAB_PATH })
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
const newExpanded = new Set(expandedPaths)
|
const newExpanded = new Set(expandedPaths)
|
||||||
if (newExpanded.has(path)) {
|
if (newExpanded.has(path)) {
|
||||||
newExpanded.delete(path)
|
newExpanded.delete(path)
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import {
|
||||||
Copy,
|
Copy,
|
||||||
ExternalLink,
|
ExternalLink,
|
||||||
FilePlus,
|
FilePlus,
|
||||||
|
Folder,
|
||||||
FolderPlus,
|
FolderPlus,
|
||||||
AlertTriangle,
|
AlertTriangle,
|
||||||
HelpCircle,
|
HelpCircle,
|
||||||
|
|
@ -1132,6 +1133,29 @@ function Tree({
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Top-level knowledge folders (except Notes) open bases view — render as flat items
|
||||||
|
const parts = item.path.split('/')
|
||||||
|
const isBasesFolder = isDir && parts.length === 2 && parts[0] === 'knowledge' && parts[1] !== 'Notes'
|
||||||
|
|
||||||
|
if (isBasesFolder) {
|
||||||
|
return (
|
||||||
|
<ContextMenu>
|
||||||
|
<ContextMenuTrigger asChild>
|
||||||
|
<SidebarMenuItem>
|
||||||
|
<SidebarMenuButton onClick={() => onSelect(item.path, item.kind)}>
|
||||||
|
<Folder className="size-4 shrink-0" />
|
||||||
|
<div className="flex w-full items-center gap-1 min-w-0">
|
||||||
|
<span className="min-w-0 flex-1 truncate">{item.name}</span>
|
||||||
|
<span className="text-xs text-sidebar-foreground/50 tabular-nums shrink-0">{countFiles(item)}</span>
|
||||||
|
</div>
|
||||||
|
</SidebarMenuButton>
|
||||||
|
</SidebarMenuItem>
|
||||||
|
</ContextMenuTrigger>
|
||||||
|
{contextMenuContent}
|
||||||
|
</ContextMenu>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
if (!isDir) {
|
if (!isDir) {
|
||||||
return (
|
return (
|
||||||
<ContextMenu>
|
<ContextMenu>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue