mempool/frontend/src/app/components/start/start.component.ts

54 lines
1.5 KiB
TypeScript
Raw Normal View History

2021-11-09 22:25:03 -03:00
import { Component, OnInit } from '@angular/core';
import { WebsocketService } from 'src/app/services/websocket.service';
import { StateService } from 'src/app/services/state.service';
import { specialBlocks } from 'src/app/app.constants';
2021-11-12 20:24:15 +04:00
import { takeLast } from 'rxjs/operators';
@Component({
selector: 'app-start',
templateUrl: './start.component.html',
styleUrls: ['./start.component.scss'],
})
2021-11-09 22:25:03 -03:00
export class StartComponent implements OnInit {
interval = 60;
colors = ['#5E35B1', '#ffffff'];
2021-11-12 20:24:15 +04:00
countdown = 0;
2021-11-09 22:25:03 -03:00
specialEvent = false;
eventName = '';
constructor(
private websocketService: WebsocketService,
private stateService: StateService,
) { }
ngOnInit() {
this.websocketService.want(['blocks', 'stats', 'mempool-blocks']);
this.stateService.blocks$
.subscribe((blocks: any) => {
2021-11-12 20:24:15 +04:00
if (this.stateService.network !== '') {
return;
}
this.countdown = 0;
2021-11-09 22:25:03 -03:00
const block = blocks[0];
2021-11-12 20:24:15 +04:00
for (const sb in specialBlocks) {
const height = parseInt(sb, 10);
const diff = height - block.height;
if (diff > 0 && diff <= 1008) {
this.countdown = diff;
this.eventName = specialBlocks[sb].labelEvent;
}
}
if (specialBlocks[block.height]) {
2021-11-09 22:25:03 -03:00
this.specialEvent = true;
2021-11-12 20:24:15 +04:00
this.eventName = specialBlocks[block.height].labelEventCompleted;
2021-11-09 22:25:03 -03:00
setTimeout(() => {
this.specialEvent = false;
}, 60 * 60 * 1000);
}
});
}
}