WhspBrd/internal/tui/tui.go
copilot-swe-agent[bot] c2607b2860 Implement message selection-based scrolling with j/k keys
Co-authored-by: foglar <82380203+foglar@users.noreply.github.com>
2025-10-09 13:40:31 +00:00

43 lines
799 B
Go

package tui
import (
"log"
"github.com/jroimartin/gocui"
)
var users []string
var prevWidth, prevHeight int
var chatData ChatData
var selectedUserIdx int = 0
var selectedMessageIdx int = 0
func Run() {
LoadContacts(defaultServerPath)
// Load initial messages if there are any contacts
if len(users) > 0 && selectedUserIdx < len(users) {
LoadMessages(users[selectedUserIdx])
// Initialize to newest message (bottom)
if len(chatData.Messages) > 0 {
selectedMessageIdx = len(chatData.Messages) - 1
}
}
g, err := gocui.NewGui(gocui.OutputNormal)
if err != nil {
log.Panicln(err)
}
defer g.Close()
g.SetManagerFunc(layout)
if err := keybindings(g); err != nil {
log.Panicln(err)
}
if err := g.MainLoop(); err != nil && err != gocui.ErrQuit {
log.Panicln(err)
}
}