diff --git a/frontend/package.json b/frontend/package.json index 1439464d75..e7062c29a8 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -10,7 +10,8 @@ "watch": "ng build --watch --configuration development", "tests": "npx cypress open --config baseUrl=http://localhost:4200", "tests:headless": "npx cypress run --headless --config baseUrl=http://localhost:4200", - "docker": "npm run build:prod && docker buildx build --platform linux/amd64 -t openmina/frontend:latest . && docker push openmina/frontend:latest" + "docker": "npm run build:prod && docker buildx build --platform linux/amd64 -t openmina/frontend:latest . && docker push openmina/frontend:latest", + "start:bundle": "npx http-server dist/frontend -p 4200" }, "private": true, "dependencies": { diff --git a/frontend/src/app/app.service.ts b/frontend/src/app/app.service.ts index 700a0a3f69..407736efd1 100644 --- a/frontend/src/app/app.service.ts +++ b/frontend/src/app/app.service.ts @@ -46,16 +46,16 @@ export class AppService { } private getStatus(data: NodeDetailsResponse): AppNodeStatus { - if (data.transition_frontier.sync.phase === 'Bootstrap') { - return AppNodeStatus.BOOTSTRAP; + switch (data.transition_frontier.sync.phase) { + case 'Bootstrap': + return AppNodeStatus.BOOTSTRAP; + case 'Catchup': + return AppNodeStatus.CATCHUP; + case 'Synced': + return AppNodeStatus.SYNCED; + default: + return AppNodeStatus.PENDING; } - if (data.transition_frontier.sync.phase === 'Catchup') { - return AppNodeStatus.CATCHUP; - } - if (data.transition_frontier.sync.phase === 'Synced') { - return AppNodeStatus.SYNCED; - } - return AppNodeStatus.PENDING; } } diff --git a/frontend/src/app/core/services/web-node.service.ts b/frontend/src/app/core/services/web-node.service.ts index ff310e16fc..f4a526f628 100644 --- a/frontend/src/app/core/services/web-node.service.ts +++ b/frontend/src/app/core/services/web-node.service.ts @@ -23,7 +23,7 @@ export class WebNodeService { } loadWasm$(): Observable { - console.log('---LOADING WASM'); + console.log('---LOADING WEBNODE---'); return merge( of(any(window).webnode).pipe(filter(Boolean)), fromEvent(window, 'webNodeLoaded'), @@ -35,7 +35,7 @@ export class WebNodeService { } startWasm$(): Observable { - console.log('---STARTING WASM'); + console.log('---STARTING WEBNODE---'); return of(any(window).webnode) .pipe( switchMap((wasm: any) => from(wasm.default('assets/webnode/pkg/openmina_node_web_bg.wasm')).pipe(map(() => wasm))), @@ -62,7 +62,6 @@ export class WebNodeService { return this.backendSubject$.asObservable().pipe( filter(Boolean), switchMap(handle => from((handle as any).status())), - log(), ); } @@ -102,13 +101,9 @@ export class WebNodeService { } get bestChainUserCommands$(): Observable { - console.log('---GETTING BEST CHAIN USER COMMANDS'); return this.backendSubject$.asObservable().pipe( filter(Boolean), switchMap(handle => from((handle as any).transition_frontier().best_chain().user_commands())), - tap((r) => { - console.log('response from GETTING BEST CHAIN USER COMMANDS', r); - }), ); } @@ -120,13 +115,9 @@ export class WebNodeService { } get transactionPool$(): Observable { - console.log('---GETTING TRANSACTION POOL'); return this.backendSubject$.asObservable().pipe( filter(Boolean), switchMap(handle => from((handle as any).transaction_pool().get())), - tap((r) => { - console.log('response from GETTING TRANSACTION POOL', r); - }), ); } } diff --git a/frontend/src/app/features/dashboard/dashboard-block-height/dashboard-block-height.component.html b/frontend/src/app/features/dashboard/dashboard-block-height/dashboard-block-height.component.html deleted file mode 100644 index 5280328859..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-block-height/dashboard-block-height.component.html +++ /dev/null @@ -1,17 +0,0 @@ -
- straighten - Block Height -
-
- - -
diff --git a/frontend/src/app/features/dashboard/dashboard-block-height/dashboard-block-height.component.scss b/frontend/src/app/features/dashboard/dashboard-block-height/dashboard-block-height.component.scss deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/frontend/src/app/features/dashboard/dashboard-block-height/dashboard-block-height.component.ts b/frontend/src/app/features/dashboard/dashboard-block-height/dashboard-block-height.component.ts deleted file mode 100644 index c65c25a1ba..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-block-height/dashboard-block-height.component.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { ChangeDetectionStrategy, Component } from '@angular/core'; - -@Component({ - selector: 'mina-dashboard-block-height', - templateUrl: './dashboard-block-height.component.html', - styleUrls: ['./dashboard-block-height.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class DashboardBlockHeightComponent { - -} diff --git a/frontend/src/app/features/dashboard/dashboard-blocks-sync/dashboard-blocks-sync.component.ts b/frontend/src/app/features/dashboard/dashboard-blocks-sync/dashboard-blocks-sync.component.ts index 5ef7aaf2cb..bd29e3cb04 100644 --- a/frontend/src/app/features/dashboard/dashboard-blocks-sync/dashboard-blocks-sync.component.ts +++ b/frontend/src/app/features/dashboard/dashboard-blocks-sync/dashboard-blocks-sync.component.ts @@ -35,10 +35,23 @@ export class DashboardBlocksSyncComponent extends StoreDispatcher implements OnI private listenToNodesChanges(): void { this.select(selectDashboardNodesAndPeers, ([nodes, peers]: [NodesOverviewNode[], DashboardPeer[]]) => { - this.extractNodesData(nodes); - this.extractPeersData(peers); + if (nodes.length === 0) { + this.fetched = undefined; + this.fetchedPercentage = '-'; + this.applied = undefined; + this.appliedPercentage = undefined; + this.root = undefined; + this.rootText = PENDING; + this.bestTipBlock = undefined; + this.bestTipBlockSyncedText = PENDING; + this.targetBlock = undefined; + this.syncProgress = undefined; + } else { + this.extractNodesData(nodes); + this.extractPeersData(peers); + } this.detect(); - }, filter(n => n[0].length > 0)); + }); } private extractPeersData(peers: DashboardPeer[]): void { diff --git a/frontend/src/app/features/dashboard/dashboard-ledger/dashboard-ledger.component.ts b/frontend/src/app/features/dashboard/dashboard-ledger/dashboard-ledger.component.ts index 9e405a67fc..bb4d2ea011 100644 --- a/frontend/src/app/features/dashboard/dashboard-ledger/dashboard-ledger.component.ts +++ b/frontend/src/app/features/dashboard/dashboard-ledger/dashboard-ledger.component.ts @@ -17,7 +17,7 @@ import { } from '@shared/types/nodes/dashboard/nodes-overview-ledger.type'; import { filter } from 'rxjs'; import { NodesOverviewNode } from '@shared/types/nodes/dashboard/nodes-overview-node.type'; -import { ONE_BILLION, ONE_MILLION, ONE_THOUSAND, SecDurationConfig } from '@openmina/shared'; +import { ONE_MILLION, SecDurationConfig } from '@openmina/shared'; import { Overlay, OverlayRef } from '@angular/cdk/overlay'; import { TemplatePortal } from '@angular/cdk/portal'; import { DashboardRpcStats } from '@shared/types/dashboard/dashboard-rpc-stats.type'; @@ -67,8 +67,6 @@ const initialStaged: NodesOverviewRootStagedLedgerStep = { }) export class DashboardLedgerComponent extends StoreDispatcher implements OnInit, OnDestroy { - protected readonly NodesOverviewLedgerStepState = NodesOverviewLedgerStepState; - ledgers: NodesOverviewLedger = { stakingEpoch: initialSnarked, nextEpoch: initialSnarked, @@ -102,38 +100,59 @@ export class DashboardLedgerComponent extends StoreDispatcher implements OnInit, private listenToNodesChanges(): void { this.select(selectDashboardNodesAndRpcStats, ([nodes, rpcStats]: [NodesOverviewNode[], DashboardRpcStats]) => { - this.ledgers = nodes[0].ledgers; - - const getConfig = (state: NodesOverviewLedgerStepState): SecDurationConfig => - state === NodesOverviewLedgerStepState.LOADING ? this.undefinedConfig : this.emptyConfig; - - this.configMap = { - stakingEpoch: getConfig(this.ledgers.stakingEpoch.state), - nextEpoch: getConfig(this.ledgers.nextEpoch.state), - rootSnarked: getConfig(this.ledgers.rootSnarked.state), - rootStaged: getConfig(this.ledgers.rootStaged.state), - }; - this.setProgressTime(); - this.stakingProgress = rpcStats.stakingLedger?.fetched / rpcStats.stakingLedger?.estimation * 100 || 0; - this.nextProgress = rpcStats.nextLedger?.fetched / rpcStats.nextLedger?.estimation * 100 || 0; - this.rootSnarkedProgress = rpcStats.rootLedger?.fetched / rpcStats.rootLedger?.estimation * 100 || 0; - this.rootStagedProgress = this.ledgers.rootStaged.staged.fetchPartsEnd ? 50 : 0; - - if (this.ledgers.stakingEpoch.state === NodesOverviewLedgerStepState.SUCCESS) { - this.stakingProgress = 100; - } - if (this.ledgers.nextEpoch.state === NodesOverviewLedgerStepState.SUCCESS) { - this.nextProgress = 100; - } - if (this.ledgers.rootSnarked.state === NodesOverviewLedgerStepState.SUCCESS) { - this.rootSnarkedProgress = 100; + if (nodes.length === 0) { + this.ledgers = { + stakingEpoch: initialSnarked, + nextEpoch: initialSnarked, + rootSnarked: initialSnarked, + rootStaged: initialStaged, + }; + this.configMap = { + stakingEpoch: this.emptyConfig, + nextEpoch: this.emptyConfig, + rootSnarked: this.emptyConfig, + rootStaged: this.emptyConfig, + }; + this.progress = undefined; + this.stakingProgress = 0; + this.nextProgress = 0; + this.rootSnarkedProgress = 0; + this.rootStagedProgress = 0; + this.totalProgress = 0; + } else { + this.ledgers = nodes[0].ledgers; + + const getConfig = (state: NodesOverviewLedgerStepState): SecDurationConfig => + state === NodesOverviewLedgerStepState.LOADING ? this.undefinedConfig : this.emptyConfig; + + this.configMap = { + stakingEpoch: getConfig(this.ledgers.stakingEpoch.state), + nextEpoch: getConfig(this.ledgers.nextEpoch.state), + rootSnarked: getConfig(this.ledgers.rootSnarked.state), + rootStaged: getConfig(this.ledgers.rootStaged.state), + }; + this.setProgressTime(); + this.stakingProgress = rpcStats.stakingLedger?.fetched / rpcStats.stakingLedger?.estimation * 100 || 0; + this.nextProgress = rpcStats.nextLedger?.fetched / rpcStats.nextLedger?.estimation * 100 || 0; + this.rootSnarkedProgress = rpcStats.rootLedger?.fetched / rpcStats.rootLedger?.estimation * 100 || 0; + this.rootStagedProgress = this.ledgers.rootStaged.staged.fetchPartsEnd ? 50 : 0; + + if (this.ledgers.stakingEpoch.state === NodesOverviewLedgerStepState.SUCCESS) { + this.stakingProgress = 100; + } + if (this.ledgers.nextEpoch.state === NodesOverviewLedgerStepState.SUCCESS) { + this.nextProgress = 100; + } + if (this.ledgers.rootSnarked.state === NodesOverviewLedgerStepState.SUCCESS) { + this.rootSnarkedProgress = 100; + } + if (this.ledgers.rootStaged.state === NodesOverviewLedgerStepState.SUCCESS) { + this.rootStagedProgress = 100; + } + this.totalProgress = (this.stakingProgress + this.nextProgress + this.rootSnarkedProgress + this.rootStagedProgress) / 4; } - if (this.ledgers.rootStaged.state === NodesOverviewLedgerStepState.SUCCESS) { - this.rootStagedProgress = 100; - } - this.totalProgress = (this.stakingProgress + this.nextProgress + this.rootSnarkedProgress + this.rootStagedProgress) / 4; this.detect(); - }, filter(n => n[0].length > 0)); + }); } show(event: MouseEvent, start: number, end: number): void { diff --git a/frontend/src/app/features/dashboard/dashboard-network/dashboard-network.component.ts b/frontend/src/app/features/dashboard/dashboard-network/dashboard-network.component.ts index 662790b3fa..3c8b63e204 100644 --- a/frontend/src/app/features/dashboard/dashboard-network/dashboard-network.component.ts +++ b/frontend/src/app/features/dashboard/dashboard-network/dashboard-network.component.ts @@ -30,6 +30,4 @@ export class DashboardNetworkComponent extends StoreDispatcher implements OnInit this.detect(); }, skip(1)); } - - protected readonly NodesOverviewLedgerStepState = NodesOverviewLedgerStepState; } diff --git a/frontend/src/app/features/dashboard/dashboard-node/dashboard-node.component.html b/frontend/src/app/features/dashboard/dashboard-node/dashboard-node.component.html deleted file mode 100644 index ac9871723c..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-node/dashboard-node.component.html +++ /dev/null @@ -1,24 +0,0 @@ -
- margin - Node Status -
-
- -
-
- Reconstructing Mina Short History – 290 Blocks - info -
-
- -
- Applying Block 96 / 290 -
-
diff --git a/frontend/src/app/features/dashboard/dashboard-node/dashboard-node.component.scss b/frontend/src/app/features/dashboard/dashboard-node/dashboard-node.component.scss deleted file mode 100644 index bc69dad011..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-node/dashboard-node.component.scss +++ /dev/null @@ -1,14 +0,0 @@ -@import 'openmina'; - -.bg-surface { - height: 128px; - - .bar { - height: 32px; - border-left: 2px solid $base-container; - - &.done { - border-left: 2px solid $aware-primary; - } - } -} diff --git a/frontend/src/app/features/dashboard/dashboard-node/dashboard-node.component.ts b/frontend/src/app/features/dashboard/dashboard-node/dashboard-node.component.ts deleted file mode 100644 index eca415c3de..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-node/dashboard-node.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, HostListener, ViewChild } from '@angular/core'; -import { StoreDispatcher } from '@shared/base-classes/store-dispatcher.class'; - -@Component({ - selector: 'mina-dashboard-node', - templateUrl: './dashboard-node.component.html', - styleUrls: ['./dashboard-node.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class DashboardNodeComponent extends StoreDispatcher implements AfterViewInit { - - barWidth: number = 0; - - @ViewChild('barsWrapper') parent: ElementRef; - - @HostListener('window:resize') onResize(): void { - this.barWidth = this.parent.nativeElement.offsetWidth / 290; - } - - ngAfterViewInit(): void { - this.onResize(); - this.detect(); - } -} diff --git a/frontend/src/app/features/dashboard/dashboard-peers-minimal-table/dashboard-peers-minimal-table.component.ts b/frontend/src/app/features/dashboard/dashboard-peers-minimal-table/dashboard-peers-minimal-table.component.ts index 78704f454c..1b67a896bc 100644 --- a/frontend/src/app/features/dashboard/dashboard-peers-minimal-table/dashboard-peers-minimal-table.component.ts +++ b/frontend/src/app/features/dashboard/dashboard-peers-minimal-table/dashboard-peers-minimal-table.component.ts @@ -39,7 +39,7 @@ export class DashboardPeersMinimalTableComponent extends MinaTableRustWrapper { this.table.rows = peers; this.table.detect(); - }, filter(peers => peers.length > 0)); + }); } protected override onRowClick(row: DashboardPeer): void { diff --git a/frontend/src/app/features/dashboard/dashboard-peers-table/dashboard-peers-table.component.html b/frontend/src/app/features/dashboard/dashboard-peers-table/dashboard-peers-table.component.html deleted file mode 100644 index 5c6ca89977..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-peers-table/dashboard-peers-table.component.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - circle - {{ row.status }} - - {{ row.datetime }} - {{ row.address ?? '-' | truncateMid: 20: 0 }} - {{ row.globalSlot ?? '-' }} - {{ row.height ?? '-' }} - {{ row.bestTipDatetime }} - - - - diff --git a/frontend/src/app/features/dashboard/dashboard-peers-table/dashboard-peers-table.component.scss b/frontend/src/app/features/dashboard/dashboard-peers-table/dashboard-peers-table.component.scss deleted file mode 100644 index feea4c1932..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-peers-table/dashboard-peers-table.component.scss +++ /dev/null @@ -1,13 +0,0 @@ -@import 'openmina'; - -.mina-icon { - font-variation-settings: 'FILL' 1, 'wght' 400 !important; -} - -.Connected { - color: $success-primary; -} - -.Connecting { - color: $base-primary; -} diff --git a/frontend/src/app/features/dashboard/dashboard-peers-table/dashboard-peers-table.component.ts b/frontend/src/app/features/dashboard/dashboard-peers-table/dashboard-peers-table.component.ts deleted file mode 100644 index 42c4283b7f..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-peers-table/dashboard-peers-table.component.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { MinaTableRustWrapper } from '@shared/base-classes/mina-table-rust-wrapper.class'; -import { TableColumnList } from '@openmina/shared'; -import { DashboardPeer, DashboardPeerStatus } from '@shared/types/dashboard/dashboard.peer'; -import { filter } from 'rxjs'; -import { selectDashboardPeers, selectDashboardPeersSort } from '@dashboard/dashboard.state'; -import { DashboardPeersSort } from '@dashboard/dashboard.actions'; - -@Component({ - selector: 'mina-dashboard-peers-table', - templateUrl: './dashboard-peers-table.component.html', - styleUrls: ['./dashboard-peers-table.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - host: { class: 'flex-column h-100' }, -}) -export class DashboardPeersTableComponent extends MinaTableRustWrapper { - - protected readonly DashboardPeerStatus = DashboardPeerStatus; - protected readonly tableHeads: TableColumnList = [ - { name: 'peer ID', sort: 'peerId' }, - { name: 'status' }, - { name: 'datetime', sort: 'timestamp' }, - { name: 'address' }, - { name: 'global slot', sort: 'globalSlot' }, - { name: 'height' }, - { name: 'best tip datetime', sort: 'bestTipTimestamp' }, - { name: 'best tip', sort: 'bestTip' }, - ]; - - override async ngOnInit(): Promise { - await super.ngOnInit(); - this.listenToPeersChanges(); - } - - protected override setupTable(): void { - this.table.gridTemplateColumns = [140, 140, 165, 150, 110, 100, 165, 190]; - this.table.minWidth = 1160; - this.table.sortClz = DashboardPeersSort; - this.table.sortSelector = selectDashboardPeersSort; - this.table.trackByFn = (_: number, row: DashboardPeer) => row.peerId + row.status + row.bestTip + row.timestamp; - } - - private listenToPeersChanges(): void { - this.select(selectDashboardPeers, (peers: DashboardPeer[]) => { - this.table.rows = peers; - this.table.detect(); - }, filter(peers => peers.length > 0)); - } - - protected override onRowClick(row: DashboardPeer): void { - } -} diff --git a/frontend/src/app/features/dashboard/dashboard-peers/dashboard-peers.component.html b/frontend/src/app/features/dashboard/dashboard-peers/dashboard-peers.component.html deleted file mode 100644 index 56b1a99243..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-peers/dashboard-peers.component.html +++ /dev/null @@ -1,21 +0,0 @@ -
-language - Peer Discovery -
-
-
- - - -
-
- -
-
diff --git a/frontend/src/app/features/dashboard/dashboard-peers/dashboard-peers.component.scss b/frontend/src/app/features/dashboard/dashboard-peers/dashboard-peers.component.scss deleted file mode 100644 index 4659c0176b..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-peers/dashboard-peers.component.scss +++ /dev/null @@ -1,8 +0,0 @@ -.bg-surface { - border-top-right-radius: 8px; - border-top-left-radius: 8px; -} - -.table-zone { - height: calc(100% - 128px); -} diff --git a/frontend/src/app/features/dashboard/dashboard-peers/dashboard-peers.component.ts b/frontend/src/app/features/dashboard/dashboard-peers/dashboard-peers.component.ts deleted file mode 100644 index d68520e623..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-peers/dashboard-peers.component.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; -import { StoreDispatcher } from '@shared/base-classes/store-dispatcher.class'; -import { selectDashboardPeersStats } from '@dashboard/dashboard.state'; -import { DashboardPeersStats } from '@shared/types/dashboard/dashboard-peers-stats.type'; -import { skip } from 'rxjs'; - -@Component({ - selector: 'mina-dashboard-peers', - templateUrl: './dashboard-peers.component.html', - styleUrls: ['./dashboard-peers.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush, - host: { class: 'flex-column' }, -}) -export class DashboardPeersComponent extends StoreDispatcher implements OnInit { - - stats: DashboardPeersStats; - - ngOnInit(): void { - this.listenToPeersChanges(); - } - - private listenToPeersChanges(): void { - this.select(selectDashboardPeersStats, (stats: DashboardPeersStats) => { - this.stats = stats; - }, skip(1)); - } -} diff --git a/frontend/src/app/features/dashboard/dashboard-received/dashboard-received.component.html b/frontend/src/app/features/dashboard/dashboard-received/dashboard-received.component.html deleted file mode 100644 index 0cc08c8aca..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-received/dashboard-received.component.html +++ /dev/null @@ -1,17 +0,0 @@ -
- download - Received -
-
- - - -
diff --git a/frontend/src/app/features/dashboard/dashboard-received/dashboard-received.component.scss b/frontend/src/app/features/dashboard/dashboard-received/dashboard-received.component.scss deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/frontend/src/app/features/dashboard/dashboard-received/dashboard-received.component.ts b/frontend/src/app/features/dashboard/dashboard-received/dashboard-received.component.ts deleted file mode 100644 index 9bacf25158..0000000000 --- a/frontend/src/app/features/dashboard/dashboard-received/dashboard-received.component.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { ChangeDetectionStrategy, Component } from '@angular/core'; - -@Component({ - selector: 'mina-dashboard-received', - templateUrl: './dashboard-received.component.html', - styleUrls: ['./dashboard-received.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class DashboardReceivedComponent { - -} diff --git a/frontend/src/app/features/dashboard/dashboard-transition-frontier/dashboard-transition-frontier.component.ts b/frontend/src/app/features/dashboard/dashboard-transition-frontier/dashboard-transition-frontier.component.ts index e81c5b406d..7af4da1482 100644 --- a/frontend/src/app/features/dashboard/dashboard-transition-frontier/dashboard-transition-frontier.component.ts +++ b/frontend/src/app/features/dashboard/dashboard-transition-frontier/dashboard-transition-frontier.component.ts @@ -2,7 +2,6 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; import { StoreDispatcher } from '@shared/base-classes/store-dispatcher.class'; import { selectDashboardNodes } from '@dashboard/dashboard.state'; import { NodesOverviewNode, NodesOverviewNodeKindType } from '@shared/types/nodes/dashboard/nodes-overview-node.type'; -import { filter } from 'rxjs'; @Component({ selector: 'mina-dashboard-transition-frontier', @@ -21,8 +20,8 @@ export class DashboardTransitionFrontierComponent extends StoreDispatcher implem private listenToNodesChanges(): void { this.select(selectDashboardNodes, (nodes: NodesOverviewNode[]) => { - this.loading = nodes[0].kind !== NodesOverviewNodeKindType.SYNCED; + this.loading = !nodes.length || nodes[0].kind !== NodesOverviewNodeKindType.SYNCED; this.detect(); - }, filter(n => n.length > 0)); + }); } } diff --git a/frontend/src/app/features/dashboard/dashboard.component.html b/frontend/src/app/features/dashboard/dashboard.component.html index 70f248e5de..97e54aa457 100644 --- a/frontend/src/app/features/dashboard/dashboard.component.html +++ b/frontend/src/app/features/dashboard/dashboard.component.html @@ -1,11 +1,4 @@ - - - -
- - -
diff --git a/frontend/src/app/features/dashboard/dashboard.module.ts b/frontend/src/app/features/dashboard/dashboard.module.ts index 4eaa8de27d..e06adfdf47 100644 --- a/frontend/src/app/features/dashboard/dashboard.module.ts +++ b/frontend/src/app/features/dashboard/dashboard.module.ts @@ -1,13 +1,8 @@ import { NgModule } from '@angular/core'; import { DashboardRouting } from '@dashboard/dashboard.routing'; -import { DashboardPeersComponent } from '@dashboard/dashboard-peers/dashboard-peers.component'; -import { DashboardNodeComponent } from '@dashboard/dashboard-node/dashboard-node.component'; import { DashboardComponent } from '@dashboard/dashboard.component'; import { SharedModule } from '@shared/shared.module'; -import { DashboardPeersTableComponent } from '@dashboard/dashboard-peers-table/dashboard-peers-table.component'; -import { DashboardBlockHeightComponent } from '@dashboard/dashboard-block-height/dashboard-block-height.component'; -import { DashboardReceivedComponent } from '@dashboard/dashboard-received/dashboard-received.component'; import { EffectsModule } from '@ngrx/effects'; import { DashboardEffects } from '@dashboard/dashboard.effects'; import { LoadingSpinnerComponent } from '@shared/loading-spinner/loading-spinner.component'; @@ -26,11 +21,6 @@ import { @NgModule({ declarations: [ DashboardComponent, - DashboardPeersComponent, - DashboardNodeComponent, - DashboardPeersTableComponent, - DashboardBlockHeightComponent, - DashboardReceivedComponent, DashboardNetworkComponent, DashboardLedgerComponent, DashboardTransitionFrontierComponent, diff --git a/frontend/src/app/features/dashboard/dashboard.reducer.ts b/frontend/src/app/features/dashboard/dashboard.reducer.ts index b369ca0f07..7ee9016523 100644 --- a/frontend/src/app/features/dashboard/dashboard.reducer.ts +++ b/frontend/src/app/features/dashboard/dashboard.reducer.ts @@ -1,6 +1,6 @@ import { DashboardState } from '@dashboard/dashboard.state'; import { - DASHBOARD_CLOSE, + DASHBOARD_CLOSE, DASHBOARD_GET_DATA, DASHBOARD_GET_DATA_SUCCESS, DASHBOARD_PEERS_SORT, DashboardActions, @@ -38,6 +38,15 @@ const initialState: DashboardState = { export function dashboardReducer(state: DashboardState = initialState, action: DashboardActions): DashboardState { switch (action.type) { + case DASHBOARD_GET_DATA: { + if (action.payload?.force) { + return { + ...initialState, + peersSort: state.peersSort, + }; + } + return state; + } case DASHBOARD_PEERS_SORT: { return { ...state, diff --git a/frontend/src/assets/environments/webnode.js b/frontend/src/assets/environments/webnode.js index 91ba243879..649fa9740f 100644 --- a/frontend/src/assets/environments/webnode.js +++ b/frontend/src/assets/environments/webnode.js @@ -4,7 +4,6 @@ export default { features: { 'dashboard': [], 'block-production': ['won-slots'], - 'nodes': ['overview', 'live', 'bootstrap'], 'mempool': [], 'benchmarks': ['wallets'], }, diff --git a/frontend/src/index.html b/frontend/src/index.html index 2fa62e1940..4bb32fa14c 100644 --- a/frontend/src/index.html +++ b/frontend/src/index.html @@ -29,11 +29,17 @@