From 54425e1ee0b5c0070f44a50cfba78d273a8d149e Mon Sep 17 00:00:00 2001 From: decentral1se Date: Wed, 10 May 2023 14:35:13 +0200 Subject: [PATCH] wip: show filtered pdf contents --- gshmm.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/gshmm.go b/gshmm.go index 2ec5276..2e4a9bf 100644 --- a/gshmm.go +++ b/gshmm.go @@ -3,7 +3,6 @@ package main import ( "flag" "fmt" - "log" "os" "path/filepath" "strings" @@ -69,6 +68,15 @@ func (m model) dataSheetNames() []string { return names } +func (m model) datasheetFromName(name string) string { + for _, d := range m.datasheets { + if d.filename == name { + return d.contents + } + } + return "" +} + type datasheet struct { filename string absPath string @@ -89,6 +97,9 @@ func initialModel() model { name := info.Name() if strings.HasSuffix(name, "pdf") { // TODO: handle error in interface? + // TODO: don't read them all up front while blocking? + // we could run this in a goroutine somewhere + // this currently slows down startup time contents, _ := readPDF(path) d := datasheet{ filename: name, @@ -96,7 +107,6 @@ func initialModel() model { contents: contents, } ds = append(ds, d) - log.Print(d) } return nil @@ -144,6 +154,10 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { } else { m.dataSheetsView = m.dataSheetNames() } + + lastDatasheet := m.dataSheetsView[len(m.dataSheetsView)-1] + viewportText := m.datasheetFromName(lastDatasheet) + m.dataSheetViewport.SetContent(viewportText) } switch msg := msg.(type) {