package tui import ( "fmt" "log" "whspbrd/pkg/cell_size" "whspbrd/pkg/render_image" "github.com/jroimartin/gocui" ) func layoutChat(g *gocui.Gui, maxX, maxY int) error { if v, err := g.SetView("chat", 21, 0, maxX-1, maxY-5); err != nil { if err != gocui.ErrUnknownView { return err } v.Title = "Chat" v.Wrap = true v.Autoscroll = true updateChatView(v) } return nil } func layoutInput(g *gocui.Gui, maxX, maxY int) error { if v, err := g.SetView("input", 21, maxY-4, maxX-1, maxY-1); err != nil { if err != gocui.ErrUnknownView { return err } v.Title = "Type your message" v.Editable = true v.Wrap = true if _, err := g.SetCurrentView("input"); err != nil { return err } } return nil } func updateChatView(v *gocui.View) { v.Clear() for i, msg := range messages { fmt.Fprintf(v, "%s\n\n", msg) w, h, err := cell_size.GetTerminalCellSizePixels() if err != nil { log.Println("Error getting terminal cell size:", err) continue } if h > w { h = h * 2 w = 0 } else { w = w*3 - (w / 10) h = 0 } render_image.RenderImage("./configs/icon.png", i*3+2, 23, w, h, 0) } } // TODO: Rewrite This Code func sendMessage(g *gocui.Gui, v *gocui.View) error { input := v.Buffer() v.Clear() v.SetCursor(0, 0) v.SetOrigin(0, 0) if input != "" { messages = append(messages, "\t\t\t\tYou:\n\t\t\t\t"+input) if chatView, err := g.View("chat"); err == nil { updateChatView(chatView) } } return nil }