feat: use bubbletea framework

- implement TUI in bubbletea
  - split components into separate files
- remove now unused functions
- restructure files
This commit is contained in:
Sebastian Mark 2024-10-31 07:37:50 +01:00
parent 9656db5335
commit 8a0ef32c91
14 changed files with 269 additions and 187 deletions

View file

@ -12,13 +12,14 @@ type Client ChronoTomato.GoTomatoClient // New websocket client
// Connects to websocket
func Connect(url string) Client {
log.Info("Connected 󰖟 ", "host", url)
conn, _, err := websocket.DefaultDialer.Dial(url, nil)
if err != nil {
log.Fatal("Dial error!", "reason", err)
}
log.Info("Connected 󰖟 ", "host", url)
time.Sleep(time.Second)
return Client{Conn: conn}
}

View file

@ -2,7 +2,6 @@ package websocket
import (
"encoding/json"
"fmt"
"github.com/charmbracelet/log"
"github.com/gorilla/websocket"
@ -11,7 +10,8 @@ import (
var Done = make(chan struct{})
// Receives websocket messages and write them to `channel`
// Receives websocket messages and writes them to a channel.
// Closes the channel if websocket closes.
func (c Client) ProcessServerMessages(channel chan<- GoTomato.ServerMessage) {
var serverMessage GoTomato.ServerMessage
@ -25,8 +25,8 @@ func (c Client) ProcessServerMessages(channel chan<- GoTomato.ServerMessage) {
return
}
// Log any other errors
fmt.Println()
log.Error("Read error!", "reason", err)
close(channel)
return
}