summaryrefslogtreecommitdiff
path: root/internal/client/ui/networks/networks.go
blob: 611e682b78de95413973a8fc8ec75044b98ddc10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package networks

import (
	"fmt"
	"strings"

	tea "github.com/charmbracelet/bubbletea"
	"github.com/charmbracelet/lipgloss"
)

var (
	style        = lipgloss.NewStyle().Border(lipgloss.ThickBorder(), true, false)
	networkStyle = lipgloss.NewStyle().Width(6).Height(3).PaddingTop(1).
			Align(lipgloss.Center).
			Foreground(lipgloss.Color("#ffbf00")).Background(lipgloss.Color("#4a3d5c")).
			Border(lipgloss.ThickBorder(), false, true)
	networks = []string{
		"󰜈 ",
		" ",
		"Kr",
		" ",
		// "Test",
		// "██████\n██████\n██████",
		// " ▄▄▄▄ \n █  █ \n ▀▀▀▀ ",
		// "      \n  󰜈  \n     ",
		// "Hmm",
		// "Another",
	}
)

type Model struct {
	networks []string
}

func New() Model {
	return Model{
		networks: networks,
	}
}

func (m Model) Init() tea.Cmd {
	return nil
}

func (m Model) View() string {
	border := lipgloss.ThickBorder()
	var builder strings.Builder

	top := strings.Repeat(border.Top, 6)
	builder.WriteString(fmt.Sprintf("%s%s%s\n", border.TopLeft, top, border.TopRight))
	for i, network := range m.networks {
		if i != 0 {
			middle := strings.Repeat(border.Top, 6)
			builder.WriteString(fmt.Sprintf("\n%s%s%s\n", border.MiddleLeft, middle, border.MiddleRight))
		}
		builder.WriteString(networkStyle.Render(network))
	}
	bottom := strings.Repeat(border.Bottom, 6)
	builder.WriteString(fmt.Sprintf("\n%s%s%s", border.BottomLeft, bottom, border.BottomRight))

	return builder.String()
}

func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
	return m, nil
}