|
|
@@ -17,13 +17,15 @@ type Model struct {
|
|
|
Addresses []Address // as defined in internal/tui/types.go
|
|
|
viewport viewport.Model
|
|
|
UpdateSpeed time.Duration
|
|
|
+ ChartHeight int
|
|
|
}
|
|
|
|
|
|
-func InitialModel(addresses []string, speed time.Duration) Model {
|
|
|
+func InitialModel(addresses []string, speed time.Duration, chartHeight int) Model {
|
|
|
var model Model
|
|
|
model.viewport = viewport.New(0, 0)
|
|
|
model.viewport.MouseWheelEnabled = true
|
|
|
model.UpdateSpeed = speed
|
|
|
+ model.ChartHeight = chartHeight
|
|
|
|
|
|
for _, address := range addresses {
|
|
|
var addr Address
|
|
|
@@ -63,7 +65,13 @@ func (m Model) content() string {
|
|
|
output = output + fmt.Sprintf("\n%s", blockStyle.Render(headerStyle.Render(address.Address)))
|
|
|
|
|
|
// Linechart
|
|
|
- slc := streamlinechart.New(m.width, 10)
|
|
|
+ var slc streamlinechart.Model
|
|
|
+ if m.ChartHeight == 0 {
|
|
|
+ slc = streamlinechart.New(m.width, m.viewport.Height-9)
|
|
|
+ } else {
|
|
|
+ slc = streamlinechart.New(m.width, m.ChartHeight)
|
|
|
+ }
|
|
|
+
|
|
|
for _, v := range address.results {
|
|
|
slc.Push(v)
|
|
|
}
|
|
|
@@ -92,9 +100,9 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|
|
|
|
|
case tea.KeyMsg:
|
|
|
if k := msg.String(); k == "j" { // scroll down
|
|
|
- m.viewport.HalfViewDown()
|
|
|
+ m.viewport.LineDown(8)
|
|
|
} else if k == "k" { // scroll up
|
|
|
- m.viewport.HalfViewUp()
|
|
|
+ m.viewport.LineUp(8)
|
|
|
} else {
|
|
|
return m, tea.Quit
|
|
|
}
|