Latest block design updates.

This commit is contained in:
softsimon 2020-02-29 23:42:50 +07:00
parent 39394e1178
commit 943d96ee8c
7 changed files with 42 additions and 47 deletions

View File

@ -10,7 +10,6 @@ import { AppComponent } from './components/app/app.component';
import { StartComponent } from './components/start/start.component'; import { StartComponent } from './components/start/start.component';
import { ElectrsApiService } from './services/electrs-api.service'; import { ElectrsApiService } from './services/electrs-api.service';
import { TimeSincePipe } from './pipes/time-since/time-since.pipe';
import { BytesPipe } from './pipes/bytes-pipe/bytes.pipe'; import { BytesPipe } from './pipes/bytes-pipe/bytes.pipe';
import { VbytesPipe } from './pipes/bytes-pipe/vbytes.pipe'; import { VbytesPipe } from './pipes/bytes-pipe/vbytes.pipe';
import { WuBytesPipe } from './pipes/bytes-pipe/wubytes.pipe'; import { WuBytesPipe } from './pipes/bytes-pipe/wubytes.pipe';
@ -55,7 +54,6 @@ import { AudioService } from './services/audio.service';
TransactionComponent, TransactionComponent,
BlockComponent, BlockComponent,
TransactionsListComponent, TransactionsListComponent,
TimeSincePipe,
BytesPipe, BytesPipe,
VbytesPipe, VbytesPipe,
WuBytesPipe, WuBytesPipe,

View File

@ -1,8 +1,8 @@
<table class="table table-borderless"> <table class="table table-borderless">
<thead> <thead>
<th style="width: 120px;">Height</th> <th style="width: 210px;">Height</th>
<th class="d-none d-md-block" style="width: 300px;">Timestamp</th> <th class="d-none d-md-block" style="width: 210px;">Timestamp</th>
<th style="width: 200px;">Mined</th> <th style="width: 210px;">Mined</th>
<th style="width: 150px;">Transactions</th> <th style="width: 150px;">Transactions</th>
<th style="width: 175px;">Size</th> <th style="width: 175px;">Size</th>
<th class="d-none d-md-block">Filled</th> <th class="d-none d-md-block">Filled</th>
@ -16,7 +16,7 @@
<td>{{ block.size | bytes: 2 }}</td> <td>{{ block.size | bytes: 2 }}</td>
<td class="d-none d-md-block"> <td class="d-none d-md-block">
<div class="progress position-relative"> <div class="progress position-relative">
<div class="progress-bar bg-success" role="progressbar" [ngStyle]="{'width': (block.weight / 4000000)*100 + '%' }"></div> <div class="progress-bar progress-mempool" role="progressbar" [ngStyle]="{'width': (block.weight / 4000000)*100 + '%' }"></div>
</div> </div>
</td> </td>
</tr> </tr>

View File

@ -0,0 +1,3 @@
.progress-mempool {
background: repeating-linear-gradient(to right, #2d3348, #2d3348 0%, #105fb0 0%, #9339f4 100%);
}

View File

@ -37,7 +37,7 @@ export class LatestBlocksComponent implements OnInit, OnDestroy {
return; return;
} }
if (block.height === this.blocks[0].height) { if (block.height <= this.blocks[0].height) {
return; return;
} }

View File

@ -2,12 +2,12 @@ import { Component, OnInit, OnDestroy, ChangeDetectionStrategy, Input, ChangeDet
@Component({ @Component({
selector: 'app-time-since', selector: 'app-time-since',
template: `{{ time | timeSince : trigger }}`, template: `{{ text }}`,
changeDetection: ChangeDetectionStrategy.OnPush changeDetection: ChangeDetectionStrategy.OnPush
}) })
export class TimeSinceComponent implements OnInit, OnDestroy { export class TimeSinceComponent implements OnInit, OnDestroy {
interval: number; interval: number;
trigger = 0; text: string;
@Input() time: number; @Input() time: number;
@Input() fastRender = false; @Input() fastRender = false;
@ -17,8 +17,9 @@ export class TimeSinceComponent implements OnInit, OnDestroy {
) { } ) { }
ngOnInit() { ngOnInit() {
this.text = this.calculate();
this.interval = window.setInterval(() => { this.interval = window.setInterval(() => {
this.trigger++; this.text = this.calculate();
this.ref.markForCheck(); this.ref.markForCheck();
}, 1000 * (this.fastRender ? 1 : 60)); }, 1000 * (this.fastRender ? 1 : 60));
} }
@ -27,4 +28,33 @@ export class TimeSinceComponent implements OnInit, OnDestroy {
clearInterval(this.interval); clearInterval(this.interval);
} }
calculate() {
const seconds = Math.floor((+new Date() - +new Date(this.time * 1000)) / 1000);
if (seconds < 60) {
return '< 1 min';
}
const intervals = {
year: 31536000,
month: 2592000,
week: 604800,
day: 86400,
hour: 3600,
minute: 60,
second: 1
};
let counter;
for (const i in intervals) {
if (intervals.hasOwnProperty(i)) {
counter = Math.floor(seconds / intervals[i]);
if (counter > 0) {
if (counter === 1) {
return counter + ' ' + i; // singular (1 day ago)
} else {
return counter + ' ' + i + 's'; // plural (2 days ago)
}
}
}
}
}
} }

View File

@ -1,36 +0,0 @@
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'timeSince' })
export class TimeSincePipe implements PipeTransform {
transform(value: any, args?: any): any {
if (value) {
const seconds = Math.floor((+new Date() - +new Date(value * 1000)) / 1000);
if (seconds < 60) {
return '< 1 minute';
}
const intervals = {
year: 31536000,
month: 2592000,
week: 604800,
day: 86400,
hour: 3600,
minute: 60,
second: 1
};
let counter;
for (const i in intervals) {
if (intervals.hasOwnProperty(i)) {
counter = Math.floor(seconds / intervals[i]);
if (counter > 0) {
if (counter === 1) {
return counter + ' ' + i; // singular (1 day ago)
} else {
return counter + ' ' + i + 's'; // plural (2 days ago)
}
}
}
}
}
return value;
}
}

View File

@ -7,7 +7,7 @@ $gray-700: #fff;
$nav-tabs-link-active-bg: #11131f; $nav-tabs-link-active-bg: #11131f;
$primary: #2b89c7; $primary: #105fb0;
$secondary: #2d3348; $secondary: #2d3348;
$link-color: #1bd8f4; $link-color: #1bd8f4;