обработка обновлений последовательно для каждого юзера благодаря mutex

This commit is contained in:
Artem Tsyrulnikov
2026-01-04 19:35:41 +03:00
parent 5251ec3015
commit 592ade7dce
9 changed files with 235 additions and 190 deletions

View File

@@ -6,6 +6,7 @@ import (
"strings"
"example.com/m/bot"
"example.com/m/ui"
"github.com/NicoNex/echotron/v3"
"github.com/rs/zerolog/log"
)
@@ -107,11 +108,6 @@ func (s *MyProjects) renderProjects(b *bot.Bot, mode bot.RenderMode, jwt string)
%s`, navTitle, headerTitle, emptyStateText)
} else {
pageInfo := ""
if page.Pages > 1 {
pageInfo = fmt.Sprintf(" <i>(стр. %d/%d)</i>", page.Page, page.Pages)
}
text = fmt.Sprintf(`<i>%s</i>
<b>%s</b>%s
@@ -119,7 +115,7 @@ func (s *MyProjects) renderProjects(b *bot.Bot, mode bot.RenderMode, jwt string)
%s`,
navTitle,
headerTitle,
pageInfo,
ui.FormatPageInfo(s.CurrentPage, page.Pages),
nonEmptyText)
}
@@ -153,23 +149,14 @@ func (s *MyProjects) renderProjects(b *bot.Bot, mode bot.RenderMode, jwt string)
}
// Ряд: Пагинация + Добавить (динамическая ширина)
var navRow []echotron.InlineKeyboardButton
// Левая стрелка (только если есть предыдущая страница)
if s.CurrentPage > 0 {
navRow = append(navRow, bot.Button("←", "prev"))
if navRow := ui.BuildNavigationRow(ui.PaginationConfig{
CurrentPage: s.CurrentPage,
TotalPages: page.Pages,
MiddleButtons: []echotron.InlineKeyboardButton{bot.Button(" Добавить", "add_project")},
}); navRow != nil {
buttons = append(buttons, navRow)
}
// Кнопка "Добавить проект" всегда в центре
navRow = append(navRow, bot.Button(" Добавить", "add_project"))
// Правая стрелка (только если есть следующая страница)
if s.CurrentPage+1 < page.Pages {
navRow = append(navRow, bot.Button("→", "next"))
}
buttons = append(buttons, navRow)
// Нижний ряд: Назад + Архив
buttons = append(buttons, bot.Row(
bot.Button("← Назад", "menu"),