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
started bool
connected bool
quitting bool
}
func Run(useProxy bool, prefill string) error {
@@ -58,7 +59,10 @@ func Run(useProxy bool, prefill string) error {
defer cancel()
sp := spinner.New()
sp.Spinner = spinner.Line
sp.Spinner = spinner.Spinner{
Frames: []string{"◇", "◈", "◆", "◈"},
FPS: spinner.Line.FPS,
}
username := textinput.New()
username.Placeholder = "username"
@@ -110,8 +114,13 @@ func (a *App) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
return a.updateLogin(msg)
case screenConnecting, screenDashboard:
if msg.String() == "q" || msg.String() == "ctrl+c" {
a.cancel()
return a, tea.Quit
if !a.quitting {
a.quitting = true
a.status = "disconnecting"
a.screen = screenConnecting
a.cancel()
}
return a, nil
}
case screenError:
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
return a, nil
}
if a.connected {
if a.connected || a.quitting {
return a, tea.Quit
}
if msg.err != nil {