Reputation: 453
I need to create a menu using inlineKeyboard from an array of "n" element that can change in value and number. I'm working with telegraf API and this is how i create a static one:
const bookMenu = Telegraf.Extra
.markdown()
.markup((m) => m.inlineKeyboard([[
m.callbackButton('book1', 'book1-callback'),
m.callbackButton("book2", "book2-callback")],
[m.callbackButton("book3", "book3-callback")]
//.....
//for n buttons
//.....
]))
How can i do that? I couldn't manage to do a for cycle inside markup
Upvotes: 1
Views: 2431
Reputation: 453
const bookMenu = Telegraf.Extra
.markdown()
.markup((m) => {
let list = []
let j = 0;
async.each(arrayOfLabel, ()=>{
list.push(m.callbackButton(books[j], "your-unic-callback"))
j++
})
return m.inlineKeyboard(list)
})
returning m.inlineKeyboard
with the wanted list solved the problem.
Upvotes: 1