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(
<>