Add loading spinners for async operations

This commit is contained in:
Calmcacil
2026-01-12 23:18:57 +01:00
parent 1c03a706d1
commit 3631339f8b
6 changed files with 35 additions and 12 deletions

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"github.com/calmcacil/wg-admin/internal/config"
"github.com/calmcacil/wg-admin/internal/tui/components"
"github.com/calmcacil/wg-admin/internal/validation"
"github.com/calmcacil/wg-admin/internal/wireguard"
"github.com/charmbracelet/bubbles/spinner"
@@ -142,6 +143,13 @@ func (s *AddScreen) Update(msg tea.Msg) (Screen, tea.Cmd) {
// View renders the add screen
func (s *AddScreen) View() string {
// Breadcrumb: Clients > Add
breadcrumb := components.RenderBreadcrumb([]components.BreadcrumbItem{
{Label: "Clients", ID: "list"},
{Label: "Add", ID: "add"},
})
if s.quitting {
return ""
}
@@ -158,6 +166,8 @@ func (s *AddScreen) View() string {
content := lipgloss.JoinVertical(
lipgloss.Left,
breadcrumb,
"",
addTitleStyle.Render("Add New WireGuard Client"),
s.form.View(),
addHelpStyle.Render("Press Enter to submit • Esc to cancel"),