diff --git a/packages/reacord/library/core/instance.ts b/packages/reacord/library/core/instance.ts index 4c6eca3..bea8ba7 100644 --- a/packages/reacord/library/core/instance.ts +++ b/packages/reacord/library/core/instance.ts @@ -7,7 +7,7 @@ import type { ReactNode } from "react" */ export interface ReacordInstance { /** Render some JSX to this instance (edits the message) */ - render: (content: ReactNode) => void + render: (content: ReactNode) => ReacordInstance /** Remove this message */ destroy: () => void diff --git a/packages/reacord/library/core/reacord-discord-js.ts b/packages/reacord/library/core/reacord-discord-js.ts index f5116bd..3f6dadc 100644 --- a/packages/reacord/library/core/reacord-discord-js.ts +++ b/packages/reacord/library/core/reacord-discord-js.ts @@ -88,17 +88,14 @@ export class ReacordDiscordJs extends Reacord { * * @param target - Discord channel object. * @param [options] - Options for the channel message - * @param [content] - Initial React node content to render. * @see https://reacord.mapleleaf.dev/guides/sending-messages */ public createChannelMessage( target: Discord.Channel, options: CreateChannelMessageOptions = {}, - content?: React.ReactNode, ): ReacordInstance { return this.createInstance( this.createChannelMessageRenderer(target, options), - content, ) } @@ -107,17 +104,14 @@ export class ReacordDiscordJs extends Reacord { * * @param message - Discord message event object. * @param [options] - Options for the message reply method. - * @param [content] - Initial React node content to render. * @see https://reacord.mapleleaf.dev/guides/sending-messages */ public createMessageReply( message: Discord.Message, options: CreateMessageReplyOptions = {}, - content?: React.ReactNode, ): ReacordInstance { return this.createInstance( this.createMessageReplyRenderer(message, options), - content, ) } @@ -126,17 +120,14 @@ export class ReacordDiscordJs extends Reacord { * * @param interaction - Discord command interaction object. * @param [options] - Custom options for the interaction reply method. - * @param [content] - Initial React node content to render. * @see https://reacord.mapleleaf.dev/guides/sending-messages */ public createInteractionReply( interaction: Discord.CommandInteraction, options: CreateInteractionReplyOptions = {}, - content?: React.ReactNode, ): ReacordInstance { return this.createInstance( this.createInteractionReplyRenderer(interaction, options), - content, ) } diff --git a/packages/reacord/library/core/reacord.tsx b/packages/reacord/library/core/reacord.tsx index 8d63c23..9ff5a52 100644 --- a/packages/reacord/library/core/reacord.tsx +++ b/packages/reacord/library/core/reacord.tsx @@ -57,6 +57,7 @@ export abstract class Reacord { {content}, container, ) + return instance }, deactivate: () => { this.deactivate(renderer) diff --git a/packages/reacord/scripts/discordjs-manual-test.tsx b/packages/reacord/scripts/discordjs-manual-test.tsx index 89518ef..5bfc1b1 100644 --- a/packages/reacord/scripts/discordjs-manual-test.tsx +++ b/packages/reacord/scripts/discordjs-manual-test.tsx @@ -50,7 +50,7 @@ const createTest = async ( } await createTest("basic", (channel) => { - reacord.createChannelMessage(channel, {}, "Hello, world!") + reacord.createChannelMessage(channel).render("Hello, world!") }) await createTest("counter", (channel) => { @@ -73,7 +73,7 @@ await createTest("counter", (channel) => { ) } - reacord.createChannelMessage(channel, {}, ) + reacord.createChannelMessage(channel).render() }) await createTest("select", (channel) => { @@ -102,9 +102,7 @@ await createTest("select", (channel) => { ) } - const instance = reacord.createChannelMessage( - channel, - {}, + const instance = reacord.createChannelMessage(channel).render( { instance.render(`you chose ${value}`) @@ -115,9 +113,7 @@ await createTest("select", (channel) => { }) await createTest("ephemeral button", (channel) => { - reacord.createChannelMessage( - channel, - {}, + reacord.createChannelMessage(channel).render( <>