-
-
-
-
-
+
@@ -41,9 +40,21 @@
-
-
-
+
+ Incoming Transactions
+
+
+
+
-
-
-
@@ -284,19 +286,3 @@
-
-
- Incoming Transactions
-
-
- Backend is synchronizing ({{ mempoolLoadingStatus$ | async }}%)
-
-
-
-
-
{{ mempoolInfoData.value.vBytesPerSecond | ceil | number }} vB/s
-
{{ mempoolInfoData.value.vBytesPerSecond * 4 | ceil | number }} WU/s
-
-
-
-
diff --git a/frontend/src/app/dashboard/dashboard.component.scss b/frontend/src/app/dashboard/dashboard.component.scss
index 2b319c425..d74d82054 100644
--- a/frontend/src/app/dashboard/dashboard.component.scss
+++ b/frontend/src/app/dashboard/dashboard.component.scss
@@ -44,8 +44,11 @@
.graph-card {
height: 100%;
+ @media (min-width: 768px) {
+ height: 415px;
+ }
@media (min-width: 992px) {
- height: 385px;
+ height: 500px;
}
}
@@ -258,6 +261,12 @@
.mempool-graph {
height: 255px;
+ @media (min-width: 768px) {
+ height: 285px;
+ }
+ @media (min-width: 992px) {
+ height: 370px;
+ }
}
.loadingGraphs{
height: 250px;
@@ -364,3 +373,18 @@
text-decoration: none;
color: inherit;
}
+
+.mempool-block-wrapper {
+ max-height: 430px;
+ max-width: 430px;
+ margin: auto;
+
+ @media (min-width: 768px) {
+ max-height: 344px;
+ max-width: 344px;
+ }
+ @media (min-width: 992px) {
+ max-height: 430px;
+ max-width: 430px;
+ }
+}
\ No newline at end of file
diff --git a/frontend/src/app/dashboard/dashboard.component.ts b/frontend/src/app/dashboard/dashboard.component.ts
index 6e65f2332..505fecc14 100644
--- a/frontend/src/app/dashboard/dashboard.component.ts
+++ b/frontend/src/app/dashboard/dashboard.component.ts
@@ -1,4 +1,4 @@
-import { AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';
+import { AfterViewInit, ChangeDetectionStrategy, Component, HostListener, OnDestroy, OnInit } from '@angular/core';
import { combineLatest, EMPTY, merge, Observable, of, Subject, Subscription, timer } from 'rxjs';
import { catchError, delayWhen, filter, map, scan, share, shareReplay, startWith, switchMap, takeUntil, tap, throttleTime } from 'rxjs/operators';
import { AuditStatus, BlockExtended, CurrentPegs, OptimizedMempoolStats } from '../interfaces/node-api.interface';
@@ -54,8 +54,10 @@ export class DashboardComponent implements OnInit, OnDestroy, AfterViewInit {
currentReserves$: Observable
;
fullHistory$: Observable;
isLoad: boolean = true;
+ mempoolInfoSubscription: Subscription;
currencySubscription: Subscription;
currency: string;
+ incomingGraphHeight: number = 300;
private lastPegBlockUpdate: number = 0;
private lastPegAmount: string = '';
private lastReservesBlockUpdate: number = 0;
@@ -74,6 +76,7 @@ export class DashboardComponent implements OnInit, OnDestroy, AfterViewInit {
}
ngOnDestroy(): void {
+ this.mempoolInfoSubscription.unsubscribe();
this.currencySubscription.unsubscribe();
this.websocketService.stopTrackRbfSummary();
this.destroy$.next(1);
@@ -81,6 +84,7 @@ export class DashboardComponent implements OnInit, OnDestroy, AfterViewInit {
}
ngOnInit(): void {
+ this.onResize();
this.isLoadingWebSocket$ = this.stateService.isLoadingWebSocket$;
this.seoService.resetTitle();
this.seoService.resetDescription();
@@ -95,36 +99,37 @@ export class DashboardComponent implements OnInit, OnDestroy, AfterViewInit {
this.mempoolInfoData$ = combineLatest([
this.stateService.mempoolInfo$,
this.stateService.vbytesPerSecond$
- ])
- .pipe(
- map(([mempoolInfo, vbytesPerSecond]) => {
- const percent = Math.round((Math.min(vbytesPerSecond, this.vBytesPerSecondLimit) / this.vBytesPerSecondLimit) * 100);
+ ]).pipe(
+ map(([mempoolInfo, vbytesPerSecond]) => {
+ const percent = Math.round((Math.min(vbytesPerSecond, this.vBytesPerSecondLimit) / this.vBytesPerSecondLimit) * 100);
- let progressColor = 'bg-success';
- if (vbytesPerSecond > 1667) {
- progressColor = 'bg-warning';
- }
- if (vbytesPerSecond > 3000) {
- progressColor = 'bg-danger';
- }
+ let progressColor = 'bg-success';
+ if (vbytesPerSecond > 1667) {
+ progressColor = 'bg-warning';
+ }
+ if (vbytesPerSecond > 3000) {
+ progressColor = 'bg-danger';
+ }
- const mempoolSizePercentage = (mempoolInfo.usage / mempoolInfo.maxmempool * 100);
- let mempoolSizeProgress = 'bg-danger';
- if (mempoolSizePercentage <= 50) {
- mempoolSizeProgress = 'bg-success';
- } else if (mempoolSizePercentage <= 75) {
- mempoolSizeProgress = 'bg-warning';
- }
+ const mempoolSizePercentage = (mempoolInfo.usage / mempoolInfo.maxmempool * 100);
+ let mempoolSizeProgress = 'bg-danger';
+ if (mempoolSizePercentage <= 50) {
+ mempoolSizeProgress = 'bg-success';
+ } else if (mempoolSizePercentage <= 75) {
+ mempoolSizeProgress = 'bg-warning';
+ }
- return {
- memPoolInfo: mempoolInfo,
- vBytesPerSecond: vbytesPerSecond,
- progressWidth: percent + '%',
- progressColor: progressColor,
- mempoolSizeProgress: mempoolSizeProgress,
- };
- })
- );
+ return {
+ memPoolInfo: mempoolInfo,
+ vBytesPerSecond: vbytesPerSecond,
+ progressWidth: percent + '%',
+ progressColor: progressColor,
+ mempoolSizeProgress: mempoolSizeProgress,
+ };
+ })
+ );
+
+ this.mempoolInfoSubscription = this.mempoolInfoData$.subscribe();
this.mempoolBlocksData$ = this.stateService.mempoolBlocks$
.pipe(
@@ -347,4 +352,15 @@ export class DashboardComponent implements OnInit, OnDestroy, AfterViewInit {
trackByBlock(index: number, block: BlockExtended) {
return block.height;
}
+
+ @HostListener('window:resize', ['$event'])
+ onResize(): void {
+ if (window.innerWidth >= 992) {
+ this.incomingGraphHeight = 300;
+ } else if (window.innerWidth >= 768) {
+ this.incomingGraphHeight = 215;
+ } else {
+ this.incomingGraphHeight = 180;
+ }
+ }
}