summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/tui/dashboard/model.go18
-rw-r--r--internal/tui/dashboard/model_test.go14
2 files changed, 30 insertions, 2 deletions
diff --git a/internal/tui/dashboard/model.go b/internal/tui/dashboard/model.go
index d3d8322..8b2c814 100644
--- a/internal/tui/dashboard/model.go
+++ b/internal/tui/dashboard/model.go
@@ -264,7 +264,18 @@ func (m Model) View() string {
var b strings.Builder
b.WriteString(renderTabBar(m.activeTab, width))
b.WriteString("\n")
- b.WriteString(renderActiveTab(m.activeTab, m.latest, &m.streamModel, width, height, m.syscallsOffset, m.filesOffset, m.processesOffset))
+ b.WriteString(renderActiveTab(
+ m.activeTab,
+ m.latest,
+ &m.streamModel,
+ width,
+ height,
+ m.syscallsOffset,
+ m.filesOffset,
+ m.filesDirGrouped,
+ m.filesDirOffset,
+ m.processesOffset,
+ ))
b.WriteString("\n")
b.WriteString(common.HighlightStyle.Render("Press ? for help"))
b.WriteString("\n")
@@ -276,7 +287,7 @@ func tickCmd(d time.Duration) tea.Cmd {
return tea.Tick(d, func(time.Time) tea.Msg { return refreshTickMsg{} })
}
-func renderActiveTab(tab Tab, snap *statsengine.Snapshot, streamModel *eventstream.Model, width, height, syscallsOffset, filesOffset, processesOffset int) string {
+func renderActiveTab(tab Tab, snap *statsengine.Snapshot, streamModel *eventstream.Model, width, height, syscallsOffset, filesOffset int, filesDirGrouped bool, filesDirOffset, processesOffset int) string {
if tab == TabStream {
if streamModel == nil {
return common.PanelStyle.Render("Stream: waiting for source...")
@@ -294,6 +305,9 @@ func renderActiveTab(tab Tab, snap *statsengine.Snapshot, streamModel *eventstre
case TabSyscalls:
return renderSyscallsWithOffset(snap, width, height, syscallsOffset)
case TabFiles:
+ if filesDirGrouped {
+ return renderFilesDirGrouped(snap, width, height, filesDirOffset)
+ }
return renderFilesWithOffset(snap, width, height, filesOffset)
case TabProcesses:
return renderProcessesWithOffset(snap, width, height, processesOffset)
diff --git a/internal/tui/dashboard/model_test.go b/internal/tui/dashboard/model_test.go
index c243018..c1b2e1d 100644
--- a/internal/tui/dashboard/model_test.go
+++ b/internal/tui/dashboard/model_test.go
@@ -291,3 +291,17 @@ func TestViewRendersTabBarAndHelp(t *testing.T) {
t.Fatalf("expected help bar text in view")
}
}
+
+func TestRenderActiveTabUsesDirectoryFilesViewWhenGrouped(t *testing.T) {
+ snap := statsengine.NewSnapshot(
+ nil, nil, nil, nil,
+ []statsengine.FileSnapshot{{Path: "/tmp/a.log", Accesses: 2}},
+ nil,
+ statsengine.HistogramSnapshot{},
+ statsengine.HistogramSnapshot{},
+ )
+ out := renderActiveTab(TabFiles, &snap, nil, 120, 30, 0, 0, true, 0, 0)
+ if !strings.Contains(out, "Directory") {
+ t.Fatalf("expected grouped directory files view header, got %q", out)
+ }
+}