import { Component, OnInit, OnDestroy } from '@angular/core'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { Store } from '@ngrx/store'; import { faExchangeAlt, faChartPie } from '@fortawesome/free-solid-svg-icons'; import { SelNodeChild } from '../../shared/models/RTLconfig'; import * as RTLActions from '../../store/rtl.actions'; import * as fromRTLReducer from '../../store/rtl.reducers'; import { CLOnChainSendComponent } from './on-chain-send-modal/on-chain-send.component'; @Component({ selector: 'rtl-cl-on-chain', templateUrl: './on-chain.component.html', styleUrls: ['./on-chain.component.scss'] }) export class CLOnChainComponent implements OnInit, OnDestroy { public selNode: SelNodeChild = {}; public faExchangeAlt = faExchangeAlt; public faChartPie = faChartPie; public balances = [{title: 'Total Balance', dataValue: 0}, {title: 'Confirmed', dataValue: 0}, {title: 'Unconfirmed', dataValue: 0}]; private unSubs: Array> = [new Subject(), new Subject(), new Subject(), new Subject()]; constructor(private store: Store) {} ngOnInit() { this.store.select('cl') .pipe(takeUntil(this.unSubs[1])) .subscribe((rtlStore) => { this.selNode = rtlStore.nodeSettings; this.balances = [{title: 'Total Balance', dataValue: rtlStore.balance.totalBalance || 0}, {title: 'Confirmed', dataValue: rtlStore.balance.confBalance}, {title: 'Unconfirmed', dataValue: rtlStore.balance.unconfBalance}]; }); } openSendFundsModal(sweepAll: boolean) { this.store.dispatch(new RTLActions.OpenAlert({ data: { sweepAll: sweepAll, component: CLOnChainSendComponent }})); } ngOnDestroy() { this.unSubs.forEach(completeSub => { completeSub.next(); completeSub.complete(); }); } }