diff options
| author | Paul Buetow <paul@buetow.org> | 2026-02-25 10:30:22 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-02-25 10:30:22 +0200 |
| commit | ad32edac09cf18a7f6a4be57e9d4467ab05d409c (patch) | |
| tree | 0a60be43d7acf2ce1475478d82abc31b05587250 /internal | |
| parent | 7dfd9784af4704be02b7d96c97a6454b5de749dc (diff) | |
Wire grouped files mode into active tab rendering
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/tui/dashboard/model.go | 18 | ||||
| -rw-r--r-- | internal/tui/dashboard/model_test.go | 14 |
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) + } +} |
