Initial commit
Build & Push / build (push) Canceled after 0s

This commit is contained in:
2026-08-05 19:31:35 +03:00
commit a33fa24e99
272 changed files with 40566 additions and 0 deletions
+21
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)
}