@@ -47,37 +47,14 @@ func (m model) renderTitle() string {
4747func (m model ) renderFilters () string {
4848 var parts []string
4949
50- if m .showTCP {
51- parts = append (parts , m .theme .Styles .Success .Render ("tcp" ))
52- } else {
53- parts = append (parts , m .theme .Styles .Normal .Render ("tcp" ))
54- }
55-
56- if m .showUDP {
57- parts = append (parts , m .theme .Styles .Success .Render ("udp" ))
58- } else {
59- parts = append (parts , m .theme .Styles .Normal .Render ("udp" ))
60- }
50+ parts = append (parts , m .renderFilterLabel ("t" , "cp" , m .showTCP ))
51+ parts = append (parts , m .renderFilterLabel ("u" , "dp" , m .showUDP ))
6152
6253 parts = append (parts , m .theme .Styles .Border .Render (BoxVertical ))
6354
64- if m .showListening {
65- parts = append (parts , m .theme .Styles .Success .Render ("listen" ))
66- } else {
67- parts = append (parts , m .theme .Styles .Normal .Render ("listen" ))
68- }
69-
70- if m .showEstablished {
71- parts = append (parts , m .theme .Styles .Success .Render ("estab" ))
72- } else {
73- parts = append (parts , m .theme .Styles .Normal .Render ("estab" ))
74- }
75-
76- if m .showOther {
77- parts = append (parts , m .theme .Styles .Success .Render ("other" ))
78- } else {
79- parts = append (parts , m .theme .Styles .Normal .Render ("other" ))
80- }
55+ parts = append (parts , m .renderFilterLabel ("l" , "isten" , m .showListening ))
56+ parts = append (parts , m .renderFilterLabel ("e" , "stab" , m .showEstablished ))
57+ parts = append (parts , m .renderFilterLabel ("o" , "ther" , m .showOther ))
8158
8259 left := " " + strings .Join (parts , " " )
8360
@@ -119,6 +96,18 @@ func (m model) renderTableHeader() string {
11996 return m .theme .Styles .Header .Render (header ) + "\n "
12097}
12198
99+ func (m model ) renderFilterLabel (firstChar , rest string , active bool ) string {
100+ baseStyle := m .theme .Styles .Normal
101+ if active {
102+ baseStyle = m .theme .Styles .Success
103+ }
104+
105+ underlinedFirst := baseStyle .Underline (true ).Render (firstChar )
106+ restPart := baseStyle .Render (rest )
107+
108+ return underlinedFirst + restPart
109+ }
110+
122111func (m model ) renderSeparator () string {
123112 w := m .width - 4
124113 if w < 1 {
@@ -134,8 +123,11 @@ func (m model) renderConnections() string {
134123 pageSize := m .pageSize ()
135124
136125 if len (visible ) == 0 {
137- empty := "\n " + m .theme .Styles .Normal .Render ("no connections match filters" ) + "\n "
138- return empty
126+ b .WriteString (" " + m .theme .Styles .Normal .Render ("no connections match filters" ) + "\n " )
127+ for i := 1 ; i < pageSize ; i ++ {
128+ b .WriteString ("\n " )
129+ }
130+ return b .String ()
139131 }
140132
141133 start := m .scrollOffset (pageSize , len (visible ))
0 commit comments