const { MessageActionRow, MessageButton, MessageEmbed, TextInputComponent } = require('discord.js'); module.exports = { actionRows: { gifSearchAR(state) { // Setup the buttons const previousButton = new MessageButton() .setCustomId('prevGif') .setLabel('⬅️') .setStyle('SECONDARY'); const confirmButton = new MessageButton() .setCustomId('confirmGif') .setLabel('Select') .setStyle('PRIMARY'); const nextButton = new MessageButton() .setCustomId('nextGif') .setLabel('➡️') .setStyle('SECONDARY'); const cancelButton = new MessageButton() .setCustomId('cancelGif') .setLabel('Cancel') .setStyle('DANGER'); switch (state) { case 'first': previousButton.setDisabled(true); break; case 'last': nextButton.setDisabled(true); break; } // Put the buttons into an ActionRow return new MessageActionRow() .addComponents(previousButton, confirmButton, nextButton, cancelButton); }, gifsPageAR(state) { // Setup the buttons const previousButton = new MessageButton() .setCustomId('prevGifsPage') .setLabel('⬅️') .setStyle('SECONDARY'); const nextButton = new MessageButton() .setCustomId('nextGifsPage') .setLabel('➡️') .setStyle('SECONDARY'); switch (state) { case 'first': previousButton.setDisabled(true); break; case 'last': nextButton.setDisabled(true); break; } // Put the buttons into an ActionRow return new MessageActionRow() .addComponents(previousButton, nextButton); }, requestsPageAR(state) { // Setup the buttons const previousButton = new MessageButton() .setCustomId('prevRequestsPage') .setLabel('⬅️') .setStyle('SECONDARY'); const nextButton = new MessageButton() .setCustomId('nextRequestsPage') .setLabel('➡️') .setStyle('SECONDARY'); const closeButton = new MessageButton() .setCustomId('closeRequests') .setLabel('Close Requests') .setStyle('DANGER'); switch (state) { case 'first': previousButton.setDisabled(true); break; case 'last': nextButton.setDisabled(true); break; } // Put the buttons into an ActionRow return new MessageActionRow() .addComponents(previousButton, nextButton); }, pastasPageAR(state) { // Setup the buttons const previousButton = new MessageButton() .setCustomId('prevPastasPage') .setLabel('⬅️') .setStyle('SECONDARY'); const nextButton = new MessageButton() .setCustomId('nextPastasPage') .setLabel('➡️') .setStyle('SECONDARY'); switch (state) { case 'first': previousButton.setDisabled(true); break; case 'last': nextButton.setDisabled(true); break; } // Put the buttons into an ActionRow return new MessageActionRow() .addComponents(previousButton, nextButton); }, jointsPageAR(state) { // Setup the buttons const previousButton = new MessageButton() .setCustomId('prevJointsPage') .setLabel('⬅️') .setStyle('SECONDARY'); const nextButton = new MessageButton() .setCustomId('nextJointsPage') .setLabel('➡️') .setStyle('SECONDARY'); switch (state) { case 'first': previousButton.setDisabled(true); break; case 'last': nextButton.setDisabled(true); break; } // Put the buttons into an ActionRow return new MessageActionRow() .addComponents(previousButton, nextButton); } }, modals: { closeRequestsModal() { const requestNumberInput = new TextInputComponent() .setCustomId('requestNumber') .setLabel('Request Number') .setPlaceholder('420') .setMinLength(1) .setMaxLength(5) .setStyle('SHORT') .setRequired(true); const actionRow = new MessageActionRow() .addComponents([requestNumberInput]); return new Modal() .setTitle('Close Request') .setDescription('Please enter the number of the request you would like to close.') .addComponents([actionRow]); } }, core: { gifSearch(commandData, indexedGifs) { return new MessageEmbed() .setColor('#0099ff') .setTitle('GIF Search') .setImage(indexedGifs.thisPage[0].media_formats.gif.url) .setFooter({ text: `Page ${indexedGifs.pagesString}` }) .addFields( { name: 'Query', value: `"${indexedGifs.query}"`, inline: true }, { name: 'Saving As', value: `${indexedGifs.gifName}.gif`, inline: true }, ); } } }