fix(tui): shrink table rows when detail panel is open
This commit is contained in:
@@ -142,11 +142,16 @@ func (m *Model) handleFormMsg(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
return m, nil
|
return m, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const detailInlineHeight = 8
|
||||||
|
|
||||||
func (m *Model) recalcLayout() {
|
func (m *Model) recalcLayout() {
|
||||||
chrome := chromeBase
|
chrome := chromeBase
|
||||||
if m.filterMode || m.filterText != "" {
|
if m.filterMode || m.filterText != "" {
|
||||||
chrome++
|
chrome++
|
||||||
}
|
}
|
||||||
|
if m.detailOpen && m.currentTab == tabMonitors {
|
||||||
|
chrome += detailInlineHeight
|
||||||
|
}
|
||||||
m.maxTableRows = m.termHeight - chrome
|
m.maxTableRows = m.termHeight - chrome
|
||||||
if m.maxTableRows < 1 {
|
if m.maxTableRows < 1 {
|
||||||
m.maxTableRows = 1
|
m.maxTableRows = 1
|
||||||
@@ -581,6 +586,7 @@ func (m *Model) handleDashboardKey(msg tea.KeyMsg) (tea.Model, tea.Cmd) {
|
|||||||
case "i":
|
case "i":
|
||||||
if m.currentTab == tabMonitors && len(m.sites) > 0 {
|
if m.currentTab == tabMonitors && len(m.sites) > 0 {
|
||||||
m.detailOpen = !m.detailOpen
|
m.detailOpen = !m.detailOpen
|
||||||
|
m.recalcLayout()
|
||||||
if m.detailOpen {
|
if m.detailOpen {
|
||||||
return m, m.loadDetailCmd(m.sites[m.cursor].ID)
|
return m, m.loadDetailCmd(m.sites[m.cursor].ID)
|
||||||
}
|
}
|
||||||
@@ -590,6 +596,7 @@ func (m *Model) handleDashboardKey(msg tea.KeyMsg) (tea.Model, tea.Cmd) {
|
|||||||
case "esc":
|
case "esc":
|
||||||
if m.currentTab == tabMonitors && m.detailOpen {
|
if m.currentTab == tabMonitors && m.detailOpen {
|
||||||
m.detailOpen = false
|
m.detailOpen = false
|
||||||
|
m.recalcLayout()
|
||||||
}
|
}
|
||||||
case "h":
|
case "h":
|
||||||
if m.detailOpen && m.currentTab == tabMonitors && m.cursor < len(m.sites) {
|
if m.detailOpen && m.currentTab == tabMonitors && m.cursor < len(m.sites) {
|
||||||
|
|||||||
Reference in New Issue
Block a user