Merge pull request #4943 from mempool/nymkappa/fix-missing-qr-code
[accelerator] fix missing qr code
This commit is contained in:
commit
affeb0a169
@ -14,6 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@if (!processingPayment) {
|
||||||
<div class="accelerate-cols">
|
<div class="accelerate-cols">
|
||||||
<ng-container *ngIf="!isMobile">
|
<ng-container *ngIf="!isMobile">
|
||||||
<app-accelerate-fee-graph
|
<app-accelerate-fee-graph
|
||||||
@ -26,7 +27,7 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container *ngIf="estimate else loadingEstimate">
|
<ng-container *ngIf="estimate else loadingEstimate">
|
||||||
<div [class]="{estimateDisabled: error || processing || showSuccess }">
|
<div [class]="{estimateDisabled: error}">
|
||||||
|
|
||||||
<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 +287,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if (!hideCashApp && !(error || processing || showSuccess) && paymentType === 'cashapp') {
|
@if (!hideCashApp && 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>
|
||||||
@ -306,5 +307,9 @@
|
|||||||
<div class="skeleton-loader"></div>
|
<div class="skeleton-loader"></div>
|
||||||
<br>
|
<br>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
}
|
||||||
|
@else if (!showSuccess && !error) {
|
||||||
|
<div class="alert alert-info">Processing payment...</div>
|
||||||
|
}
|
||||||
|
|
||||||
<ng-template #acceleratedTo let-i i18n="accelerator.accelerated-to-description">If your tx is accelerated to ~{{ i | number : '1.0-0' }} sat/vB</ng-template>
|
<ng-template #acceleratedTo let-i i18n="accelerator.accelerated-to-description">If your tx is accelerated to ~{{ i | number : '1.0-0' }} sat/vB</ng-template>
|
@ -48,7 +48,6 @@ 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;
|
||||||
@ -78,6 +77,7 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
|
|||||||
square: any;
|
square: any;
|
||||||
cashAppPay: any;
|
cashAppPay: any;
|
||||||
hideCashApp = false;
|
hideCashApp = false;
|
||||||
|
processingPayment = false;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
public stateService: StateService,
|
public stateService: StateService,
|
||||||
@ -86,6 +86,12 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
|
|||||||
private audioService: AudioService,
|
private audioService: AudioService,
|
||||||
private cd: ChangeDetectorRef
|
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/') {
|
if (this.stateService.ref === 'https://cash.app/') {
|
||||||
this.paymentType = 'cashapp';
|
this.paymentType = 'cashapp';
|
||||||
this.insertSquare();
|
this.insertSquare();
|
||||||
@ -246,21 +252,18 @@ 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 {
|
||||||
@ -326,6 +329,7 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
|
|||||||
this.cashAppPay.destroy();
|
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 maxCostUsd = this.maxCost / 100_000_000 * conversions.USD;
|
||||||
const paymentRequest = this.payments.paymentRequest({
|
const paymentRequest = this.payments.paymentRequest({
|
||||||
countryCode: 'US',
|
countryCode: 'US',
|
||||||
@ -334,12 +338,12 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
|
|||||||
amount: maxCostUsd.toString(),
|
amount: maxCostUsd.toString(),
|
||||||
label: 'Total',
|
label: 'Total',
|
||||||
pending: true,
|
pending: true,
|
||||||
productUrl: `https://mempool.space/tx/${this.tx.txid}`,
|
productUrl: `${redirectHostname}/tx/${this.tx.txid}`,
|
||||||
},
|
},
|
||||||
button: { shape: 'semiround', size: 'small', theme: 'light'}
|
button: { shape: 'semiround', size: 'small', theme: 'light'}
|
||||||
});
|
});
|
||||||
this.cashAppPay = await this.payments.cashAppPay(paymentRequest, {
|
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)}`,
|
referenceId: `accelerator-${this.tx.txid.substring(0, 15)}-${Math.round(new Date().getTime() / 1000)}`,
|
||||||
button: { shape: 'semiround', size: 'small', theme: 'light'}
|
button: { shape: 'semiround', size: 'small', theme: 'light'}
|
||||||
});
|
});
|
||||||
@ -348,6 +352,8 @@ export class AcceleratePreviewComponent implements OnInit, OnDestroy, OnChanges
|
|||||||
|
|
||||||
const that = this;
|
const that = this;
|
||||||
this.cashAppPay.addEventListener('ontokenization', function (event) {
|
this.cashAppPay.addEventListener('ontokenization', function (event) {
|
||||||
|
that.processingPayment = true;
|
||||||
|
that.scrollToPreviewWithTimeout('successAlert', 'center');
|
||||||
const { tokenResult, error } = event.detail;
|
const { tokenResult, error } = event.detail;
|
||||||
if (error) {
|
if (error) {
|
||||||
this.error = error;
|
this.error = error;
|
||||||
@ -363,14 +369,11 @@ 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.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 {
|
||||||
@ -407,7 +410,6 @@ 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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user