улучшение ui

This commit is contained in:
Artem Tsyrulnikov
2026-01-09 12:23:02 +03:00
parent 40c7be8470
commit 9fbb6fdbbf
19 changed files with 635 additions and 453 deletions

View File

@@ -20,20 +20,20 @@ func (s *SelectWorkspace) Enter(b *bot.Bot, mode bot.RenderMode) {
jwt := b.Session.JWT
if jwt == "" {
log.Error().Msg("JWT is empty in session")
b.SendNew("❌ Ошибка авторизации. Попробуйте /start", bot.Keyboard())
b.SendNew("❌ Ошибка авторизации. Попробуйте /start", Keyboard())
return
}
workspaces, err := b.Backend.GetWorkspaces(context.Background(), jwt)
if err != nil {
log.Error().Err(err).Msg("Failed to get workspaces")
b.SendNew("❌ Не удалось загрузить список workspace'ов", bot.Keyboard())
b.SendNew("❌ Не удалось загрузить список workspace'ов", Keyboard())
return
}
if len(workspaces) == 0 {
b.SendNew("У вас пока нет workspace'ов", bot.Keyboard(
bot.Row(bot.Button("🏠 Главное меню", "back")),
b.SendNew("У вас пока нет workspace'ов", Keyboard(
Row(Button("🏠 Главное меню", "back")),
))
return
}
@@ -45,15 +45,15 @@ func (s *SelectWorkspace) Enter(b *bot.Bot, mode bot.RenderMode) {
// Создаем кнопки для каждого workspace
for _, ws := range workspaces {
buttons = append(buttons, bot.Row(
bot.Button(ws.Name, fmt.Sprintf("select_workspace:%s", ws.ID)),
buttons = append(buttons, Row(
Button(ws.Name, fmt.Sprintf("select_workspace:%s", ws.ID)),
))
}
// Кнопка отмены
buttons = append(buttons, bot.Row(bot.Button("❌ Отмена", "cancel")))
buttons = append(buttons, Row(Button("❌ Отмена", "cancel")))
keyboard := bot.Keyboard(buttons...)
keyboard := Keyboard(buttons...)
b.Render(text, keyboard, mode)
}
@@ -81,7 +81,7 @@ func (s *SelectWorkspace) HandleCallback(b *bot.Bot, u *echotron.Update) {
workspaceID := parts[1]
// Показываем индикатор загрузки
b.Edit("⏳ Добавляем канал в workspace...", bot.Keyboard())
b.Edit("⏳ Добавляем канал в workspace...", Keyboard())
// Вызываем API для привязки канала к workspace
project, err := b.Backend.AttachChannelToWorkspace(
@@ -92,8 +92,8 @@ func (s *SelectWorkspace) HandleCallback(b *bot.Bot, u *echotron.Update) {
)
if err != nil {
log.Error().Err(err).Str("channel_id", s.ChannelID).Str("workspace_id", workspaceID).Msg("Failed to attach channel to workspace")
b.Edit("❌ Не удалось добавить канал в workspace", bot.Keyboard(
bot.Row(bot.Button("← Назад", "back_to_select")),
b.Edit("❌ Не удалось добавить канал в workspace", Keyboard(
Row(Button("← Назад", "back_to_select")),
))
return
}
@@ -108,9 +108,9 @@ func (s *SelectWorkspace) HandleCallback(b *bot.Bot, u *echotron.Update) {
project.Status,
)
b.Edit(successText, bot.Keyboard(
bot.Row(bot.Button("📋 Мои проекты", "my_projects")),
bot.Row(bot.Button("🏠 Главное меню", "main_menu")),
b.Edit(successText, Keyboard(
Row(Button("📋 Мои проекты", "my_projects")),
Row(Button("🏠 Главное меню", "main_menu")),
))
case data == "back_to_select":