@dressed/react 1.8.0-rc.2 → 1.8.0-rc.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/button.d.ts +4 -1
- package/dist/components/button.js.map +1 -1
- package/dist/components/select-menu.d.ts +4 -1
- package/dist/components/select-menu.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/rendering/callbacks.d.ts +1 -0
- package/dist/rendering/callbacks.js +2 -1
- package/dist/rendering/callbacks.js.map +1 -1
- package/dist/rendering/interaction.d.ts +15 -2
- package/dist/rendering/interaction.js +6 -4
- package/dist/rendering/interaction.js.map +1 -1
- package/dist/rendering/message.d.ts +14 -2
- package/dist/rendering/message.js +8 -4
- package/dist/rendering/message.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,7 +5,10 @@ interface ButtonWithCustomId extends Omit<APIButtonComponentWithCustomId, "type"
|
|
|
5
5
|
style?: Exclude<keyof typeof ButtonStyle, "Link" | "Premium">;
|
|
6
6
|
}
|
|
7
7
|
interface ButtonWithOnClick extends Omit<ButtonWithCustomId, "custom_id"> {
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Create a temporary handler callback, will not work in a serverless environment
|
|
10
|
+
* @warn Callbacks are deleted after 30 minutes. If you wish to have a more permanent handler, it's strongly recommended to use the [traditional component system](https://dressed.js.org/docs/components).
|
|
11
|
+
*/
|
|
9
12
|
onClick: (interaction: MessageComponentInteraction<"Button">) => void;
|
|
10
13
|
/** An additional handler identity defined in the callback setup which will run if the `onClick` is no longer registered */
|
|
11
14
|
fallback?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,aAAa,EAAqB,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,aAAa,EAAqB,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AA0B5D,MAAM,UAAU,MAAM,CACpB,KAIqD;IAErD,MAAM,SAAS,GAAG,gBAAgB,CAAC;QACjC,GAAG,KAAK;QACR,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,OAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC,CAAC;IACZ,OAAO,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -14,7 +14,10 @@ type SelectMenuWithCustomId<K extends SelectType> = Omit<SelectMap[`${K}Select`]
|
|
|
14
14
|
children: ReactNode;
|
|
15
15
|
} : object);
|
|
16
16
|
type SelectMenuWithOnClick<K extends SelectType> = Omit<SelectMenuWithCustomId<K>, "custom_id"> & {
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Create a temporary handler callback, will not work in a serverless environment
|
|
19
|
+
* @warn Callbacks are deleted after 30 minutes. If you wish to have a more permanent handler, it's strongly recommended to use the [traditional component system](https://dressed.js.org/docs/components).
|
|
20
|
+
*/
|
|
18
21
|
onSubmit: (interaction: MessageComponentInteraction<`${K}Select`>) => void;
|
|
19
22
|
/** An additional handler identity defined in the callback setup which will run if the `onSubmit` is no longer registered */
|
|
20
23
|
fallback?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-menu.js","sourceRoot":"","sources":["../../src/components/select-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC7G,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,gBAAgB,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAqC,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"select-menu.js","sourceRoot":"","sources":["../../src/components/select-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC7G,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,gBAAgB,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAqC,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AA8B5D,MAAM,UAAU,UAAU,CACxB,KAA2D;IAE3D,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAgC,CAAC;IAC/D,MAAM,SAAS,GAAG,gBAAgB,CAAC;QACjC,GAAG,IAAI;QACP,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,QAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAChF,CAAC,CAAC;IACZ,OAAO,aAAa,CAAC,cAAc,EAAE,SAAkB,EAAE,QAAqB,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA0B;IACzD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjE,OAAO,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,eAAe,CAAmC,KAAQ,EAAE,QAAqC;IAC/G,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,YAAY,EAAE,CAAC;QAC9C,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export { Separator } from "./components/separator.ts";
|
|
|
10
10
|
export { TextDisplay } from "./components/text-display.ts";
|
|
11
11
|
export { TextInput } from "./components/text-input.ts";
|
|
12
12
|
export { Thumbnail } from "./components/thumbnail.ts";
|
|
13
|
+
export * from "./react/reconciler.ts";
|
|
13
14
|
export * from "./rendering/index.ts";
|
|
14
15
|
export * from "./rendering/interaction.ts";
|
|
15
16
|
export * from "./rendering/message.ts";
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export { TextDisplay } from "./components/text-display.js";
|
|
|
12
12
|
export { TextInput } from "./components/text-input.js";
|
|
13
13
|
export { Thumbnail } from "./components/thumbnail.js";
|
|
14
14
|
// Rendering
|
|
15
|
+
export * from "./react/reconciler.js";
|
|
15
16
|
export * from "./rendering/index.js";
|
|
16
17
|
export * from "./rendering/interaction.js";
|
|
17
18
|
export * from "./rendering/message.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,YAAY;AACZ,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,YAAY;AACZ,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC"}
|
|
@@ -13,5 +13,6 @@ export declare function setupCallbackHandler<T extends Record<string, Handler> =
|
|
|
13
13
|
export declare function registerHandler(handler: Handler, fallback?: string, id?: string): {
|
|
14
14
|
custom_id: string;
|
|
15
15
|
$registeredHandler: string;
|
|
16
|
+
$handlerCleaner: NodeJS.Timeout;
|
|
16
17
|
};
|
|
17
18
|
export {};
|
|
@@ -23,8 +23,9 @@ export function setupCallbackHandler(fallbacks = {}) {
|
|
|
23
23
|
}
|
|
24
24
|
export function registerHandler(handler, fallback, id = randId()) {
|
|
25
25
|
handlers.set(id, handler);
|
|
26
|
+
const $handlerCleaner = setTimeout(() => handlers.delete(id), 6e4 * 30);
|
|
26
27
|
const fbText = fallback ? `-${fallback}` : "";
|
|
27
|
-
return { custom_id: `@dressed/react-handler-${id}${fbText}`, $registeredHandler: id };
|
|
28
|
+
return { custom_id: `@dressed/react-handler-${id}${fbText}`, $registeredHandler: id, $handlerCleaner };
|
|
28
29
|
}
|
|
29
30
|
function randId(length = 16) {
|
|
30
31
|
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../src/rendering/callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAInH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;AAEnD,wEAAwE;AACxE,MAAM,CAAC,MAAM,OAAO,GAAG,+CAA+C,CAAC;AAEvE,4DAA4D;AAC5D,mEAAmE;AACnE,MAAM,UAAU,oBAAoB,CAAyC,YAAe,EAAO;IACjG,KAAK,MAAM,GAAG,IAAI,SAAS;QAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAClB,KAAK,EACH,WAAiE,EACjE,IAA8C,EAC9C,EAAE;;QACF,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,mCAAI,QAAQ,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,SAAS,CAAC,CAAC;QACzF,mBAAmB;QACnB,WAAW,GAAG,WAAW,CAAC,QAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAClH,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzF,MAAM,OAAO,CAAC,WAAoB,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM;YAAE,WAAW,CAAC,WAAW,EAAE,CAAC;IAC7D,CAAC,EACD;QACE,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAEtE;KACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,QAAiB,EAAE,EAAE,GAAG,MAAM,EAAE;IAChF,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,GAAG,MAAM,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../src/rendering/callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAInH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;AAEnD,wEAAwE;AACxE,MAAM,CAAC,MAAM,OAAO,GAAG,+CAA+C,CAAC;AAEvE,4DAA4D;AAC5D,mEAAmE;AACnE,MAAM,UAAU,oBAAoB,CAAyC,YAAe,EAAO;IACjG,KAAK,MAAM,GAAG,IAAI,SAAS;QAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAClB,KAAK,EACH,WAAiE,EACjE,IAA8C,EAC9C,EAAE;;QACF,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,mCAAI,QAAQ,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,SAAS,CAAC,CAAC;QACzF,mBAAmB;QACnB,WAAW,GAAG,WAAW,CAAC,QAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAClH,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzF,MAAM,OAAO,CAAC,WAAoB,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM;YAAE,WAAW,CAAC,WAAW,EAAE,CAAC;IAC7D,CAAC,EACD;QACE,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAEtE;KACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,QAAiB,EAAE,EAAE,GAAG,MAAM,EAAE;IAChF,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1B,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,GAAG,MAAM,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;AACzG,CAAC;AAED,SAAS,MAAM,CAAC,MAAM,GAAG,EAAE;IACzB,MAAM,KAAK,GAAG,gEAAgE,CAAC;IAC/E,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -2,16 +2,29 @@ import { type ApplicationCommandType } from "discord-api-types/v10";
|
|
|
2
2
|
import { type CommandConfig, type CommandInteraction as DressedCommandInteraction, type MessageComponentInteraction as DressedMessageComponentInteraction, type ModalSubmitInteraction as DressedModalSubmitInteraction } from "dressed";
|
|
3
3
|
import type { createInteraction } from "dressed/server";
|
|
4
4
|
import type { ReactNode } from "react";
|
|
5
|
+
import type { WithContainer } from "./message.ts";
|
|
5
6
|
type ReactivatedInteraction<T> = OverrideMethodParams<T, {
|
|
6
7
|
[K in "reply" | "editReply" | "update" | "followUp" | "showModal"]: [
|
|
7
8
|
components: ReactNode,
|
|
8
|
-
...(Parameters<T[K]> extends readonly [...infer P] ? [
|
|
9
|
+
...(Parameters<T[K]> extends readonly [...infer P] ? [
|
|
10
|
+
data?: Omit<Exclude<P[0], string>, "content" | "components">,
|
|
11
|
+
$req?: P[1] & {
|
|
12
|
+
/**
|
|
13
|
+
* Do not set the contents of your response to `null` after 15 minutes (when Discord deletes the original interaction) in order to conserve resources.
|
|
14
|
+
*
|
|
15
|
+
* Setting the response to `null` will not affect the shown components, it just destroys existing hooks and other internal data.
|
|
16
|
+
*
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
persistContainer?: boolean;
|
|
20
|
+
}
|
|
21
|
+
] : never)
|
|
9
22
|
];
|
|
10
23
|
}> & {
|
|
11
24
|
$patched: symbol;
|
|
12
25
|
};
|
|
13
26
|
type OverrideMethodParams<T, Overrides extends Record<string, unknown[]>> = {
|
|
14
|
-
[K in keyof T]: K extends keyof Overrides ? T[K] extends (...args:
|
|
27
|
+
[K in keyof T]: K extends keyof Overrides ? T[K] extends (...args: never[]) => unknown ? (...args: Overrides[K]) => Promise<WithContainer<NonNullable<Awaited<ReturnType<T[K]>>>>> : T[K] : T[K];
|
|
15
28
|
};
|
|
16
29
|
export type CommandInteraction<T extends keyof typeof ApplicationCommandType | CommandConfig = "ChatInput"> = ReactivatedInteraction<DressedCommandInteraction<T>>;
|
|
17
30
|
export type MessageComponentInteraction<T extends "Button" | "StringSelect" | "UserSelect" | "RoleSelect" | "MentionableSelect" | "ChannelSelect" | undefined = undefined> = ReactivatedInteraction<DressedMessageComponentInteraction<T>>;
|
|
@@ -26,9 +26,8 @@ export function patchInteraction(interaction) {
|
|
|
26
26
|
}
|
|
27
27
|
return new Promise((resolve) => {
|
|
28
28
|
const { container } = render(components, async (c) => {
|
|
29
|
-
if (Date.now() > createdAt + 6e4 * 15)
|
|
30
|
-
return
|
|
31
|
-
}
|
|
29
|
+
if (c.length === 0 || Date.now() > createdAt + 6e4 * 15)
|
|
30
|
+
return;
|
|
32
31
|
// @ts-expect-error
|
|
33
32
|
data.components = c;
|
|
34
33
|
if (followUpId)
|
|
@@ -46,8 +45,11 @@ export function patchInteraction(interaction) {
|
|
|
46
45
|
if (pendingFollowUpEdit)
|
|
47
46
|
editFollowUp();
|
|
48
47
|
}
|
|
49
|
-
resolve(res);
|
|
48
|
+
resolve(Object.assign(res !== null && res !== void 0 ? res : {}, { $container: container }));
|
|
50
49
|
});
|
|
50
|
+
if (!($req === null || $req === void 0 ? void 0 : $req.persistContainer)) {
|
|
51
|
+
setTimeout(() => reconciler.updateContainer(null, container), createdAt + 6e4 * 15 - Date.now());
|
|
52
|
+
}
|
|
51
53
|
});
|
|
52
54
|
};
|
|
53
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/rendering/interaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAKL,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/rendering/interaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,25 @@ import { type APIMessage, type Snowflake } from "discord-api-types/v10";
|
|
|
2
2
|
import { createMessage as dressedCreateMessage, editMessage as dressedEditMessage } from "dressed";
|
|
3
3
|
import type { CallConfig } from "dressed/utils";
|
|
4
4
|
import type { ReactNode } from "react";
|
|
5
|
+
import type { OpaqueRoot } from "react-reconciler";
|
|
6
|
+
export type WithContainer<T> = T & {
|
|
7
|
+
/**
|
|
8
|
+
* The root of this rendered component, can be used to update data or clear it in order to effectively stop the React process
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* import { createMessage, reconciler } from "@dressed/react";
|
|
12
|
+
* const { $container } = await createMessage(channelId, "Hello");
|
|
13
|
+
* reconciler.updateContainer(null, $container);
|
|
14
|
+
*/
|
|
15
|
+
$container: OpaqueRoot;
|
|
16
|
+
};
|
|
5
17
|
/**
|
|
6
18
|
* Renders the provided children and posts a message to a guild text or DM channel with the `IsComponentsV2` flag.
|
|
7
19
|
* @example createMessage(channelId, <Button label="Foo" />)
|
|
8
20
|
*/
|
|
9
|
-
export declare function createMessage(channelId: Snowflake, components: ReactNode, data?: Omit<Exclude<Parameters<typeof dressedCreateMessage>[1], string>, "content" | "components">, $req?: CallConfig): Promise<APIMessage
|
|
21
|
+
export declare function createMessage(channelId: Snowflake, components: ReactNode, data?: Omit<Exclude<Parameters<typeof dressedCreateMessage>[1], string>, "content" | "components">, $req?: CallConfig): Promise<WithContainer<APIMessage>>;
|
|
10
22
|
/**
|
|
11
23
|
* Renders the provided children and edits a previously sent message.
|
|
12
24
|
* @example editMessage(channelId, messageId, <Button label="Bar" />)
|
|
13
25
|
*/
|
|
14
|
-
export declare function editMessage(channelId: Snowflake, messageId: Snowflake, components: ReactNode, data?: Omit<Exclude<Parameters<typeof dressedEditMessage>[2], string>, "content" | "components">, $req?: CallConfig): Promise<APIMessage
|
|
26
|
+
export declare function editMessage(channelId: Snowflake, messageId: Snowflake, components: ReactNode, data?: Omit<Exclude<Parameters<typeof dressedEditMessage>[2], string>, "content" | "components">, $req?: CallConfig): Promise<WithContainer<APIMessage>>;
|
|
@@ -16,7 +16,9 @@ export function createMessage(channelId, components, data = {}, $req) {
|
|
|
16
16
|
return dressedEditMessage(channelId, messageId, data, $req);
|
|
17
17
|
}
|
|
18
18
|
return new Promise((resolve) => {
|
|
19
|
-
render(components, async (c) => {
|
|
19
|
+
const { container } = render(components, async (c) => {
|
|
20
|
+
if (c.length === 0)
|
|
21
|
+
return;
|
|
20
22
|
// @ts-expect-error
|
|
21
23
|
data.components = c;
|
|
22
24
|
if (messageId)
|
|
@@ -30,7 +32,7 @@ export function createMessage(channelId, components, data = {}, $req) {
|
|
|
30
32
|
messageId = message.id;
|
|
31
33
|
if (pendingEdit)
|
|
32
34
|
edit();
|
|
33
|
-
resolve(message);
|
|
35
|
+
resolve(Object.assign(message, { $container: container }));
|
|
34
36
|
});
|
|
35
37
|
});
|
|
36
38
|
}
|
|
@@ -42,10 +44,12 @@ export function editMessage(channelId, messageId, components, data = {}, $req) {
|
|
|
42
44
|
var _a;
|
|
43
45
|
data.flags = ((_a = data.flags) !== null && _a !== void 0 ? _a : 0) | MessageFlags.IsComponentsV2;
|
|
44
46
|
return new Promise((resolve) => {
|
|
45
|
-
render(components, async (c) => {
|
|
47
|
+
const { container } = render(components, async (c) => {
|
|
48
|
+
if (c.length === 0)
|
|
49
|
+
return;
|
|
46
50
|
// @ts-expect-error
|
|
47
51
|
data.components = c;
|
|
48
|
-
resolve(dressedEditMessage(channelId, messageId, data, $req));
|
|
52
|
+
resolve(Object.assign(await dressedEditMessage(channelId, messageId, data, $req), { $container: container }));
|
|
49
53
|
});
|
|
50
54
|
});
|
|
51
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/rendering/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,YAAY,EAAkB,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,aAAa,IAAI,oBAAoB,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/rendering/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,YAAY,EAAkB,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,aAAa,IAAI,oBAAoB,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAInG,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAcpC;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,SAAoB,EACpB,UAAqB,EACrB,OAAoG,EAAE,EACtG,IAAiB;;IAEjB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,CAAC,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC;IAE7D,IAAI,SAAiC,CAAC;IACtC,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,SAAS,IAAI;QACX,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,OAAO,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,IAAI,OAAO,CAA4B,CAAC,OAAO,EAAE,EAAE;QACxD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACnD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC3B,mBAAmB;YACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,IAAI,SAAS;gBAAE,OAAO,IAAI,EAAE,CAAC;YAC7B,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;gBACpB,WAAW,GAAG,IAAI,CAAC;gBACnB,OAAO;YACT,CAAC;YACD,SAAS,GAAG,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAClE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;YACvB,IAAI,WAAW;gBAAE,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,SAAoB,EACpB,SAAoB,EACpB,UAAqB,EACrB,OAAkG,EAAE,EACpG,IAAiB;;IAEjB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,CAAC,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC;IAE7D,OAAO,IAAI,OAAO,CAA4B,CAAC,OAAO,EAAE,EAAE;QACxD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACnD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC3B,mBAAmB;YACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|