From 0608c7ad85af6c3923f04b8d5815faedf8750b63 Mon Sep 17 00:00:00 2001 From: MARCROCK22 Date: Tue, 17 Jun 2025 16:47:46 -0400 Subject: [PATCH] fix: i dont know why it was like that --- src/components/handler.ts | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/components/handler.ts b/src/components/handler.ts index 617179a..d3de75d 100644 --- a/src/components/handler.ts +++ b/src/components/handler.ts @@ -38,7 +38,10 @@ export interface CreateComponentCollectorResult { callback: ComponentCallback, ): void; stop(reason?: string): void; - waitFor(customId: UserMatches): Promise; + waitFor( + customId: UserMatches, + timeout?: number, + ): Promise; resetTimeouts(): void; } @@ -117,23 +120,24 @@ export class ComponentHandler extends BaseHandler { this.createComponentCollector(messageId, channelId, guildId, options, old.components); }); }, - waitFor: customId => + waitFor: (customId, timeout) => new Promise(resolve => { const collector = this.values.get(messageId); if (!collector) return resolve(null); + let nodeTimeout: NodeJS.Timeout | undefined; + this.values.get(messageId)!.__run(customId, interaction => { - this.clearValue(messageId); + clearTimeout(nodeTimeout); //@ts-expect-error generic resolve(interaction); }); - if (collector?.timeout) clearTimeout(collector.timeout); - collector.timeout = setTimeout(() => { - this.clearValue(messageId); - resolve(null); - // by default 15 seconds in case user don't do anything - }, collector?.options?.timeout ?? 15_000); + if (timeout && timeout > 0) + nodeTimeout = setTimeout(() => { + resolve(null); + // by default 15 seconds in case user don't do anything + }, timeout); }), resetTimeouts: () => { this.resetTimeouts(messageId);