From 1cf980ba1fa1e50fcc2f4ca5e9cd5821d238122f Mon Sep 17 00:00:00 2001 From: iapolya Date: Sun, 9 Jun 2024 22:55:45 +0300 Subject: [PATCH] feat: cancel promo timeout --- src/promo-manager/core/controller.ts | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/promo-manager/core/controller.ts b/src/promo-manager/core/controller.ts index 017d7bb..45bacc4 100644 --- a/src/promo-manager/core/controller.ts +++ b/src/promo-manager/core/controller.ts @@ -129,15 +129,7 @@ export class Controller { finishPromo = (slug: PromoSlug, updateProgressInfo = false, closeActiveTimeout = 0) => { this.assertProgressLoaded(); - if (this.isActive(slug)) { - if (closeActiveTimeout) { - setTimeout(() => { - this.clearActive(); - }, closeActiveTimeout); - } else { - this.clearActive(); - } - } + this.closeActivePromo(slug, closeActiveTimeout); if (this.state.progress.finishedPromos.includes(slug)) { return; @@ -154,10 +146,8 @@ export class Controller { this.triggerNextPromo(); }; - cancelPromo = (slug: PromoSlug, updateProgressInfo = false) => { - if (this.isActive(slug)) { - this.clearActive(); - } + cancelPromo = (slug: PromoSlug, updateProgressInfo = false, closeActiveTimeout = 0) => { + this.closeActivePromo(slug, closeActiveTimeout); if (updateProgressInfo) { this.updateProgressInfo(slug); @@ -435,4 +425,16 @@ export class Controller { listener(); } }; + + private closeActivePromo = (slug: PromoSlug, timeout = 0) => { + if (this.isActive(slug)) { + if (timeout) { + setTimeout(() => { + this.clearActive(); + }, timeout); + } else { + this.clearActive(); + } + } + }; }