From eb97b2d23dc3bb06f84028da051c7fb6ce44ed16 Mon Sep 17 00:00:00 2001 From: Crawron Date: Thu, 21 Jul 2022 16:11:19 -0500 Subject: [PATCH] Add helper to convert button style to enum --- .../library/core/reacord-discord-js.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/reacord/library/core/reacord-discord-js.ts b/packages/reacord/library/core/reacord-discord-js.ts index 2e9e3a0..daab8c8 100644 --- a/packages/reacord/library/core/reacord-discord-js.ts +++ b/packages/reacord/library/core/reacord-discord-js.ts @@ -7,7 +7,11 @@ import { pruneNullishValues } from "../../helpers/prune-nullish-values" import { raise } from "../../helpers/raise" import { toUpper } from "../../helpers/to-upper" import type { ComponentInteraction } from "../internal/interaction" -import type { Message, MessageOptions } from "../internal/message" +import type { + Message, + MessageButtonOptions, + MessageOptions, +} from "../internal/message" import { ChannelMessageRenderer } from "../internal/renderers/channel-message-renderer" import { InteractionReplyRenderer } from "../internal/renderers/interaction-reply-renderer" import type { @@ -317,6 +321,17 @@ function createEphemeralReacordMessage(): Message { } } +function convertButtonStyleToEnum(style: MessageButtonOptions["style"]) { + const styleMap = { + primary: Discord.ButtonStyle.Primary, + secondary: Discord.ButtonStyle.Secondary, + success: Discord.ButtonStyle.Success, + danger: Discord.ButtonStyle.Danger, + } as const + + return styleMap[style ?? "secondary"] +} + // TODO: this could be a part of the core library, // and also handle some edge cases, e.g. empty messages function getDiscordMessageOptions( @@ -335,7 +350,7 @@ function getDiscordMessageOptions( type: "BUTTON", customId: component.customId, label: component.label ?? "", - style: toUpper(component.style ?? "secondary"), + style: convertButtonStyleToEnum(component.style), disabled: component.disabled, emoji: component.emoji, }