- @if (!hideCashApp && !(error || processing || showSuccess) && paymentType === 'cashapp') {
+ @if (!hideCashApp && paymentType === 'cashapp') {
@@ -306,5 +307,9 @@
+}
+@else if (!showSuccess && !error) {
+
Processing payment...
+}
If your tx is accelerated to ~{{ i | number : '1.0-0' }} sat/vB
\ No newline at end of file
diff --git a/frontend/src/app/components/accelerate-preview/accelerate-preview.component.ts b/frontend/src/app/components/accelerate-preview/accelerate-preview.component.ts
index e35f469eb..ca4e61c06 100644
--- a/frontend/src/app/components/accelerate-preview/accelerate-preview.component.ts
+++ b/frontend/src/app/components/accelerate-preview/accelerate-preview.component.ts
@@ -48,7 +48,6 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
math = Math;
error = '';
- processing = false;
showSuccess = false;
estimateSubscription: Subscription;
accelerationSubscription: Subscription;
@@ -78,6 +77,7 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
square: any;
cashAppPay: any;
hideCashApp = false;
+ processingPayment = false;
constructor(
public stateService: StateService,
@@ -86,6 +86,12 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
private audioService: AudioService,
private cd: ChangeDetectorRef
) {
+ const urlParams = new URLSearchParams(window.location.search);
+ if (urlParams.get('cash_request_id')) {
+ this.processingPayment = true;
+ this.scrollToPreviewWithTimeout('successAlert', 'center');
+ }
+
if (this.stateService.ref === 'https://cash.app/') {
this.paymentType = 'cashapp';
this.insertSquare();
@@ -246,21 +252,18 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
if (this.accelerationSubscription) {
this.accelerationSubscription.unsubscribe();
}
- this.processing = true;
this.accelerationSubscription = this.servicesApiService.accelerate$(
this.tx.txid,
this.userBid,
this.accelerationUUID
).subscribe({
next: () => {
- this.processing = false;
this.audioService.playSound('ascend-chime-cartoon');
this.showSuccess = true;
this.scrollToPreviewWithTimeout('successAlert', 'center');
this.estimateSubscription.unsubscribe();
},
error: (response) => {
- this.processing = false;
if (response.status === 403 && response.error === 'not_available') {
this.error = 'waitlisted';
} else {
@@ -326,6 +329,7 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
this.cashAppPay.destroy();
}
+ const redirectHostname = document.location.hostname === 'localhost' ? 'http://localhost:4200': 'https://mempool.space';
const maxCostUsd = this.maxCost / 100_000_000 * conversions.USD;
const paymentRequest = this.payments.paymentRequest({
countryCode: 'US',
@@ -334,12 +338,12 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
amount: maxCostUsd.toString(),
label: 'Total',
pending: true,
- productUrl: `https://mempool.space/tx/${this.tx.txid}`,
+ productUrl: `${redirectHostname}/tx/${this.tx.txid}`,
},
button: { shape: 'semiround', size: 'small', theme: 'light'}
});
this.cashAppPay = await this.payments.cashAppPay(paymentRequest, {
- redirectURL: `https://mempool.space/tx/${this.tx.txid}`,
+ redirectURL: `${redirectHostname}/tx/${this.tx.txid}?acceleration=false`,
referenceId: `accelerator-${this.tx.txid.substring(0, 15)}-${Math.round(new Date().getTime() / 1000)}`,
button: { shape: 'semiround', size: 'small', theme: 'light'}
});
@@ -348,6 +352,8 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
const that = this;
this.cashAppPay.addEventListener('ontokenization', function (event) {
+ that.processingPayment = true;
+ that.scrollToPreviewWithTimeout('successAlert', 'center');
const { tokenResult, error } = event.detail;
if (error) {
this.error = error;
@@ -363,14 +369,11 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
that.accelerationUUID
).subscribe({
next: () => {
- this.processing = false;
that.audioService.playSound('ascend-chime-cartoon');
that.showSuccess = true;
- that.scrollToPreviewWithTimeout('successAlert', 'center');
that.estimateSubscription.unsubscribe();
},
error: (response) => {
- this.processing = false;
if (response.status === 403 && response.error === 'not_available') {
that.error = 'waitlisted';
} else {
@@ -407,7 +410,6 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
submitCashappPay(): void {
if (this.cashappSubmit) {
this.cashappSubmit?.begin();
- this.processing = true;
}
}