Skip to content

Commit b0fec2f

Browse files
authored
docs(selections): simple list example
1 parent cc090b0 commit b0fec2f

File tree

1 file changed

+79
-0
lines changed
  • examples/selections

1 file changed

+79
-0
lines changed

examples/selections/list

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import { Client, MessageActionRow, MessageButton, MessageEmbed, MessageSelectMenu } from 'discord.js';
2+
import { PagesBuilder } from 'discord.js-pages';
3+
4+
const client = new Client({
5+
intents: [
6+
'GUILDS'
7+
]
8+
});
9+
10+
const players = ['MrZillaGold', 'Twennnn'];
11+
12+
client.on('interactionCreate', (interaction) => {
13+
if (!interaction.isCommand()) {
14+
return;
15+
}
16+
17+
let selected = [];
18+
19+
const generateOptions = () => (
20+
players.map((player) => ({
21+
label: player,
22+
value: player,
23+
default: selected.includes(player)
24+
}))
25+
);
26+
27+
const sendListButton = new MessageButton()
28+
.setCustomId('send')
29+
.setLabel('Send Players List')
30+
.setStyle('PRIMARY');
31+
32+
const builder = new PagesBuilder(interaction)
33+
.setTitle('Global title')
34+
.setDefaultButtons([]);
35+
36+
builder.setPages([
37+
() => {
38+
sendListButton.setDisabled(!selected.length);
39+
40+
builder.setComponents([
41+
new MessageActionRow()
42+
.setComponents(
43+
new MessageSelectMenu()
44+
.setCustomId('players')
45+
.setPlaceholder('Select Players')
46+
.setOptions(
47+
generateOptions()
48+
)
49+
.setMaxValues(players.length)
50+
),
51+
new MessageActionRow()
52+
.setComponents(sendListButton)
53+
]);
54+
55+
return new MessageEmbed()
56+
.setDescription(`Your selection: ${selected}`);
57+
}
58+
])
59+
.setTriggers([
60+
{
61+
name: 'players',
62+
callback({ values }) {
63+
selected = values;
64+
65+
builder.rerender();
66+
}
67+
},
68+
{
69+
name: 'send',
70+
callback() {
71+
interaction.followUp(`Your selection: ${selected}`);
72+
}
73+
}
74+
]);
75+
76+
builder.build();
77+
});
78+
79+
client.login(process.env.TOKEN);

0 commit comments

Comments
 (0)