fix(ui): show "no description" when a repo doesn't have one

Ayman Bagabas created

Change summary

ui/pages/repo/repo.go      | 12 ++++++++----
ui/pages/selection/item.go |  9 ++++++---
2 files changed, 14 insertions(+), 7 deletions(-)

Detailed changes

ui/pages/repo/repo.go 🔗

@@ -262,23 +262,27 @@ func (r *Repo) headerView() string {
 	}
 	cfg := r.cfg
 	name := r.common.Styles.RepoHeaderName.Render(r.selectedRepo.Name())
+	desc := r.selectedRepo.Description()
+	if desc == "" {
+		desc = "No description"
+	}
+	desc = r.common.Styles.RepoHeaderDesc.Render(desc)
 	url := git.RepoURL(cfg.Host, cfg.Port, r.selectedRepo.Repo())
 	// TODO move this into a style.
 	url = lipgloss.NewStyle().
 		MarginLeft(1).
 		Foreground(lipgloss.Color("168")).
-		Width(r.common.Width - lipgloss.Width(name) - 1).
+		Width(r.common.Width - lipgloss.Width(desc) - 1).
 		Align(lipgloss.Right).
 		Render(url)
-	desc := r.common.Styles.RepoHeaderDesc.Render(r.selectedRepo.Description())
 	style := r.common.Styles.RepoHeader.Copy().Width(r.common.Width)
 	return style.Render(
 		lipgloss.JoinVertical(lipgloss.Top,
+			name,
 			lipgloss.JoinHorizontal(lipgloss.Left,
-				name,
+				desc,
 				url,
 			),
-			desc,
 		),
 	)
 }

ui/pages/selection/item.go 🔗

@@ -147,10 +147,13 @@ func (d ItemDelegate) Render(w io.Writer, m list.Model, index int, listItem list
 	}
 	title = titleStyle.Render(title)
 	desc := i.Description()
+	descStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("243"))
+	if desc == "" {
+		desc = "No description"
+		descStyle = descStyle.Faint(true)
+	}
 	desc = common.TruncateString(desc, m.Width()-itemStyle.GetHorizontalFrameSize())
-	desc = lipgloss.NewStyle().
-		Faint(true).
-		Render(desc)
+	desc = descStyle.Render(desc)
 
 	s.WriteString(lipgloss.JoinHorizontal(lipgloss.Bottom, title, updated))
 	s.WriteString("\n")