Skip to main content

Can the buttonAsync be created dynamically?



I have an array of Order Numbers called filteredOrderNames. Can each value of the array serve as the button label?



let selectedOrder = await input.buttonsAsync(

'Select Order Group from List below',

[

{label: filteredOrdersNames, value: filteredOrders}

]);

Yes, this can be done using the map method on the filteredOrdersNames array. Here’s a test I just ran:



let filteredOrdersNames = ="One", "Two", "Three", "Four", "Five", "Six"];

let filteredOrders = =1, 2, 3, 4, 5, 6]



let selectedOrder = await input.buttonsAsync(

"Select order group from list below",

filteredOrdersNames.map(item => {return {label: item, value: filteredOrdersrfilteredOrdersNames.indexOf(item)]}})

)



output.text("Selected Order: " + selectedOrder)



Output:




Yes, this can be done using the map method on the filteredOrdersNames array. Here’s a test I just ran:



let filteredOrdersNames = ="One", "Two", "Three", "Four", "Five", "Six"];

let filteredOrders = =1, 2, 3, 4, 5, 6]



let selectedOrder = await input.buttonsAsync(

"Select order group from list below",

filteredOrdersNames.map(item => {return {label: item, value: filteredOrdersrfilteredOrdersNames.indexOf(item)]}})

)



output.text("Selected Order: " + selectedOrder)



Output:




This is brilliant! Thanks so much. It works perfectly.


4 years later and this post helped me out SO much! Thank you!


Reply