From 9b427cded2186a1d7051894979df578d6d567acd Mon Sep 17 00:00:00 2001 From: kuncevic Date: Tue, 3 Nov 2020 15:05:10 +1100 Subject: [PATCH] add activity card service --- .../activity-card.component.html | 2 +- .../activity-card/activity-card.component.ts | 14 ++++++------- .../activity-card/activity-card.service.ts | 20 +++++++++++++++++++ 3 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 angular/src/app/activity-card/activity-card.service.ts diff --git a/angular/src/app/activity-card/activity-card.component.html b/angular/src/app/activity-card/activity-card.component.html index a40d5715..f0dc391f 100644 --- a/angular/src/app/activity-card/activity-card.component.html +++ b/angular/src/app/activity-card/activity-card.component.html @@ -1 +1 @@ -

{{ card.card }}

+

{{ value$ | async }}

diff --git a/angular/src/app/activity-card/activity-card.component.ts b/angular/src/app/activity-card/activity-card.component.ts index 78865277..6d4a210e 100644 --- a/angular/src/app/activity-card/activity-card.component.ts +++ b/angular/src/app/activity-card/activity-card.component.ts @@ -1,19 +1,19 @@ -import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core'; +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { Observable } from 'rxjs'; import { ApprovedForLiquidityPool } from '../prototype-v1/types'; +import { ActivityCardService } from './activity-card.service'; @Component({ selector: 'app-activity-card', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './activity-card.component.html', - styleUrls: ['./activity-card.component.scss'] + styleUrls: ['./activity-card.component.scss'], }) export class ActivityCardComponent implements OnInit { - - @Input() card: ApprovedForLiquidityPool; - - constructor() { } + value$: Observable; + constructor(private activityCard: ActivityCardService) {} ngOnInit(): void { + this.value$ = this.activityCard.state$; } - } diff --git a/angular/src/app/activity-card/activity-card.service.ts b/angular/src/app/activity-card/activity-card.service.ts new file mode 100644 index 00000000..30c17d72 --- /dev/null +++ b/angular/src/app/activity-card/activity-card.service.ts @@ -0,0 +1,20 @@ +import { Injectable } from '@angular/core'; +import { BehaviorSubject } from 'rxjs'; +import { ApprovedForLiquidityPool } from '../prototype-v1/types'; + +const initialState: ApprovedForLiquidityPool = null; + +@Injectable({ + providedIn: 'root', +}) +export class ActivityCardService { + private data$ = new BehaviorSubject(initialState); + state$ = this.data$.asObservable(); + + constructor() {} + + public setCard(value): void { + const currentData = this.data$.getValue(); + this.data$.next({ ...currentData, ...value }); + } +}