ButtonBuilder

export declare class ButtonBuilder extends ComponentBuilder<APIButtonComponent>
export declare class ButtonBuilder extends ComponentBuilder<APIButtonComponent>
A builder that creates API-compatible JSON data for buttons.
constructor(data?)
Creates a new button from API data.
Example
Creating a button from an API data object:
const button = new ButtonBuilder({
custom_id: 'a cool button',
style: ButtonStyle.Primary,
label: 'Click Me',
emoji: {
name: 'smile',
id: '123456789012345678',
},
});
const button = new ButtonBuilder({
custom_id: 'a cool button',
style: ButtonStyle.Primary,
label: 'Click Me',
emoji: {
name: 'smile',
id: '123456789012345678',
},
});
Example
Creating a button using setters and API data:
const button = new ButtonBuilder({
style: ButtonStyle.Secondary,
label: 'Click Me',
})
.setEmoji({ name: '🙂' })
.setCustomId('another cool button');
const button = new ButtonBuilder({
style: ButtonStyle.Secondary,
label: 'Click Me',
})
.setEmoji({ name: '🙂' })
.setCustomId('another cool button');
NameTypeOptionalDescription
dataPartial<APIButtonComponent>YesThe API data to create this button with
The API data associated with this component.
Inherited from ComponentBuilder
setCustomId(customId):this
Sets the custom id for this button.
Remarks
This method is only applicable to buttons that are not using the Link button style.
NameTypeOptionalDescription
customIdstringNoThe custom id to use
setDisabled(disabled?):this
Sets whether this button is disabled.
NameTypeOptionalDescription
disabledbooleanYesWhether to disable this button
setEmoji(emoji):this
Sets the emoji to display on this button.
NameTypeOptionalDescription
emojiAPIMessageComponentEmojiNoThe emoji to use
setLabel(label):this
Sets the label for this button.
NameTypeOptionalDescription
labelstringNoThe label to use
setSKUId(skuId):this
Sets the SKU id that represents a purchasable SKU for this button.
Remarks
Only available when using premium-style buttons.
NameTypeOptionalDescription
skuIdSnowflakeNoThe SKU id to use
setStyle(style):this
Sets the style of this button.
NameTypeOptionalDescription
styleButtonStyleNoThe style to use
setURL(url):this
Sets the URL for this button.
Remarks
This method is only available to buttons using the Link button style. Only three types of URL schemes are currently supported: https://, http://, and discord://.
NameTypeOptionalDescription
urlstringNoThe URL to use
Serializes this builder to API-compatible JSON data.
Remarks
This method runs validations on the data before serializing it. As such, it may throw an error if the data is invalid.