refactor(tui): unify detail toggle on Enter, remove i keybind
Enter now toggles detail sidebar open/closed with preference persistence. Removes redundant i keybind that did the same thing. Hotbar updated: [Enter]Detail when closed, [Enter]Close when open.
This commit is contained in:
+18
-27
@@ -650,13 +650,27 @@ func (m *Model) handleDashboardKey(msg tea.KeyMsg) (tea.Model, tea.Cmd) {
|
|||||||
return m, nil
|
return m, nil
|
||||||
}
|
}
|
||||||
if len(m.sites) > 0 {
|
if len(m.sites) > 0 {
|
||||||
site := m.sites[m.cursor]
|
m.detailOpen = !m.detailOpen
|
||||||
if !m.detailOpen {
|
|
||||||
m.detailOpen = true
|
|
||||||
m.detailMode = detailDefault
|
m.detailMode = detailDefault
|
||||||
m.recalcLayout()
|
m.recalcLayout()
|
||||||
|
st := m.store
|
||||||
|
ctx := m.ctx
|
||||||
|
open := m.detailOpen
|
||||||
|
var cmd tea.Cmd
|
||||||
|
if m.detailOpen {
|
||||||
|
cmd = m.loadDetailCmd(m.sites[m.cursor].ID)
|
||||||
}
|
}
|
||||||
return m, m.loadDetailCmd(site.ID)
|
saveCmd := writeCmd("Save detail preference", func() error {
|
||||||
|
v := "false"
|
||||||
|
if open {
|
||||||
|
v = "true"
|
||||||
|
}
|
||||||
|
return st.SetPreference(ctx, "detail_open", v)
|
||||||
|
})
|
||||||
|
if cmd != nil {
|
||||||
|
return m, tea.Batch(cmd, saveCmd)
|
||||||
|
}
|
||||||
|
return m, saveCmd
|
||||||
}
|
}
|
||||||
case "e":
|
case "e":
|
||||||
return m.handleEditItem()
|
return m.handleEditItem()
|
||||||
@@ -683,29 +697,6 @@ func (m *Model) handleDashboardKey(msg tea.KeyMsg) (tea.Model, tea.Cmd) {
|
|||||||
return st.UpdateSitePaused(ctx, id, paused)
|
return st.UpdateSitePaused(ctx, id, paused)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
case "i":
|
|
||||||
if len(m.sites) > 0 {
|
|
||||||
m.detailOpen = !m.detailOpen
|
|
||||||
m.recalcLayout()
|
|
||||||
st := m.store
|
|
||||||
ctx := m.ctx
|
|
||||||
open := m.detailOpen
|
|
||||||
var cmd tea.Cmd
|
|
||||||
if m.detailOpen {
|
|
||||||
cmd = m.loadDetailCmd(m.sites[m.cursor].ID)
|
|
||||||
}
|
|
||||||
saveCmd := writeCmd("Save detail preference", func() error {
|
|
||||||
v := "false"
|
|
||||||
if open {
|
|
||||||
v = "true"
|
|
||||||
}
|
|
||||||
return st.SetPreference(ctx, "detail_open", v)
|
|
||||||
})
|
|
||||||
if cmd != nil {
|
|
||||||
return m, tea.Batch(cmd, saveCmd)
|
|
||||||
}
|
|
||||||
return m, saveCmd
|
|
||||||
}
|
|
||||||
case "esc":
|
case "esc":
|
||||||
if m.focusedPanel != panelMonitors {
|
if m.focusedPanel != panelMonitors {
|
||||||
m.focusedPanel = panelMonitors
|
m.focusedPanel = panelMonitors
|
||||||
|
|||||||
@@ -293,7 +293,7 @@ func (m Model) renderFooter(_ dashboardStats) string {
|
|||||||
} else if m.detailOpen && m.detailMode == detailHistory {
|
} else if m.detailOpen && m.detailMode == detailHistory {
|
||||||
keys = "[Esc]Back [l]Logs [S]Settings [T]Theme [q]Quit"
|
keys = "[Esc]Back [l]Logs [S]Settings [T]Theme [q]Quit"
|
||||||
} else if m.detailOpen {
|
} else if m.detailOpen {
|
||||||
keys = "[i]Close [h]History [s]SLA [e]Edit [m]Maint [l]Logs [S]Settings [T]Theme [q]Quit"
|
keys = "[Enter]Close [h]History [s]SLA [e]Edit [m]Maint [l]Logs [S]Settings [T]Theme [q]Quit"
|
||||||
} else {
|
} else {
|
||||||
groupHint := ""
|
groupHint := ""
|
||||||
if m.cursor < len(m.sites) && m.sites[m.cursor].Type == "group" {
|
if m.cursor < len(m.sites) && m.sites[m.cursor].Type == "group" {
|
||||||
@@ -303,7 +303,7 @@ func (m Model) renderFooter(_ dashboardStats) string {
|
|||||||
groupHint = " [Space]Collapse"
|
groupHint = " [Space]Collapse"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
keys = "[/]Filter [i]Info [Enter]Detail" + groupHint + " [n]New [e]Edit [d]Del [m]Maint [l]Logs [S]Settings [T]Theme [q]Quit"
|
keys = "[/]Filter [Enter]Detail" + groupHint + " [n]New [e]Edit [d]Del [m]Maint [l]Logs [S]Settings [T]Theme [q]Quit"
|
||||||
}
|
}
|
||||||
|
|
||||||
line := m.st.subtleStyle.Render(keys)
|
line := m.st.subtleStyle.Render(keys)
|
||||||
|
|||||||
Reference in New Issue
Block a user