header.go

 1// Package header provides header UI components.
 2package header
 3
 4import (
 5	"strings"
 6
 7	tea "github.com/charmbracelet/bubbletea/v2"
 8	"github.com/charmbracelet/soft-serve/pkg/ui/common"
 9)
10
11// Header represents a header component.
12type Header struct {
13	common common.Common
14	text   string
15}
16
17// New creates a new header component.
18func New(c common.Common, text string) *Header {
19	return &Header{
20		common: c,
21		text:   text,
22	}
23}
24
25// SetSize implements common.Component.
26func (h *Header) SetSize(width, height int) {
27	h.common.SetSize(width, height)
28}
29
30// Init implements tea.Model.
31func (h *Header) Init() tea.Cmd {
32	return nil
33}
34
35// Update implements tea.Model.
36func (h *Header) Update(_ tea.Msg) (tea.Model, tea.Cmd) {
37	return h, nil
38}
39
40// View implements tea.Model.
41func (h *Header) View() string {
42	return h.common.Styles.ServerName.Render(strings.TrimSpace(h.text))
43}