Files
tgex-backend/tg_bot/screens/main_menu.go
Artem Tsyrulnikov 62e8f98429 refactor
2026-01-18 14:10:13 +03:00

54 lines
1.5 KiB
Go

package screens
import (
"github.com/NicoNex/echotron/v3"
"github.com/TelegramExchange/tgex-backend/tg_bot/bot"
)
type MainMenu struct{}
const msgAbout = `
<i>Главное меню</i>
Smartpost — платформа для покупки и продажи рекламы без ЛС и ручных таблиц.
• Внутренний счёт и безопасные сделки
• Фиксация цен, дат и форматов
• Автоматические отчёты
• Повторные закупки в пару кликов
Комиссия — 7%. Без скрытых платежей.
`
func (s *MainMenu) Enter(b *bot.Bot, mode bot.RenderMode) {
keyboard := Keyboard(
Row(
Button("Мои проекты", "my_projects"),
URLButton("Поддержка", "https://example.com"),
),
Row(
Button("Закупы", "purchases"),
URLButton("Дашборд", "https://example.com"),
),
)
b.Render(msgAbout, 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.EditMessage)
case "purchases":
b.SetState(&MyProjects{BackState: &MainMenu{}, OpenPurchases: true}, bot.EditMessage)
default:
s.Enter(b, bot.NewMessage)
}
}
func (s *MainMenu) HandleMessage(b *bot.Bot, u *echotron.Update) {}
func (s *MainMenu) Handle(b *bot.Bot, u *echotron.Update) { b.SetState(&MainMenu{}, bot.NewMessage) }
func (s *MainMenu) Exit() {}