43 lines
799 B
Go
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)
|
|
}
|
|
}
|