Show a colour-coded team picker instead of cycling with T
T used to silently cycle Model.activeTeamID through the caller's teams with no visible list of choices. It now opens a full picker (modelled on the existing user picker) listing every team plus "All teams", each with a stable identity colour from a new six-colour theme palette. The same colour now also shows as a bullet next to "team: <name>" in the header, so the active team stays visible without opening the picker. Adds an Identity palette to the theme package (six hues, skipping the ones that already mean firing/critical), Styles.TeamColor to pick one by team id, and identity_1..6 as theme-file tokens alongside the existing twelve so a fully custom theme can still set every token.
This commit is contained in:
+15
-1
@@ -28,7 +28,11 @@ func (m Model) View() string {
|
||||
func (m Model) renderHeader() string {
|
||||
title := m.styles.Header.Render("terdut-tui")
|
||||
if len(m.teams) > 0 {
|
||||
title += m.styles.Muted.Render(" team: " + m.activeTeamLabel())
|
||||
dot := m.styles.Muted.Render("●")
|
||||
if t, ok := m.activeTeam(); ok {
|
||||
dot = m.styles.TeamColor(t.ID).Render("●")
|
||||
}
|
||||
title += " " + dot + m.styles.Muted.Render(" team: "+m.activeTeamLabel())
|
||||
}
|
||||
right := m.styles.Muted.Render(m.serverURL)
|
||||
return spread(title, right, m.width)
|
||||
@@ -153,6 +157,8 @@ func (m Model) renderBody() string {
|
||||
}
|
||||
case modeUserPicker:
|
||||
return m.renderUserPicker()
|
||||
case modeTeamPicker:
|
||||
return m.renderTeamPicker()
|
||||
case modeUserCreate:
|
||||
return m.renderUserCreate()
|
||||
case modeUserNotifyEdit:
|
||||
@@ -210,6 +216,9 @@ func (m Model) renderFooter() string {
|
||||
}
|
||||
return withStatus(fmt.Sprintf(" j/k·navigate enter·assign %s esc·cancel", scope))
|
||||
|
||||
case modeTeamPicker:
|
||||
return withStatus(" j/k·navigate enter·select esc·cancel")
|
||||
|
||||
case modeUserCreate:
|
||||
return withStatus(" tab·next field enter·create esc·cancel")
|
||||
|
||||
@@ -496,6 +505,11 @@ func (m Model) renderUserPicker() string {
|
||||
return header + m.userPickerTable.View()
|
||||
}
|
||||
|
||||
func (m Model) renderTeamPicker() string {
|
||||
header := "\n " + m.styles.Bold.Render("Select a team:") + "\n\n"
|
||||
return header + m.teamPickerTable.View()
|
||||
}
|
||||
|
||||
// ── Detail ─────────────────────────────────────────────────────────────────
|
||||
|
||||
func (m Model) renderDetail() string {
|
||||
|
||||
Reference in New Issue
Block a user