feat: add statusbar symbols

Ayman Bagabas created

Change summary

ui/pages/repo/files.go | 4 ++--
ui/pages/repo/log.go   | 4 ++--
ui/pages/repo/refs.go  | 7 ++++++-
ui/pages/repo/repo.go  | 2 +-
4 files changed, 11 insertions(+), 6 deletions(-)

Detailed changes

ui/pages/repo/files.go 🔗

@@ -298,9 +298,9 @@ func (f *Files) StatusBarValue() string {
 func (f *Files) StatusBarInfo() string {
 	switch f.activeView {
 	case filesViewFiles:
-		return fmt.Sprintf("%d/%d", f.selector.Index()+1, len(f.selector.VisibleItems()))
+		return fmt.Sprintf(" %d/%d", f.selector.Index()+1, len(f.selector.VisibleItems()))
 	case filesViewContent:
-		return fmt.Sprintf("%.f%%", f.code.ScrollPercent()*100)
+		return fmt.Sprintf("☰ %.f%%", f.code.ScrollPercent()*100)
 	default:
 		return ""
 	}

ui/pages/repo/log.go 🔗

@@ -294,9 +294,9 @@ func (l *Log) StatusBarInfo() string {
 	case logViewCommits:
 		// We're using l.nextPage instead of l.selector.Paginator.Page because
 		// of the paginator hack above.
-		return fmt.Sprintf("%d/%d", l.nextPage+1, l.selector.TotalPages())
+		return fmt.Sprintf("p. %d/%d", l.nextPage+1, l.selector.TotalPages())
 	case logViewDiff:
-		return fmt.Sprintf("%.f%%", l.vp.ScrollPercent()*100)
+		return fmt.Sprintf("☰ %.f%%", l.vp.ScrollPercent()*100)
 	default:
 		return ""
 	}

ui/pages/repo/refs.go 🔗

@@ -1,6 +1,7 @@
 package repo
 
 import (
+	"fmt"
 	"sort"
 	"strings"
 
@@ -38,7 +39,7 @@ func NewRefs(common common.Common, refPrefix string) *Refs {
 	s := selector.New(common, []selector.IdentifiableItem{}, RefItemDelegate{&common})
 	s.SetShowFilter(false)
 	s.SetShowHelp(false)
-	s.SetShowPagination(true)
+	s.SetShowPagination(false)
 	s.SetShowStatusBar(false)
 	s.SetShowTitle(false)
 	s.SetFilteringEnabled(false)
@@ -156,6 +157,10 @@ func (r *Refs) StatusBarValue() string {
 
 // StatusBarInfo implements statusbar.StatusBar.
 func (r *Refs) StatusBarInfo() string {
+	totalPages := r.selector.TotalPages()
+	if totalPages > 1 {
+		return fmt.Sprintf("p. %d/%d", r.selector.Page()+1, totalPages)
+	}
 	return ""
 }
 

ui/pages/repo/repo.go 🔗

@@ -301,7 +301,7 @@ func (r *Repo) updateStatusBarCmd() tea.Msg {
 	var info, value string
 	switch r.activeTab {
 	case readmeTab:
-		info = fmt.Sprintf("%.f%%", r.boxes[readmeTab].(*code.Code).ScrollPercent()*100)
+		info = fmt.Sprintf("☰ %.f%%", r.boxes[readmeTab].(*code.Code).ScrollPercent()*100)
 	default:
 		value = r.boxes[r.activeTab].(statusbar.Model).StatusBarValue()
 		info = r.boxes[r.activeTab].(statusbar.Model).StatusBarInfo()