feat: show notebook tree hierarchy in note move, tabs, and agent config
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m32s

- note-card.tsx: parent/child notebook dropdown with indentation
- notes-tabs-view.tsx: tree-structured notebook picker with check marks
- agent-detail-view.tsx: source/target notebook selects with optgroup tree
- Add notebook-tree-select.tsx shared utility component
This commit is contained in:
Antigravity
2026-05-09 21:15:18 +00:00
parent d90b29b34f
commit a8ad442a93
4 changed files with 160 additions and 34 deletions

View File

@@ -504,18 +504,27 @@ export const NoteCard = memo(function NoteCard({
<StickyNote className="h-4 w-4 mr-2" />
{t('notebookSuggestion.generalNotes')}
</DropdownMenuItem>
{notebooks.map((notebook: any) => {
const NotebookIcon = getNotebookIcon(notebook.icon || 'folder')
return (
<DropdownMenuItem
key={notebook.id}
onClick={() => handleMoveToNotebook(notebook.id)}
>
<NotebookIcon className="h-4 w-4 mr-2" />
{notebook.name}
</DropdownMenuItem>
)
})}
{notebooks.filter(nb => !nb.parentId).map((notebook: any) => {
const NotebookIcon = getNotebookIcon(notebook.icon || 'folder')
const children = notebooks.filter((c: any) => c.parentId === notebook.id)
return (
<div key={notebook.id}>
<DropdownMenuItem onClick={() => handleMoveToNotebook(notebook.id)}>
<NotebookIcon className="h-4 w-4 mr-2" />
{notebook.name}
</DropdownMenuItem>
{children.map((child: any) => {
const ChildIcon = getNotebookIcon(child.icon || 'folder')
return (
<DropdownMenuItem key={child.id} onClick={() => handleMoveToNotebook(child.id)} className="pl-8">
<ChildIcon className="h-4 w-4 mr-2" />
{child.name}
</DropdownMenuItem>
)
})}
</div>
)
})}
</DropdownMenuContent>
</DropdownMenu>
</div>}