emdb/cmd/terminal-client/tui/tui.go

73 lines
1.3 KiB
Go
Raw Normal View History

2023-12-22 15:50:42 +01:00
package tui
import (
2023-12-24 10:56:12 +01:00
"fmt"
"os"
"strings"
2023-12-23 12:08:58 +01:00
"ewintr.nl/emdb/client"
2023-12-22 15:50:42 +01:00
tea "github.com/charmbracelet/bubbletea"
2023-12-23 12:08:58 +01:00
"github.com/charmbracelet/lipgloss"
"github.com/muesli/termenv"
)
var (
docStyle = lipgloss.NewStyle().Padding(1)
colorNormalForeground = lipgloss.ANSIColor(termenv.ANSIWhite)
colorHighLightForeGround = lipgloss.ANSIColor(termenv.ANSIBrightWhite)
windowStyle = lipgloss.NewStyle().
BorderForeground(colorHighLightForeGround).
Foreground(colorNormalForeground).
Padding(0, 1).
Border(lipgloss.NormalBorder(), true)
2023-12-23 12:44:58 +01:00
logLineCount = 5
2023-12-24 10:56:12 +01:00
emdb *client.EMDB
tmdb *client.TMDB
logger = NewLogger()
2023-12-22 15:50:42 +01:00
)
2023-12-23 18:43:38 +01:00
type Logger struct {
p *tea.Program
Lines []string
2023-12-23 12:08:58 +01:00
}
2023-12-23 18:43:38 +01:00
func NewLogger() *Logger {
return &Logger{
Lines: make([]string, 0),
2023-12-22 15:50:42 +01:00
}
2023-12-23 12:08:58 +01:00
}
2023-12-23 18:43:38 +01:00
func (l *Logger) SetProgram(p *tea.Program) {
l.p = p
2023-12-23 12:08:58 +01:00
}
2023-12-23 18:43:38 +01:00
func (l *Logger) Log(s string) {
l.Lines = append(l.Lines, s)
2023-12-23 12:08:58 +01:00
}
2023-12-24 10:56:12 +01:00
func (l *Logger) Content() string {
if l.Lines == nil {
return "logger not initialized"
}
return strings.Join(l.Lines, "\n")
}
2023-12-23 18:43:38 +01:00
type TabSizeMsgType tea.WindowSizeMsg
2023-12-23 12:08:58 +01:00
2023-12-24 10:56:12 +01:00
func New(emdb *client.EMDB, tmdb *client.TMDB) (*tea.Program, error) {
emdb = emdb
tmdb = tmdb
2023-12-23 18:43:38 +01:00
2023-12-24 10:56:12 +01:00
fmt.Printf("emdb: %v\n", emdb)
os.Exit(0)
m, _ := NewBaseModel()
2023-12-23 18:43:38 +01:00
p := tea.NewProgram(m, tea.WithAltScreen())
2023-12-24 10:56:12 +01:00
logger.SetProgram(p)
2023-12-23 18:43:38 +01:00
return p, nil
2023-12-22 15:50:42 +01:00
}