fix: SFTP auto-refresh after file transfer

- Added program *tea.Program to SFTPBrowserTab and Model
- SetProgram() allows goroutines to send messages to Bubble Tea
- After transfer: program.Send(sftpRefreshMsg{}) triggers re-render
- Model stores program reference, passes to SFTP tab on creation
This commit is contained in:
swanadiva
2026-06-24 14:32:30 +07:00
parent 6b95385094
commit 55b5c7b5a0
4 changed files with 32 additions and 0 deletions
+9
View File
@@ -27,6 +27,7 @@ type Model struct {
Error error
Quit bool
dataDir string
program *tea.Program
}
// New creates a new TUI model
@@ -47,6 +48,11 @@ func (m *Model) Init() tea.Cmd {
return m.tabs.Init()
}
// SetProgram stores a reference to the tea.Program for sending messages from goroutines
func (m *Model) SetProgram(p *tea.Program) {
m.program = p
}
// Update handles messages and updates the model
func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
switch msg := msg.(type) {
@@ -82,6 +88,9 @@ func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
case openSFTPMsg:
tab := NewSFTPBrowserTab(msg.host, m.dataDir)
if m.program != nil {
tab.SetProgram(m.program)
}
cmd := m.tabs.Add(tab)
return m, cmd