view.go 548 B

123456789101112131415161718192021222324252627282930
  1. package detail
  2. import (
  3. "fmt"
  4. "sort"
  5. "strings"
  6. "fbtop/internal/shared"
  7. "charm.land/lipgloss/v2"
  8. )
  9. var titleStyle = lipgloss.NewStyle().Bold(true)
  10. func Render(c shared.ComponentMetrics) string {
  11. var b strings.Builder
  12. b.WriteString(fmt.Sprintf("\n %s\n", titleStyle.Render(c.ID+" ("+c.Kind.String()+")")))
  13. keys := make([]string, 0, len(c.Fields))
  14. for k := range c.Fields {
  15. keys = append(keys, k)
  16. }
  17. sort.Strings(keys)
  18. for _, k := range keys {
  19. b.WriteString(fmt.Sprintf(" %-20s %d\n", k, c.Fields[k]))
  20. }
  21. return b.String()
  22. }