4321e094a3
Restructure dashboard from [Monitors 70% | Logs 30%] to [Monitors 45% | Detail 55%] master-detail layout. Detail panel now sits beside the monitor list instead of below it, keeping dashboard context visible during inspection. - Detail panel renders in horizontal split (right of monitors) - Logs sidebar removed; `l` key opens fullscreen logs directly - recalcLayout no longer subtracts detail height from table rows - Remove unused renderCompactLogLine/viewLogsSidebar (Phase 4 recreates)
31 lines
522 B
Go
31 lines
522 B
Go
package tui
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
func (m *Model) scrollLogs(delta int) {
|
|
logs := m.engine.GetLogs()
|
|
total := 0
|
|
for _, entry := range logs {
|
|
if strings.TrimSpace(entry.Message) == "" {
|
|
continue
|
|
}
|
|
if m.logFilterImportant && !isImportantLog(classifyLog(entry.Message)) {
|
|
continue
|
|
}
|
|
total++
|
|
}
|
|
|
|
m.logScrollOffset += delta
|
|
if m.logScrollOffset < 0 {
|
|
m.logScrollOffset = 0
|
|
}
|
|
if m.logScrollOffset > total-1 {
|
|
m.logScrollOffset = total - 1
|
|
}
|
|
if m.logScrollOffset < 0 {
|
|
m.logScrollOffset = 0
|
|
}
|
|
}
|