package screens import ( "example.com/m/bot" "github.com/NicoNex/echotron/v3" ) type MainMenu struct{} func (s *MainMenu) Enter(b *bot.Bot, mode bot.RenderMode) { keyboard := bot.Keyboard( bot.Row(bot.Button("Мои проекты", "my_projects"), bot.Button("Поддержка", "support")), bot.Row(bot.Button("Закупы", "placements"), bot.Button("Дашборд", "dashboard")), ) b.Render(tgexAbout, keyboard, mode) } func (s *MainMenu) HandleCallback(b *bot.Bot, u *echotron.Update) { switch u.CallbackQuery.Data { case "my_projects": b.SetState(&MyProjects{BackState: &MainMenu{}}, bot.NewMessage) case "support": // b.SetState(&Support{}, bot.NewMessage) case "placements": b.SetState(&MyPlacements{BackState: &MainMenu{}}, bot.NewMessage) case "dashboard": // b.SetState(&Dashboard{}, bot.NewMessage) default: s.Enter(b, bot.NewMessage) } return } func (s *MainMenu) HandleMessage(b *bot.Bot, u *echotron.Update) { if u.Message.Text == "/start login" { b.SetState(&Login{}, bot.NewMessage) return } return } func (s *MainMenu) Handle(b *bot.Bot, u *echotron.Update) { b.SetState(&MainMenu{}, bot.NewMessage) return } const tgexAbout = ` TGEX — Telegram-бот для покупки и продажи рекламы без ЛС и ручных таблиц. • Внутренний счёт и безопасные сделки • Фиксация цен, дат и форматов • Автоматические отчёты • Повторные закупки в пару кликов Комиссия — 7%. Без скрытых платежей.`