Мне нужно, чтобы пользователь выбрал более одного варианта и сохранил его в сеансе
Я искал разные ресурсы, но не нашел способа сделать это
Я просто выяснил, как выбрать один элемент, сопоставив с клавиатуры и заменив соответствующий обратный вызов и текст нажатой кнопки btn текстом и обратным вызовом, которые я хочу
# Вот мой код
это функция
function ke(clickedbtn) {
let keypad = [];
let keys = [
[
{
text: 'windows',
callback_data: 'btn-1',
},
],
[
{
text: 'mac',
callback_data: 'btn-2',
},
],
[
{
text: 'linux',
callback_data: 'btn-3',
},
],
[
{
text: 'Delete',
callback_data: 'delete',
},
],
];
keys.map((arr) => {
let h = [];
let btn = {};
let cb = arr[0].callback_data;
let tx = arr[0].text;
if (cb == clickedbtn) {
(btn.text = tx + ' ✅'), (btn.callback_data = cb + 'selected');
} else {
(btn.text = tx), (btn.callback_data = cb);
}
h.push(btn);
keypad.push(hi);
});
return keypad;
}
А это действие
bot.action(/btn-[0-4]/, (ctx) => {
let clicked = ctx.match[0];
ctx.editMessageReplyMarkup({
inline_keyboard: ke(clicked),
});
ctx.answerCbQuery();
});