Disable accelerate button after submission

This commit is contained in:
Mononaut 2024-04-09 08:26:17 +00:00
parent 192fd09a00
commit e55b1740db
No known key found for this signature in database
GPG Key ID: A3F058E41374C04E
2 changed files with 9 additions and 2 deletions

View File

@ -26,7 +26,7 @@
</ng-container> </ng-container>
<ng-container *ngIf="estimate else loadingEstimate"> <ng-container *ngIf="estimate else loadingEstimate">
<div [class]="{estimateDisabled: error}"> <div [class]="{estimateDisabled: error || processing || showSuccess }">
<div *ngIf="user && !estimate.hasAccess"> <div *ngIf="user && !estimate.hasAccess">
<div class="alert alert-mempool">You are currently on the waitlist</div> <div class="alert alert-mempool">You are currently on the waitlist</div>
@ -286,7 +286,7 @@
</div> </div>
</div> </div>
@if (!hideCashApp && paymentType === 'cashapp') { @if (!hideCashApp && !(error || processing || showSuccess) && paymentType === 'cashapp') {
<div #cashappCTA class="cashapp-placeholder {{ stickyCTA }}"></div> <div #cashappCTA class="cashapp-placeholder {{ stickyCTA }}"></div>
<div class="d-flex justify-content-center align-items-center cashapp-cta {{ stickyCTA }}" (click)="submitCashappPay()"> <div class="d-flex justify-content-center align-items-center cashapp-cta {{ stickyCTA }}" (click)="submitCashappPay()">
<div [style]="showSpinner ? 'opacity: 0' : 'opacity: 1'" class="p-2">Accelerate for <app-fiat [value]="maxCost" [colorClass]="estimate.userBalance < maxCost ? 'red-color' : 'green-color'"></app-fiat> with</div> <div [style]="showSpinner ? 'opacity: 0' : 'opacity: 1'" class="p-2">Accelerate for <app-fiat [value]="maxCost" [colorClass]="estimate.userBalance < maxCost ? 'red-color' : 'green-color'"></app-fiat> with</div>

View File

@ -48,6 +48,7 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
math = Math; math = Math;
error = ''; error = '';
processing = false;
showSuccess = false; showSuccess = false;
estimateSubscription: Subscription; estimateSubscription: Subscription;
accelerationSubscription: Subscription; accelerationSubscription: Subscription;
@ -245,18 +246,21 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
if (this.accelerationSubscription) { if (this.accelerationSubscription) {
this.accelerationSubscription.unsubscribe(); this.accelerationSubscription.unsubscribe();
} }
this.processing = true;
this.accelerationSubscription = this.servicesApiService.accelerate$( this.accelerationSubscription = this.servicesApiService.accelerate$(
this.tx.txid, this.tx.txid,
this.userBid, this.userBid,
this.accelerationUUID this.accelerationUUID
).subscribe({ ).subscribe({
next: () => { next: () => {
this.processing = false;
this.audioService.playSound('ascend-chime-cartoon'); this.audioService.playSound('ascend-chime-cartoon');
this.showSuccess = true; this.showSuccess = true;
this.scrollToPreviewWithTimeout('successAlert', 'center'); this.scrollToPreviewWithTimeout('successAlert', 'center');
this.estimateSubscription.unsubscribe(); this.estimateSubscription.unsubscribe();
}, },
error: (response) => { error: (response) => {
this.processing = false;
if (response.status === 403 && response.error === 'not_available') { if (response.status === 403 && response.error === 'not_available') {
this.error = 'waitlisted'; this.error = 'waitlisted';
} else { } else {
@ -359,12 +363,14 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
that.accelerationUUID that.accelerationUUID
).subscribe({ ).subscribe({
next: () => { next: () => {
this.processing = false;
that.audioService.playSound('ascend-chime-cartoon'); that.audioService.playSound('ascend-chime-cartoon');
that.showSuccess = true; that.showSuccess = true;
that.scrollToPreviewWithTimeout('successAlert', 'center'); that.scrollToPreviewWithTimeout('successAlert', 'center');
that.estimateSubscription.unsubscribe(); that.estimateSubscription.unsubscribe();
}, },
error: (response) => { error: (response) => {
this.processing = false;
if (response.status === 403 && response.error === 'not_available') { if (response.status === 403 && response.error === 'not_available') {
that.error = 'waitlisted'; that.error = 'waitlisted';
} else { } else {
@ -401,6 +407,7 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
submitCashappPay(): void { submitCashappPay(): void {
if (this.cashappSubmit) { if (this.cashappSubmit) {
this.cashappSubmit?.begin(); this.cashappSubmit?.begin();
this.processing = true;
} }
} }