refactor + fix добавление проекта

This commit is contained in:
Artem Tsyrulnikov
2026-01-20 15:16:06 +03:00
parent 7f6527652b
commit 4e4f9810d9
10 changed files with 251 additions and 235 deletions

View File

@@ -0,0 +1,21 @@
package ui
import "github.com/NicoNex/echotron/v3"
// BuildGrid builds button rows from items using a callback builder.
func BuildGrid[T any](items []T, itemsPerRow, itemsPerPage, totalPages int, itemFn func(T) (title string, callback string)) [][]echotron.InlineKeyboardButton {
if len(items) == 0 {
return nil
}
buttons := make([]echotron.InlineKeyboardButton, 0, len(items))
for _, item := range items {
title, callback := itemFn(item)
buttons = append(buttons, echotron.InlineKeyboardButton{
Text: title,
CallbackData: callback,
})
}
return BuildPageRows(buttons, itemsPerRow, itemsPerPage, totalPages)
}