summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-02-25 10:30:22 +0200
committerPaul Buetow <paul@buetow.org>2026-02-25 10:30:22 +0200
commitad32edac09cf18a7f6a4be57e9d4467ab05d409c (patch)
tree0a60be43d7acf2ce1475478d82abc31b05587250 /internal
parent7dfd9784af4704be02b7d96c97a6454b5de749dc (diff)
Wire grouped files mode into active tab rendering
Diffstat (limited to 'internal')
-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)
+ }
+}