mirror of
https://github.com/cheveguerra/whatsapp-web.js.git
synced 2026-04-20 20:49: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);
|
client.interface.openChatWindowAt(quotedMsg.id._serialized);
|
||||||
}
|
}
|
||||||
} else if (msg.body === '!buttons') {
|
} 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(
|
let button = new Buttons(
|
||||||
'Button body',
|
'Button body',
|
||||||
[
|
[
|
||||||
{ body: 'whatsapp-web.js', url: 'https://wwebjs.dev/' },
|
{ 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: '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: 'Some text' },
|
||||||
{ body: 'Another text' },
|
{ body: 'Another text' },
|
||||||
{ body: 'Another 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',
|
'title',
|
||||||
'footer'
|
'footer'
|
||||||
|
|||||||
@@ -70,10 +70,10 @@ class Buttons {
|
|||||||
* @returns {FormattedButtonSpec[]}
|
* @returns {FormattedButtonSpec[]}
|
||||||
*/
|
*/
|
||||||
_format(buttons){
|
_format(buttons){
|
||||||
// Limit the buttons (max 3 of regular and 2 of special buttons)
|
// 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,2);
|
const templateButtons = buttons.filter(button => button.url || button.number).slice(0,3);
|
||||||
const regularButtons = 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) => {
|
return buttons.map((button, index) => {
|
||||||
if (button.url && button.number && button.id) throw 'Only pick one of the following (url/number/id)';
|
if (button.url && button.number && button.id) throw 'Only pick one of the following (url/number/id)';
|
||||||
|
|||||||
Reference in New Issue
Block a user