aboutsummaryrefslogtreecommitdiff
path: root/components/root/statusbar.go
blob: dd2992f0dbd973534ec99f4e16635cf2a58732a6 (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
package root

import (
	"nectar/styles"
	"nectar/types"

	"github.com/charmbracelet/lipgloss"
)

func StatusBar(globals *types.Globals) string {
	w := lipgloss.Width

	helpText := lipgloss.JoinHorizontal(
		lipgloss.Top,
		styles.PaddedHorizontal.Render("↑/k: up"),
		styles.PaddedHorizontal.Render("↓/j: down"),
		styles.PaddedHorizontal.Render("↹: next"),
		styles.PaddedHorizontal.Render("^n: new"),
		styles.PaddedHorizontal.Render("^↵: connect"),
		styles.PaddedHorizontal.Render("^s: save"),
		styles.PaddedHorizontal.Render("^t: test"),
		styles.PaddedHorizontal.Render("^d: delete"),
		styles.PaddedHorizontal.Render("^c: quit"),
	)

	versionText := lipgloss.JoinHorizontal(
		lipgloss.Top,
		styles.PaddedHorizontal.Render("Nectar "+globals.Version+" ("+globals.BuildDate+")"),
	)

	separator := styles.BaseStyle.Width(globals.Width - w(helpText) - w(versionText)).Render("")

	return styles.StatusBar.Render(
		lipgloss.JoinHorizontal(
			lipgloss.Top,
			helpText,
			separator,
			versionText,
		),
	)
}