diff --git a/frontend/src/app/components/accelerate-checkout/accelerate-checkout.component.html b/frontend/src/app/components/accelerate-checkout/accelerate-checkout.component.html index ed381d7c3..fba41f2c3 100644 --- a/frontend/src/app/components/accelerate-checkout/accelerate-checkout.component.html +++ b/frontend/src/app/components/accelerate-checkout/accelerate-checkout.component.html @@ -503,9 +503,12 @@
-
+
Confirming your acceleration with our mining pool partners... -
+ @if (timeSincePaid > 20000) { + ...sorry, this is taking longer than expected... + } +
diff --git a/frontend/src/app/components/accelerate-checkout/accelerate-checkout.component.ts b/frontend/src/app/components/accelerate-checkout/accelerate-checkout.component.ts index 4405fc06a..65d53a8c7 100644 --- a/frontend/src/app/components/accelerate-checkout/accelerate-checkout.component.ts +++ b/frontend/src/app/components/accelerate-checkout/accelerate-checkout.component.ts @@ -78,6 +78,7 @@ export class AccelerateCheckout implements OnInit, OnDestroy { private _step: CheckoutStep = 'summary'; simpleMode: boolean = true; paymentMethod: 'cashapp' | 'btcpay'; + timeoutTimer: any; authSubscription$: Subscription; auth: IAuth | null = null; @@ -188,6 +189,9 @@ export class AccelerateCheckout implements OnInit, OnDestroy { moveToStep(step: CheckoutStep) { this._step = step; + if (this.timeoutTimer) { + clearTimeout(this.timeoutTimer); + } if (!this.estimate && ['quote', 'summary', 'checkout'].includes(this.step)) { this.fetchEstimate(); } @@ -200,6 +204,13 @@ export class AccelerateCheckout implements OnInit, OnDestroy { this.loadingCashapp = true; this.insertSquare(); this.setupSquare(); + } else if (this._step === 'paid') { + this.timePaid = Date.now(); + this.timeoutTimer = setTimeout(() => { + if (this.step === 'paid') { + this.accelerateError = 'internal_server_error'; + } + }, 120000) } this.hasDetails.emit(this._step === 'quote'); } @@ -599,6 +610,10 @@ export class AccelerateCheckout implements OnInit, OnDestroy { return this.isLoggedIn() && this.estimate?.hasAccess; } + get timeSincePaid(): number { + return Date.now() - this.timePaid; + } + @HostListener('window:resize', ['$event']) onResize(): void { this.isMobile = window.innerWidth <= 767.98;