From 967a2a446165e028aa3af84f6705dc954bad2ba2 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sun, 5 Jun 2022 23:40:36 +0400 Subject: [PATCH] Reload mempool visualization on reconnect fixes #1799 --- .../mempool-block-overview.component.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/components/mempool-block-overview/mempool-block-overview.component.ts b/frontend/src/app/components/mempool-block-overview/mempool-block-overview.component.ts index d017f92a9..cf8ccb987 100644 --- a/frontend/src/app/components/mempool-block-overview/mempool-block-overview.component.ts +++ b/frontend/src/app/components/mempool-block-overview/mempool-block-overview.component.ts @@ -1,8 +1,9 @@ import { Component, ElementRef, ViewChild, HostListener, Input, Output, EventEmitter, OnInit, OnDestroy, OnChanges, ChangeDetectionStrategy, NgZone, AfterViewInit } from '@angular/core'; import { StateService } from 'src/app/services/state.service'; -import { MempoolBlockWithTransactions, MempoolBlockDelta, TransactionStripped } from 'src/app/interfaces/websocket.interface'; -import { Subscription, BehaviorSubject } from 'rxjs'; +import { MempoolBlockDelta, TransactionStripped } from 'src/app/interfaces/websocket.interface'; +import { Subscription, BehaviorSubject, merge, of } from 'rxjs'; +import { switchMap, filter } from 'rxjs/operators'; import { WebsocketService } from 'src/app/services/websocket.service'; import { FastVertexArray } from './fast-vertex-array'; import BlockScene from './block-scene'; @@ -48,9 +49,14 @@ export class MempoolBlockOverviewComponent implements OnInit, OnDestroy, OnChang } ngOnInit(): void { - this.blockSub = this.stateService.mempoolBlockTransactions$.subscribe((transactionsStripped) => { - this.replaceBlock(transactionsStripped); - }); + this.blockSub = merge( + of(true), + this.stateService.connectionState$.pipe(filter((state) => state === 2)) + ) + .pipe(switchMap(() => this.stateService.mempoolBlockTransactions$)) + .subscribe((transactionsStripped) => { + this.replaceBlock(transactionsStripped); + }); this.deltaSub = this.stateService.mempoolBlockDelta$.subscribe((delta) => { this.updateBlock(delta); });