queue.go 595 B

12345678910111213141516171819202122232425262728
  1. package chat
  2. import (
  3. "fmt"
  4. "strings"
  5. "charm.land/lipgloss/v2"
  6. "github.com/charmbracelet/crush/internal/tui/styles"
  7. )
  8. func queuePill(queue int, t *styles.Theme) string {
  9. if queue <= 0 {
  10. return ""
  11. }
  12. triangles := styles.ForegroundGrad("▶▶▶▶▶▶▶▶▶", false, t.RedDark, t.Accent)
  13. if queue < 10 {
  14. triangles = triangles[:queue]
  15. }
  16. allTriangles := strings.Join(triangles, "")
  17. return t.S().Base.
  18. BorderStyle(lipgloss.RoundedBorder()).
  19. BorderForeground(t.BgOverlay).
  20. PaddingLeft(1).
  21. PaddingRight(1).
  22. Render(fmt.Sprintf("%s %d Queued", allTriangles, queue))
  23. }