From 1f357408ac0600620b304791dc0ff079503ddfa4 Mon Sep 17 00:00:00 2001 From: softsimon Date: Mon, 22 Jul 2024 20:13:13 +0800 Subject: [PATCH] fix btc payment waiting reply --- .../bitcoin-invoice/bitcoin-invoice.component.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/components/bitcoin-invoice/bitcoin-invoice.component.ts b/frontend/src/app/components/bitcoin-invoice/bitcoin-invoice.component.ts index 79584b3d8..067061678 100644 --- a/frontend/src/app/components/bitcoin-invoice/bitcoin-invoice.component.ts +++ b/frontend/src/app/components/bitcoin-invoice/bitcoin-invoice.component.ts @@ -3,7 +3,7 @@ import { FormBuilder, FormGroup } from '@angular/forms'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; import { ActivatedRoute } from '@angular/router'; import { Subscription, of, timer } from 'rxjs'; -import { retry, switchMap, tap } from 'rxjs/operators'; +import { filter, repeat, retry, switchMap, take, tap } from 'rxjs/operators'; import { ServicesApiServices } from '../../services/services-api.service'; @Component({ @@ -73,11 +73,11 @@ export class BitcoinInvoiceComponent implements OnInit, OnChanges, OnDestroy { this.paymentStatus = 4; } this.paymentStatusSubscription = this.apiService.getPaymentStatus$(this.invoice.btcpayInvoiceId).pipe( - retry({ delay: () => timer(2000)}) - ).subscribe((response) => { - if (response.status === 204 || response.status === 404) { - return; - } + retry({ delay: () => timer(2000)}), + repeat({delay: 2000}), + filter((response) => response.status !== 204 && response.status !== 404), + take(1), + ).subscribe(() => { this.paymentStatus = 3; this.completed.emit(); });