mirror of
https://github.com/cheveguerra/whatsapp-web.js.git
synced 2026-04-18 11:39:14 +00:00
Fix buttons list (#1656)
* fix: change the individual buttons limti to 3, still 5 on total * docs: Change buttons example to include clipboard
This commit is contained in:
@@ -189,16 +189,18 @@ client.on('message', async msg => {
|
||||
client.interface.openChatWindowAt(quotedMsg.id._serialized);
|
||||
}
|
||||
} else if (msg.body === '!buttons') {
|
||||
// Limited to 5 buttons per message and limited to 3 buttons for each kind, in this case the third quick reply button will be removed
|
||||
let button = new Buttons(
|
||||
'Button body',
|
||||
[
|
||||
{ body: 'whatsapp-web.js', url: 'https://wwebjs.dev/' },
|
||||
{ body: 'Copy', url: 'https://www.whatsapp.com/otp/copy/This text will be copied to your clipboard' },
|
||||
{ body: 'Call me', number: '+1 (805) 457-4992' },
|
||||
{ body: 'third special button', number: '+1 (202) 968-6161' },// Limited to 2 especial buttons, this one will be ignored
|
||||
// Limited to 3 template buttons, any more will be ignored
|
||||
{ body: 'Some text' },
|
||||
{ body: 'Another text' },
|
||||
{ body: 'Another another text' },
|
||||
{ body: 'Fourth button' }// Limited to 3 regular buttons, this one will be ignored
|
||||
// Limited to 3 quick reply buttons, any more will be ignored
|
||||
],
|
||||
'title',
|
||||
'footer'
|
||||
|
||||
@@ -70,10 +70,10 @@ class Buttons {
|
||||
* @returns {FormattedButtonSpec[]}
|
||||
*/
|
||||
_format(buttons){
|
||||
// Limit the buttons (max 3 of regular and 2 of special buttons)
|
||||
const templateButtons = buttons.filter(button => button.url || button.number).slice(0,2);
|
||||
// Limit the buttons (max 3 of regular and 3 of special buttons) 5 buttons total at the same time
|
||||
const templateButtons = buttons.filter(button => button.url || button.number).slice(0,3);
|
||||
const regularButtons = buttons.filter(button => !button.url && !button.number).slice(0,3);
|
||||
buttons = templateButtons.concat(regularButtons);
|
||||
buttons = templateButtons.concat(regularButtons).slice(0,5);
|
||||
|
||||
return buttons.map((button, index) => {
|
||||
if (button.url && button.number && button.id) throw 'Only pick one of the following (url/number/id)';
|
||||
|
||||
Reference in New Issue
Block a user