26c8df11044a54fcaa6205a1ffe0f7241e702b9a

Author
Christian Rocha <christian@rocha.is>
Committer
Ayman Bagabas <ayman.bagabas@gmail.com>
Date

Message

feat: peach highlight for selected rows in the tree

Diff

  1diff --git a/ui/pages/repo/filesitem.go b/ui/pages/repo/filesitem.go
  2index 9f94b455cae40fbfddca906e9badc9430ff8c619..2ca491ce7f5ba4f425a12679b463645cdd37ae78 100644
  3--- a/ui/pages/repo/filesitem.go
  4+++ b/ui/pages/repo/filesitem.go
  5@@ -110,29 +110,33 @@ func (d FileItemDelegate) Render(w io.Writer, m list.Model, index int, listItem
  6 		size = strings.Repeat(" ", sizeLen)
  7 		name = s.TreeFileDir.Render(name)
  8 	}
  9-	var cs lipgloss.Style
 10+	var nameStyle, sizeStyle, modeStyle lipgloss.Style
 11 	mode := i.Mode()
 12 	if index == m.Index() {
 13-		cs = s.TreeItemActive
 14+		nameStyle = s.TreeItemActive
 15+		sizeStyle = s.TreeFileSizeActive
 16+		modeStyle = s.TreeFileModeActive
 17 		fmt.Fprint(w, s.TreeItemSelector.Render(">"))
 18 	} else {
 19-		cs = s.TreeItemInactive
 20+		nameStyle = s.TreeItemInactive
 21+		sizeStyle = s.TreeFileSizeInactive
 22+		modeStyle = s.TreeFileModeInactive
 23 		fmt.Fprint(w, s.TreeItemSelector.Render(" "))
 24 	}
 25-	sizeStyle := s.TreeFileSize.Copy().
 26+	sizeStyle = sizeStyle.Copy().
 27 		Width(8).
 28 		Align(lipgloss.Right).
 29 		MarginLeft(1)
 30 	leftMargin := s.TreeItemSelector.GetMarginLeft() +
 31 		s.TreeItemSelector.GetWidth() +
 32-		s.TreeFileMode.GetMarginLeft() +
 33-		s.TreeFileMode.GetWidth() +
 34-		cs.GetMarginLeft() +
 35+		s.TreeFileModeInactive.GetMarginLeft() +
 36+		s.TreeFileModeInactive.GetWidth() +
 37+		nameStyle.GetMarginLeft() +
 38 		sizeStyle.GetHorizontalFrameSize()
 39 	name = common.TruncateString(name, m.Width()-leftMargin)
 40-	name = cs.Render(name)
 41+	name = nameStyle.Render(name)
 42 	size = sizeStyle.Render(size)
 43-	modeStr := s.TreeFileMode.Render(mode.String())
 44+	modeStr := modeStyle.Render(mode.String())
 45 	truncate := lipgloss.NewStyle().MaxWidth(m.Width() -
 46 		s.TreeItemSelector.GetHorizontalFrameSize() -
 47 		s.TreeItemSelector.GetWidth())
 48diff --git a/ui/styles/styles.go b/ui/styles/styles.go
 49index 191e0cca8c0ae91cfb934ffb574d29719ff25b1a..96ab269d568fb7bd49bee53c61a721ffb993e3f0 100644
 50--- a/ui/styles/styles.go
 51+++ b/ui/styles/styles.go
 52@@ -66,15 +66,17 @@ type Styles struct {
 53 	RefItemTag      lipgloss.Style
 54 	RefPaginator    lipgloss.Style
 55 
 56-	TreeItemSelector lipgloss.Style
 57-	TreeItemActive   lipgloss.Style
 58-	TreeItemInactive lipgloss.Style
 59-	TreeFileDir      lipgloss.Style
 60-	TreeFileMode     lipgloss.Style
 61-	TreeFileSize     lipgloss.Style
 62-	TreeFileContent  lipgloss.Style
 63-	TreePaginator    lipgloss.Style
 64-	TreeNoItems      lipgloss.Style
 65+	TreeItemSelector     lipgloss.Style
 66+	TreeItemActive       lipgloss.Style
 67+	TreeItemInactive     lipgloss.Style
 68+	TreeFileDir          lipgloss.Style
 69+	TreeFileModeInactive lipgloss.Style
 70+	TreeFileModeActive   lipgloss.Style
 71+	TreeFileSizeInactive lipgloss.Style
 72+	TreeFileSizeActive   lipgloss.Style
 73+	TreeFileContent      lipgloss.Style
 74+	TreePaginator        lipgloss.Style
 75+	TreeNoItems          lipgloss.Style
 76 
 77 	Spinner lipgloss.Style
 78 
 79@@ -267,18 +269,25 @@ func DefaultStyles() *Styles {
 80 		MarginLeft(1)
 81 
 82 	s.TreeItemActive = s.TreeItemInactive.Copy().
 83-		Bold(true)
 84+		Bold(true).
 85+		Foreground(lipgloss.Color("210"))
 86 
 87 	s.TreeFileDir = lipgloss.NewStyle().
 88 		Foreground(lipgloss.Color("39"))
 89 
 90-	s.TreeFileMode = s.TreeItemInactive.Copy().
 91+	s.TreeFileModeInactive = s.TreeItemInactive.Copy().
 92 		Width(10).
 93 		Foreground(lipgloss.Color("243"))
 94 
 95-	s.TreeFileSize = s.TreeItemInactive.Copy().
 96+	s.TreeFileModeActive = s.TreeFileModeInactive.Copy().
 97+		Foreground(lipgloss.Color("174"))
 98+
 99+	s.TreeFileSizeInactive = s.TreeItemInactive.Copy().
100 		Foreground(lipgloss.Color("243"))
101 
102+	s.TreeFileSizeActive = s.TreeItemInactive.Copy().
103+		Foreground(lipgloss.Color("174"))
104+
105 	s.TreeFileContent = lipgloss.NewStyle()
106 
107 	s.TreePaginator = s.LogPaginator.Copy()
108@@ -330,7 +339,7 @@ func DefaultStyles() *Styles {
109 	s.TabInactive = lipgloss.NewStyle()
110 
111 	s.TabActive = lipgloss.NewStyle().
112-		Foreground(lipgloss.Color("#6E6ED8")).
113+		Foreground(lipgloss.Color("63")).
114 		Underline(true)
115 
116 	s.TabSeparator = lipgloss.NewStyle().