fix(tui): center all tabs, full-screen SFTP, muted inline keybindings

This commit is contained in:
swanadiva
2026-06-23 17:12:12 +07:00
parent c7568e0bf4
commit 7f197b9e3a
8 changed files with 355 additions and 232 deletions
+18 -14
View File
@@ -526,20 +526,21 @@ func (t *SFTPBrowserTab) View() string {
defer t.mu.Unlock()
if !t.connected && t.err != nil {
return fmt.Sprintf("%s\n\n%s",
ErrorStyle.Render(fmt.Sprintf("SFTP Error: %v", t.err)),
SubtitleStyle.Render("Press Esc to close"))
var b strings.Builder
b.WriteString(lipgloss.PlaceHorizontal(t.width, lipgloss.Center,
ErrorStyle.Render(fmt.Sprintf("SFTP Error: %v", t.err))))
b.WriteString("\n\n")
b.WriteString(lipgloss.PlaceHorizontal(t.width, lipgloss.Center,
SubtitleStyle.Render("Press Esc to close")))
return b.String()
}
if !t.connected {
return SubtitleStyle.Render(fmt.Sprintf("Connecting SFTP to %s...", t.host.Name))
return lipgloss.PlaceHorizontal(t.width, lipgloss.Center,
SubtitleStyle.Render(fmt.Sprintf("Connecting SFTP to %s...", t.host.Name)))
}
contentW := t.width
if contentW < 40 {
contentW = 80
}
halfW := contentW/2 - 1
halfW := t.width / 2
if halfW < 20 {
halfW = 20
}
@@ -549,21 +550,24 @@ func (t *SFTPBrowserTab) View() string {
var b strings.Builder
b.WriteString(AppTitleStyle.Render(fmt.Sprintf("SFTP: %s@%s", t.host.Username, t.host.Hostname)))
b.WriteString(lipgloss.PlaceHorizontal(t.width, lipgloss.Center,
AppTitleStyle.Render(fmt.Sprintf("SFTP: %s@%s", t.host.Username, t.host.Hostname))))
b.WriteString("\n")
b.WriteString(lipgloss.JoinHorizontal(lipgloss.Top, leftView, rightView))
if t.err != nil {
b.WriteString("\n" + ErrorStyle.Render(fmt.Sprintf("Error: %v", t.err)))
b.WriteString("\n" + lipgloss.PlaceHorizontal(t.width, lipgloss.Center,
ErrorStyle.Render(fmt.Sprintf("Error: %v", t.err))))
}
if t.transferring && t.transferMsg != "" {
b.WriteString("\n" + InfoStyle.Render(t.transferMsg))
b.WriteString("\n" + lipgloss.PlaceHorizontal(t.width, lipgloss.Center,
InfoStyle.Render(t.transferMsg)))
}
b.WriteString("\n" + SubtitleStyle.Render(
"Tab:switch ↑↓:nav /:filter C:copy D:delete N:mkdir R:refresh Esc:close"))
b.WriteString("\n" + lipgloss.PlaceHorizontal(t.width, lipgloss.Center,
SubtitleStyle.Render("Tab:switch ↑↓:nav /:filter C:copy D:delete N:mkdir R:refresh Esc:close Ctrl+Tab:switch Ctrl+Q:close")))
return b.String()
}