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