main
6d86999 ยท 6 months ago 26 commits
 1package policy
 2
 3import (
 4	"github.com/The-Robin-Hood/ufWall/internal/ufw"
 5	"github.com/The-Robin-Hood/ufWall/internal/ui"
 6
 7	"github.com/charmbracelet/lipgloss"
 8)
 9
10func (m Model) View(policy ufw.Policy) string {
11
12	incomingStyle := ui.GetPolicyStyle(m.styles, policy.DefaultIncoming)
13	outgoingStyle := ui.GetPolicyStyle(m.styles, policy.DefaultOutgoing)
14	routedStyle := ui.GetPolicyStyle(m.styles, policy.DefaultRouted)
15
16	incomingLine := lipgloss.JoinHorizontal(
17		lipgloss.Left,
18		m.styles.Label.Width(15).Render("Incoming:"),
19		incomingStyle.Render(policy.DefaultIncoming),
20	)
21
22	outgoingLine := lipgloss.JoinHorizontal(
23		lipgloss.Left,
24		m.styles.Label.Width(15).Render("Outgoing:"),
25		outgoingStyle.Render(policy.DefaultOutgoing),
26	)
27
28	routedLine := lipgloss.JoinHorizontal(
29		lipgloss.Left,
30		m.styles.Label.Width(15).Render("Routed:"),
31		routedStyle.Render(policy.DefaultRouted),
32	)
33
34	sectionActiveNoMenu := m.menu == nil && m.active
35
36	content := lipgloss.JoinVertical(
37		lipgloss.Top,
38		ui.InsertCursor(incomingLine, m.cursorLine == 0 && sectionActiveNoMenu, m.styles),
39		ui.InsertCursor(outgoingLine, m.cursorLine == 1 && sectionActiveNoMenu, m.styles),
40		ui.InsertCursor(routedLine, m.cursorLine == 2 && sectionActiveNoMenu, m.styles),
41	)
42
43	return ui.TitledBox("Default Policies", content, m.styles, 38, m.active)
44}