mirror of
https://github.com/anotherhadi/spilltea.git
synced 2026-05-20 17:52:33 +02:00
add pages "update" label
Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
@@ -37,6 +37,8 @@ type pageEntry struct {
|
||||
isEditing func(m *Model) bool
|
||||
// resize propagates a new (w, h) to the page model.
|
||||
resize func(m *Model, w, h int)
|
||||
// hasUpdate reports whether the page has unseen updates.
|
||||
hasUpdate func(m *Model) bool
|
||||
}
|
||||
|
||||
var pageRegistry = []pageEntry{
|
||||
@@ -52,6 +54,7 @@ var pageRegistry = []pageEntry{
|
||||
},
|
||||
isEditing: func(m *Model) bool { return m.intercept.IsEditing() },
|
||||
resize: func(m *Model, w, h int) { m.intercept.SetSize(w, h) },
|
||||
hasUpdate: func(m *Model) bool { return m.intercept.HasUnread() },
|
||||
},
|
||||
{
|
||||
id: pageHistory,
|
||||
@@ -114,7 +117,8 @@ var pageRegistry = []pageEntry{
|
||||
m.findingsPage = updated.(findingsUI.Model)
|
||||
return cmd
|
||||
},
|
||||
resize: func(m *Model, w, h int) { m.findingsPage.SetSize(w, h) },
|
||||
resize: func(m *Model, w, h int) { m.findingsPage.SetSize(w, h) },
|
||||
hasUpdate: func(m *Model) bool { return m.findingsPage.HasUnread() },
|
||||
},
|
||||
{
|
||||
id: pageDocs,
|
||||
|
||||
@@ -61,11 +61,15 @@ func (m *Model) renderSidebar() string {
|
||||
lineStyle := lipgloss.NewStyle().Width(inner).Padding(0, 1)
|
||||
|
||||
var items strings.Builder
|
||||
badgeUnread := lipgloss.NewStyle().Foreground(s.Warning).Bold(true)
|
||||
|
||||
for i, entry := range sidebarEntries {
|
||||
selected := entry.id == m.page
|
||||
badgeStyle, textStyle := badgeNormal, textNormal
|
||||
if selected {
|
||||
badgeStyle, textStyle = badgeSelected, textSelected
|
||||
} else if entry.hasUpdate != nil && entry.hasUpdate(m) {
|
||||
badgeStyle = badgeUnread
|
||||
}
|
||||
icon := ""
|
||||
if entry.icon != nil {
|
||||
|
||||
@@ -37,6 +37,9 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
case intercept.RequestArrivedMsg:
|
||||
updated, cmd := m.intercept.Update(msg)
|
||||
m.intercept = updated.(interceptUI.Model)
|
||||
if m.page == pageIntercept {
|
||||
m.intercept.ClearUnread()
|
||||
}
|
||||
return m, tea.Batch(cmd, intercept.WaitForRequest(m.broker))
|
||||
case intercept.ResponseArrivedMsg:
|
||||
updated, cmd := m.intercept.Update(msg)
|
||||
@@ -129,6 +132,9 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
case findingsUI.FindingsLoadedMsg:
|
||||
updated, cmd := m.findingsPage.Update(msg)
|
||||
m.findingsPage = updated.(findingsUI.Model)
|
||||
if m.page == pageFindings {
|
||||
m.findingsPage.ClearUnread()
|
||||
}
|
||||
return m, cmd
|
||||
|
||||
case replayUI.SendToReplayMsg:
|
||||
@@ -258,8 +264,12 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
return m, m.history.RefreshCmd()
|
||||
}
|
||||
if p == pageFindings {
|
||||
m.findingsPage.ClearUnread()
|
||||
return m, findingsUI.RefreshCmd(m.database)
|
||||
}
|
||||
if p == pageIntercept {
|
||||
m.intercept.ClearUnread()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user