package compact

import (
	"fmt"

	ui "github.com/gizak/termui"
)

const (
	mark        = string('\u25C9')
	vBar        = string('\u25AE')
	statusWidth = 3
)

// Status indicator
type Status struct {
	*ui.Par
}

func NewStatus() *Status {
	p := ui.NewPar(mark)
	p.Border = false
	p.Height = 1
	p.Width = statusWidth
	return &Status{p}
}

func (s *Status) Set(val string) {
	// defaults
	text := mark
	color := ui.ColorDefault

	switch val {
	case "running":
		color = ui.ColorGreen
	case "exited":
		color = ui.ColorRed
	case "paused":
		text = fmt.Sprintf("%s%s", vBar, vBar)
	}

	s.Text = text
	s.TextFgColor = color
}
