package plays import ( "strings" "gitea.konchin.com/ytshih/inp2025/game/types" tea "github.com/charmbracelet/bubbletea" ) type RoomWaiting struct { *Base doneCh chan struct{} } func NewRoomWaiting(base *Base) *RoomWaiting { m := &RoomWaiting{ base: base, doneCh: make(chan struct{}), } return &m } func updateRoomWaitingInfo(m *RoomWaiting) error { for { select { case <-m.doneCh: return nil } } } func (m *RoomWaiting) Init() tea.Cmd { go updateRoomWaitingInfo(m) return tea.Sequence(tea.ClearScreen, Tick(refreshTick)) } func (m *RoomWaiting) Update(msg tea.Msg) (tea.Model, tea.Cmd) { if _, cmd := m.Base.Update(msg); cmd != nil { return m, cmd } switch msg := msg.(type) { case types.TickMsg: return m, Tick(refreshTick) } return m, nil } func (m *RoomWaiting) View() string { var b strings.Builder b.WriteString("waiting for user to join ...") return b.String() } func (m *RoomWaiting) Next(queue *[]*tea.Program) error { m.doneCh <- struct{}{} switch m.choice { case "": *queue = append(*queue, tea.NewProgram) } }