k9s/internal/views/port_selector.go

44 lines
918 B
Go

package views
import (
"github.com/derailed/tview"
"github.com/gdamore/tcell"
)
type portSelector struct {
title, port string
ok, cancel func()
}
func newSelector(title, port string, okFn, cancelFn func()) *portSelector {
return &portSelector{
title: title,
port: port,
ok: okFn,
cancel: cancelFn,
}
}
func (p *portSelector) show(app *appView) {
f := tview.NewForm()
f.SetItemPadding(0)
f.SetButtonsAlign(tview.AlignCenter).
SetButtonBackgroundColor(tview.Styles.PrimitiveBackgroundColor).
SetButtonTextColor(tview.Styles.PrimaryTextColor).
SetLabelColor(tcell.ColorAqua).
SetFieldTextColor(tcell.ColorOrange)
f1 := p.port
f.AddInputField("Pod Port:", f1, 20, nil, func(changed string) {
f1 = changed
})
f.AddButton("OK", p.ok)
f.AddButton("Cancel", p.cancel)
modal := tview.NewModalForm("<"+p.title+">", f)
modal.SetDoneFunc(func(_ int, b string) {
p.cancel()
})
}