fix bug where creating new file in collapsed folder leads to nothing selected

This commit is contained in:
2026-01-03 21:54:11 +00:00
parent cee3aa323e
commit a711d9abea
8 changed files with 21 additions and 20 deletions
+21 -17
View File
@@ -120,34 +120,36 @@ func (t *FsTree) View() string {
return t.errMsg
}
if len(t.root.children) == 0 {
return "no files/folders\nPress C to create"
}
builder := &strings.Builder{}
t.renderNode(t.root, 0, builder)
rendered := builder.String()
// clamp to height around selected node
if t.selectedNode != nil {
lines := strings.Split(rendered, "\n")
totalLines := len(lines)
selectedLine := t.selectedNode.line
lines := strings.Split(rendered, "\n")
totalLines := len(lines)
selectedLine := t.selectedNode.line
halfHeight := t.height / 2
startLine := selectedLine - halfHeight
halfHeight := t.height / 2
startLine := selectedLine - halfHeight
if startLine < 0 {
startLine = 0
}
endLine := startLine + t.height
if endLine > totalLines {
endLine = totalLines
startLine = endLine - t.height
if startLine < 0 {
startLine = 0
}
endLine := startLine + t.height
if endLine > totalLines {
endLine = totalLines
startLine = endLine - t.height
if startLine < 0 {
startLine = 0
}
}
clampedLines := lines[startLine:endLine]
rendered = strings.Join(clampedLines, "\n")
}
clampedLines := lines[startLine:endLine]
rendered = strings.Join(clampedLines, "\n")
return rendered
}
@@ -351,6 +353,8 @@ func (t *FsTree) CreateNode(folder *FsNode, name string, nodeType FsNodeType) er
if folder.nodeType != FolderNode {
return errors.New("parent node must be a folder. this should not be allowed by ui")
} else if folder.nodeType == FolderNode && !folder.expanded {
folder.expanded = true
}
if name == "" {
-3
View File
@@ -1,3 +0,0 @@
# what is bubbletea?
it's a simple framework based on elm architecture