package ui import ( "fmt" "varia.zone/hui/internal/bldr" "varia.zone/hui/internal/conf" "varia.zone/hui/internal/model" ) var allStackPages = []string{ conf.BusyStackPage, conf.ContentStackPage, conf.EmptyStackPage, conf.InitStackPage, } // SwitchStackPage switches to a chosen stack page. func SwitchStackPage(m *model.Model, stackPageName string, args ...string) error { for _, spn := range allStackPages { stackPage, err := bldr.GetBox(m.Builder, spn) if err != nil { return fmt.Errorf("ShowStackPage: %s", err) } if spn == stackPageName { stackPage.Show() if spn == conf.BusyStackPage { if err := showBusyMessage(m, args...); err != nil { return fmt.Errorf("ShowStackPage: %s", err) } } } else { stackPage.Hide() } } return nil } func showBusyMessage(m *model.Model, args ...string) error { label, err := bldr.GetLabel(m.Builder, conf.BusyStackLabel) if err != nil { return fmt.Errorf("showBusyMessage: %s", err) } msg := args[0] label.SetLabel(msg) return nil }