package plays import ( "fmt" "time" "gitea.konchin.com/ytshih/inp2025/game/types" tea "github.com/charmbracelet/bubbletea" ) type Redirect struct { Message string secLeft int } func NewRedirect(msg string) *Redirect { return &Redirect{ Message: msg, secLeft: 3, } } func (m *Redirect) Init() tea.Cmd { return tea.Sequence(tea.ClearScreen, Tick(time.Second)) } func (m *Redirect) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch msg.String() { case "q", "ctrl+c", "enter": return m, tea.Quit } case types.TickMsg: m.secLeft-- if m.secLeft <= 0 { return m, tea.Quit } return m, Tick(time.Second) } return m, nil } func (m *Redirect) View() string { return fmt.Sprintf("%s\n\nExit in %d seconds...", m.Message, m.secLeft) } func (m *Redirect) Next(queue *[]*tea.Program) error { return nil }