package main
import "strings"
func (m model) viewDashboard() string {
var b strings.Builder
if !m.healthChecked {
b.WriteString(m.spin.View() + " " + styleBody.Render("Vérification de l'état…") + "\n")
} else {
kubectlGlyph := glyph(statusOK)
kubectlVal := "joignable"
if !m.kubectlOK {
kubectlGlyph = glyph(statusWarn)
kubectlVal = "injoignable"
}
b.WriteString(row(kubectlGlyph, "kubectl", kubectlVal) + "\n")
if !m.kubectlOK && m.k3sYAMLPresent {
b.WriteString("\n" + stylePanelDanger.Render(
styleWarn.Render("!")+" kubeconfig introuvable pour cet utilisateur\n"+
styleMuted.Render(k3sYAMLPath+" existe mais n'est pas repris dans ~/.kube/config.")+"\n"+
styleBody.Render("→ ")+styleAccent.Render("f")+styleBody.Render(" pour réparer automatiquement"),
) + "\n")
} else if !m.kubectlOK {
b.WriteString("\n" + styleWarn.Render("!") + " " + styleMuted.Render("kubectl injoignable et "+k3sYAMLPath+" introuvable — vérifie que k3s tourne sur cette machine.") + "\n")
}
if m.fixing {
b.WriteString("\n" + m.spin.View() + " " + styleBody.Render("Réparation du kubeconfig…") + "\n")
} else if m.fixErr != nil {
b.WriteString("\n" + styleDanger.Render("Échec de la réparation : "+m.fixErr.Error()) + "\n")
}
if m.kubectlOK {
podGlyph := glyph(statusOK)
if !m.podHealthy {
podGlyph = glyph(statusWarn)
}
if m.podErr != nil {
b.WriteString(row(glyph(statusWarn), "pod", "erreur : "+m.podErr.Error()) + "\n")
} else {
b.WriteString(row(podGlyph, "pod", m.podLine) + "\n")
}
}
}
b.WriteString("\n")
b.WriteString(stylePanel.Render(styleBold.Render("→ Vérifier les mises à jour") + " " + styleMuted.Render("(entrée)")))
return b.String()
}