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}