903ff6def0dd783808bcc69d3f283b1263eb4ba1
[examples/angular-tour-of-heroes] / src / app / vorgang / vorgang.component.ts
1 import { Component, OnInit } from '@angular/core';
2 import { VorgangService } from '../vorgang.service';
3 import { Vorgang } from '../vorgang';
4 import { Store, select } from '@ngrx/store';
5 import { Observable } from 'rxjs';
6 import { tap, map } from 'rxjs/operators';
7 import { create } from '../actions/vorgang';
8 import { State } from '../reducers/vorgang';
9
10 @Component({
11   selector: 'app-vorgang',
12   templateUrl: './vorgang.component.html',
13   styleUrls: ['./vorgang.component.css']
14 })
15 export class VorgangComponent implements OnInit {
16
17   vorgang$: Observable<Vorgang[]>;
18
19   constructor(
20       private service: VorgangService,
21       private store: Store<{ vorgang: { vorgaenge: Vorgang[] }}>) {
22     this.vorgang$ = store.pipe(select('vorgang')).pipe(
23       tap((state) => console.log(`New state: ${JSON.stringify(state)}`)),
24       map((state: State) => {
25         if (state === undefined)
26           return [];
27         else
28           return state.vorgaenge
29       }));
30   }
31
32   ngOnInit(): void {
33   }
34
35   create(data: string) {
36     this
37       .service
38       .create({ vbId: 'peter', vorgangId: '1' , zustand: data })
39       .subscribe(result => this.store.dispatch(create( { vorgang: result })));
40   }
41 }