diff options
Diffstat (limited to 'screens/aux.go')
| -rw-r--r-- | screens/aux.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/screens/aux.go b/screens/aux.go new file mode 100644 index 0000000..b283d5e --- /dev/null +++ b/screens/aux.go @@ -0,0 +1,47 @@ +package screens + +import ( + "fmt" + + "github.com/charmbracelet/bubbles/spinner" + tea "github.com/charmbracelet/bubbletea" +) + +func _aux() tea.Model { + s := spinner.New() + s.Spinner = spinner.Dot + return &auxScreen{ + spinner: s, + } +} + +type auxScreen struct { + spinner spinner.Model +} + +func (a *auxScreen) Init() tea.Cmd { + return a.spinner.Tick +} + +func (a *auxScreen) Update(msg tea.Msg) (tea.Model, tea.Cmd) { + switch msg := msg.(type) { + case tea.KeyMsg: + switch msg.String() { + case "ctrl+c", "q": + return a, tea.Quit + case "r": + return a, switchScreen(_root()) + default: + return a, nil + } + default: + var cmd tea.Cmd + a.spinner, cmd = a.spinner.Update(msg) + return a, cmd + } +} + +func (a *auxScreen) View() string { + str := fmt.Sprintf("%s Loading forever... Press 'r' to return to root or 'q' to quit.\n\n", a.spinner.View()) + return str +} |
