WIP: Extract interaction with store into service
authorKai Moritz <kai@juplo.de>
Sun, 5 Jul 2020 11:51:04 +0000 (13:51 +0200)
committerKai Moritz <kai@juplo.de>
Sun, 5 Jul 2020 11:51:04 +0000 (13:51 +0200)
src/app/vorgang.service.ts
src/app/vorgang/vorgang.component.ts

index b68958b..6d5cca4 100644 (file)
@@ -4,6 +4,7 @@ import { Observable, of, EMPTY } from 'rxjs';
 import { catchError, map, tap } from 'rxjs/operators';
 import { select, Store } from '@ngrx/store';
 import { Vorgang } from './vorgang';
+import { increment, decrement, reset } from './actions/vorgang';
 import { State } from './reducers/vorgang';
 
 
@@ -41,6 +42,18 @@ export class VorgangService {
     return this.gpsUrl + vbId + '/save';
   }
 
+  increment() {
+    this.store.dispatch(increment());
+  }
+
+  decrement() {
+    this.store.dispatch(decrement());
+  }
+
+  reset() {
+    this.store.dispatch(reset());
+  }
+
   Observable<number> observe() {
     return this.store.pipe(select('vorgang'), map(vorgang => vorgang.counter));
   }
index 587ebd4..e69251d 100644 (file)
@@ -1,9 +1,6 @@
 import { Component, OnInit } from '@angular/core';
 import { Observable } from 'rxjs';
-import { Store } from '@ngrx/store';
-import { increment, decrement, reset } from '../actions/vorgang';
 import { VorgangService } from '../vorgang.service';
-import { State } from '../reducers';
 
 @Component({
   selector: 'app-vorgang',
@@ -14,9 +11,7 @@ export class VorgangComponent implements OnInit {
 
   vorgang$: Observable<number>;
 
-  constructor(
-    private store: Store<{ vorgang: State }>,
-    private service: VorgangService) {
+  constructor(private service: VorgangService) {
     this.vorgang$ = service.observe();
   }
 
@@ -24,14 +19,14 @@ export class VorgangComponent implements OnInit {
   }
 
   increment() {
-    this.store.dispatch(increment());
+    this.service.increment();
   }
 
   decrement() {
-    this.store.dispatch(decrement());
+    this.service.decrement();
   }
 
   reset() {
-    this.store.dispatch(reset());
+    this.service.reset();
   }
 }