@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.
@@ -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
- /** Create a temporary handler callback, will not work in a serverless environment */
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;AAuB5D,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"}
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
- /** Create a temporary handler callback, will not work in a serverless environment */
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;AA2B5D,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"}
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;AACxF,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"}
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] ? [data?: Omit<Exclude<P[0], string>, "content" | "components">, $req?: P[1]] : never)
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: any) => any ? (...args: Overrides[K]) => ReturnType<T[K]> : T[K] : T[K];
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 reconciler.updateContainer(null, container);
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":"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"}
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;AAGnG,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC;;;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,CAAa,CAAC,OAAO,EAAE,EAAE;QACzC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC7B,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,OAAO,CAAC,CAAC;QACnB,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,CAAa,CAAC,OAAO,EAAE,EAAE;QACzC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC7B,mBAAmB;YACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dressed/react",
3
- "version": "1.8.0-rc.2",
3
+ "version": "1.8.0-rc.3.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/Inbestigator/dressed.git",