INNER CODE UNIT · Go
New
vladimirvivien/ktop · application/app_ctrl.go:70
func New(k8sC *k8s.Client, metricsSource metrics.MetricsSource) *Application {
tapp := tview.NewApplication()
app := &Application{
k8sClient: k8sC,
metricsSource: metricsSource,
namespace: k8sC.Namespace(),
tviewApp: tapp,
panel: newPanel(tapp),
refreshQ: make(chan struct{}, 1),
pageIdx: -1,
tabIdx: -1, // -1 = header (default focus), 0+ = children panels
navStack: NewNavigationStack(),
}
// Initialize API health tracker with persistent toast callback
app.apiHealthTracker = health.NewAPIHealthTracker(func(state health.APIState, msg string) {
// Use QueueUpdateDraw to safely update UI from callback
tapp.QueueUpdateDraw(func() {