package tui import ( "fmt" "github.com/jroimartin/gocui" ) // LAYOUT func layoutSidebar(g *gocui.Gui, maxY int) error { if v, err := g.SetView("users", 0, 0, 20, maxY-1); err != nil { if err != gocui.ErrUnknownView { return err } v.Title = "Users" v.Clear() for _, u := range users { fmt.Fprintln(v, u+"\n") } } return nil } func updateUsersView(g *gocui.Gui) error { v, err := g.View("users") if err != nil { return err } v.Clear() for i, u := range users { if i == selectedUserIdx { fmt.Fprintln(v, fmt.Sprintf(">%s\n", u)) } else { fmt.Fprintln(v, u+"\n") } } return nil } // KEYBINDINGS func nextContact(g *gocui.Gui, v *gocui.View) error { if len(users) == 0 { return nil } selectedUserIdx = (selectedUserIdx + 1) % len(users) return updateUsersView(g) } func prevContact(g *gocui.Gui, v *gocui.View) error { if len(users) == 0 { return nil } selectedUserIdx = (selectedUserIdx - 1 + len(users)) % len(users) return updateUsersView(g) }