InlineKeyboard.grid constructor
Creates an inline keyboard with a grid layout.
Implementation
factory InlineKeyboard.grid(
List<List<String>> pairs, {
required int columns,
}) {
if (columns <= 0) {
throw ArgumentError('Columns must be greater than 0');
}
final buttons = <List<InlineKeyboardButton>>[];
for (int i = 0; i < pairs.length; i += columns) {
final rowPairs = pairs.skip(i).take(columns);
final row = rowPairs.map((pair) {
if (pair.length != 2) {
throw ArgumentError(
'Each button pair must contain exactly 2 elements: [text, data]',
);
}
return InlineKeyboardButton(text: pair[0], callbackData: pair[1]);
}).toList();
buttons.add(row);
}
return InlineKeyboard(inlineKeyboard: buttons);
}