From 4ee4d4ab918b71851f0a18fb63b50142e0008b8a Mon Sep 17 00:00:00 2001 From: Domin-MND <69919939+domin-mnd@users.noreply.github.com> Date: Mon, 23 Oct 2023 22:02:33 +0300 Subject: [PATCH] add options for component event --- packages/reacord/library/core/component-event.ts | 10 +++++++++- packages/reacord/library/core/reacord-discord-js.ts | 13 +++++-------- packages/reacord/scripts/discordjs-manual-test.tsx | 2 +- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/reacord/library/core/component-event.ts b/packages/reacord/library/core/component-event.ts index 62c7d6f..86e664f 100644 --- a/packages/reacord/library/core/component-event.ts +++ b/packages/reacord/library/core/component-event.ts @@ -33,15 +33,23 @@ export interface ComponentEvent { guild?: GuildInfo /** Create a new reply to this event. */ - reply(content?: ReactNode): ReacordInstance + reply(content?: ReactNode, options?: ReplyInfo): ReacordInstance /** * Create an ephemeral reply to this event, shown only to the user who * triggered it. + * + * @deprecated Use event.reply(content, { ephemeral: true }) */ ephemeralReply(content?: ReactNode): ReacordInstance } +/** @category Component Event */ +export interface ReplyInfo { + ephemeral?: boolean + tts?: boolean +} + /** @category Component Event */ export interface ChannelInfo { id: string diff --git a/packages/reacord/library/core/reacord-discord-js.ts b/packages/reacord/library/core/reacord-discord-js.ts index 7c6ed3d..eacca9d 100644 --- a/packages/reacord/library/core/reacord-discord-js.ts +++ b/packages/reacord/library/core/reacord-discord-js.ts @@ -18,6 +18,7 @@ import type { GuildInfo, GuildMemberInfo, MessageInfo, + ReplyInfo, UserInfo, } from "./component-event" import type { ReacordInstance } from "./instance" @@ -59,12 +60,7 @@ export interface CreateMessageReplyOptions {} * * @see https://reacord.mapleleaf.dev/guides/sending-messages */ -export interface CreateInteractionReplyOptions { - /** Whether to send interaction reply as _ephemeral_. */ - ephemeral?: boolean - /** Whether to use text-to-speech. */ - tts?: boolean -} +export type CreateInteractionReplyOptions = ReplyInfo; /** * The Reacord adapter for Discord.js. @@ -394,12 +390,13 @@ export class ReacordDiscordJs extends Reacord { user, guild, - reply: (content?: ReactNode) => + reply: (content?: ReactNode, options?: ReplyInfo) => this.createInstance( - this.createInteractionReplyRenderer(interaction, {}), + this.createInteractionReplyRenderer(interaction, options ?? {}), content, ), + /** @deprecated Use event.reply(content, { ephemeral: true }) */ ephemeralReply: (content: ReactNode) => this.createInstance( this.createInteractionReplyRenderer(interaction, { diff --git a/packages/reacord/scripts/discordjs-manual-test.tsx b/packages/reacord/scripts/discordjs-manual-test.tsx index 2a3fbe0..89518ef 100644 --- a/packages/reacord/scripts/discordjs-manual-test.tsx +++ b/packages/reacord/scripts/discordjs-manual-test.tsx @@ -127,7 +127,7 @@ await createTest("ephemeral button", (channel) => { />