From 7d492b6409755f62dd79593d661e8ba03fc883c8 Mon Sep 17 00:00:00 2001 From: st-gr <38470677+st-gr@users.noreply.github.com> Date: Fri, 10 May 2024 03:15:40 -0700 Subject: [PATCH 1/2] Enable layer scrolling, fixes #494 --- runtime/ui/view/layer.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/runtime/ui/view/layer.go b/runtime/ui/view/layer.go index ce6954a0..9e71ff8b 100644 --- a/runtime/ui/view/layer.go +++ b/runtime/ui/view/layer.go @@ -221,6 +221,14 @@ func (v *Layer) CursorUp() error { return nil } +// SetOrigin updates the origin of the layer view pane. +func (v *Layer) SetOrigin(x, y int) error { + if err := v.body.SetOrigin(x, y); err != nil { + return err + } + return nil +} + // SetCursor resets the cursor and orients the file tree view based on the given layer index. func (v *Layer) SetCursor(layer int) error { v.vm.LayerIndex = layer @@ -340,6 +348,15 @@ func (v *Layer) Render() error { return err } } + + // Adjust origin, if necessary + maxBodyDisplayHeight := int(v.height()) + if v.vm.LayerIndex > maxBodyDisplayHeight { + if err := v.SetOrigin(0, v.vm.LayerIndex-maxBodyDisplayHeight); err != nil { + return err + } + } + return nil }) return nil From 48d51dd5f57ef64e783c2de1e4da1286f03c552d Mon Sep 17 00:00:00 2001 From: st-gr <38470677+st-gr@users.noreply.github.com> Date: Fri, 10 May 2024 03:37:17 -0700 Subject: [PATCH 2/2] Added size to layer details view, requested in #469 --- runtime/ui/view/layer_details.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/runtime/ui/view/layer_details.go b/runtime/ui/view/layer_details.go index bfcb4252..20c77a81 100644 --- a/runtime/ui/view/layer_details.go +++ b/runtime/ui/view/layer_details.go @@ -5,6 +5,7 @@ import ( "strings" "github.com/awesome-gocui/gocui" + "github.com/dustin/go-humanize" "github.com/sirupsen/logrus" "github.com/wagoodman/dive/dive/image" @@ -82,9 +83,11 @@ func (v *LayerDetails) Render() error { if v.CurrentLayer.Names != nil && len(v.CurrentLayer.Names) > 0 { tags = strings.Join(v.CurrentLayer.Names, ", ") } + lines = append(lines, []string{ format.Header("Tags: ") + tags, format.Header("Id: ") + v.CurrentLayer.Id, + format.Header("Size: ") + humanize.Bytes(v.CurrentLayer.Size), format.Header("Digest: ") + v.CurrentLayer.Digest, format.Header("Command:"), v.CurrentLayer.Command,