feat: add bubble tea interface
Deploy tsrun / deploy (push) Successful in 5m43s

This commit is contained in:
2026-07-23 02:54:57 +00:00 Unverified
parent 2cfb64b496
commit 75b657dfd4
+13 -4
View File
@@ -51,6 +51,7 @@ type App struct {
doneCh chan error doneCh chan error
started bool started bool
connected bool connected bool
quitting bool
} }
func Run(useProxy bool, prefill string) error { func Run(useProxy bool, prefill string) error {
@@ -58,7 +59,10 @@ func Run(useProxy bool, prefill string) error {
defer cancel() defer cancel()
sp := spinner.New() sp := spinner.New()
sp.Spinner = spinner.Line sp.Spinner = spinner.Spinner{
Frames: []string{"◇", "◈", "◆", "◈"},
FPS: spinner.Line.FPS,
}
username := textinput.New() username := textinput.New()
username.Placeholder = "username" username.Placeholder = "username"
@@ -110,8 +114,13 @@ func (a *App) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
return a.updateLogin(msg) return a.updateLogin(msg)
case screenConnecting, screenDashboard: case screenConnecting, screenDashboard:
if msg.String() == "q" || msg.String() == "ctrl+c" { if msg.String() == "q" || msg.String() == "ctrl+c" {
a.cancel() if !a.quitting {
return a, tea.Quit a.quitting = true
a.status = "disconnecting"
a.screen = screenConnecting
a.cancel()
}
return a, nil
} }
case screenError: case screenError:
if msg.String() == "enter" || msg.String() == "q" || msg.String() == "esc" || msg.String() == "ctrl+c" { if msg.String() == "enter" || msg.String() == "q" || msg.String() == "esc" || msg.String() == "ctrl+c" {
@@ -138,7 +147,7 @@ func (a *App) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
a.screen = screenError a.screen = screenError
return a, nil return a, nil
} }
if a.connected { if a.connected || a.quitting {
return a, tea.Quit return a, tea.Quit
} }
if msg.err != nil { if msg.err != nil {