| 12345678910111213141516171819202122232425262728293031 |
- package header
- import (
- "fmt"
- "fbtop/internal/shared"
- "charm.land/lipgloss/v2"
- )
- var (
- titleStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("63"))
- urlStyle = lipgloss.NewStyle().Faint(true)
- dotStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("42"))
- )
- func Render(state shared.State, url string, width int) string {
- dot := "● Disconnected"
- if state.Connected {
- dot = dotStyle.Render("● Connected")
- }
- title := titleStyle.Render("fbtop")
- urlStr := urlStyle.Render(url)
- updated := state.UpdatedAt.Format("15:04:05")
- header := fmt.Sprintf(" %s %s %s\n Components: %d Updated: %s",
- title, urlStr, dot, len(state.Comps), updated)
- return lipgloss.NewStyle().Width(width).Render(header)
- }
|