diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-05 19:34:01 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-05 19:34:01 +0200 |
| commit | 5fe164e91e40e8a3f749f4143f7562f940bf9f67 (patch) | |
| tree | d77b03c737628fa58171de28eb89720c96f203b2 /internal/tui/eventstream | |
| parent | a44f6ee30c11963552b5b90a19698873aa9b6b6d (diff) | |
feat(tui): detect terminal theme and apply palettes
Diffstat (limited to 'internal/tui/eventstream')
| -rw-r--r-- | internal/tui/eventstream/exportmodal.go | 7 | ||||
| -rw-r--r-- | internal/tui/eventstream/filtermodal.go | 7 | ||||
| -rw-r--r-- | internal/tui/eventstream/model.go | 14 | ||||
| -rw-r--r-- | internal/tui/eventstream/searchmodal.go | 7 |
4 files changed, 34 insertions, 1 deletions
diff --git a/internal/tui/eventstream/exportmodal.go b/internal/tui/eventstream/exportmodal.go index ec35343..3c0e2cd 100644 --- a/internal/tui/eventstream/exportmodal.go +++ b/internal/tui/eventstream/exportmodal.go @@ -19,6 +19,7 @@ func NewExportModal() ExportModal { input.Prompt = "" input.CharLimit = 0 input.SetWidth(44) + input.SetStyles(textinput.DefaultStyles(true)) return ExportModal{textInput: input} } @@ -26,6 +27,12 @@ func (m ExportModal) Visible() bool { return m.visible } +// SetDarkMode updates export modal text input styles. +func (m ExportModal) SetDarkMode(isDark bool) ExportModal { + m.textInput.SetStyles(textinput.DefaultStyles(isDark)) + return m +} + func (m ExportModal) Open(defaultName string) ExportModal { m.visible = true m.err = "" diff --git a/internal/tui/eventstream/filtermodal.go b/internal/tui/eventstream/filtermodal.go index 6c7653e..bd20a03 100644 --- a/internal/tui/eventstream/filtermodal.go +++ b/internal/tui/eventstream/filtermodal.go @@ -49,6 +49,7 @@ func NewFilterModal() FilterModal { input.Prompt = "" input.CharLimit = 0 input.SetWidth(24) + input.SetStyles(textinput.DefaultStyles(true)) m := FilterModal{textInput: input} m.fields = defaultFilterFields() @@ -63,6 +64,12 @@ func (m FilterModal) Filter() Filter { return m.filter } +// SetDarkMode updates filter modal text input styles. +func (m FilterModal) SetDarkMode(isDark bool) FilterModal { + m.textInput.SetStyles(textinput.DefaultStyles(isDark)) + return m +} + func (m FilterModal) Open(initial Filter) FilterModal { m.visible = true m.activeField = 0 diff --git a/internal/tui/eventstream/model.go b/internal/tui/eventstream/model.go index af7f67d..68b0cd5 100644 --- a/internal/tui/eventstream/model.go +++ b/internal/tui/eventstream/model.go @@ -53,6 +53,7 @@ type Model struct { pendingOpenPath string statusMessage string exportDir string + isDark bool width int height int @@ -69,7 +70,7 @@ type fdTraceViewState struct { } func NewModel(source *RingBuffer) Model { - return Model{ + m := Model{ source: source, filterModal: NewFilterModal(), exportModal: NewExportModal(), @@ -79,7 +80,10 @@ func NewModel(source *RingBuffer) Model { selectedCol: 0, exportDir: ".", showFooter: true, + isDark: true, } + m.SetDarkMode(true) + return m } // SetViewport updates the render/scroll viewport dimensions used for @@ -104,6 +108,14 @@ func (m *Model) SetSource(source *RingBuffer) { m.Refresh() } +// SetDarkMode updates stream modal text input styles for the active theme. +func (m *Model) SetDarkMode(isDark bool) { + m.isDark = isDark + m.filterModal = m.filterModal.SetDarkMode(isDark) + m.exportModal = m.exportModal.SetDarkMode(isDark) + m.searchModal = m.searchModal.SetDarkMode(isDark) +} + // FilterModalVisible reports whether the filter modal is currently open. func (m Model) FilterModalVisible() bool { return m.filterModal.Visible() diff --git a/internal/tui/eventstream/searchmodal.go b/internal/tui/eventstream/searchmodal.go index 892b6d9..c09542b 100644 --- a/internal/tui/eventstream/searchmodal.go +++ b/internal/tui/eventstream/searchmodal.go @@ -27,6 +27,7 @@ func NewSearchModal() SearchModal { input.Prompt = "" input.CharLimit = 0 input.SetWidth(44) + input.SetStyles(textinput.DefaultStyles(true)) return SearchModal{textInput: input, direction: SearchForward} } @@ -38,6 +39,12 @@ func (m SearchModal) Direction() SearchDirection { return m.direction } +// SetDarkMode updates search modal text input styles. +func (m SearchModal) SetDarkMode(isDark bool) SearchModal { + m.textInput.SetStyles(textinput.DefaultStyles(isDark)) + return m +} + func (m SearchModal) Open(direction SearchDirection, defaultTerm string) SearchModal { m.visible = true m.err = "" |
