aboutsummaryrefslogtreecommitdiffstats
path: root/cds-ui/designer-client/src/app/common/core/stores/Store.ts
diff options
context:
space:
mode:
authorKAPIL SINGAL <ks220y@att.com>2019-12-09 14:29:57 +0000
committerGerrit Code Review <gerrit@onap.org>2019-12-09 14:29:57 +0000
commitdac9afbc6df66dfe3700b37f12b51bccebf74e83 (patch)
tree22cbfc84b5eeb7761d8ebcf8b3ecbd2c7bef3815 /cds-ui/designer-client/src/app/common/core/stores/Store.ts
parenta48981d05a85f45010ff4c8bf6e797037a9ea4fa (diff)
parent1b8623b4cf3e5ddf8eb3e9a6fd38cb3982eeb94f (diff)
Merge "rename ui project from client-franfurt to designer-client"
Diffstat (limited to 'cds-ui/designer-client/src/app/common/core/stores/Store.ts')
-rw-r--r--cds-ui/designer-client/src/app/common/core/stores/Store.ts22
1 files changed, 22 insertions, 0 deletions
diff --git a/cds-ui/designer-client/src/app/common/core/stores/Store.ts b/cds-ui/designer-client/src/app/common/core/stores/Store.ts
new file mode 100644
index 000000000..1d5b0afc1
--- /dev/null
+++ b/cds-ui/designer-client/src/app/common/core/stores/Store.ts
@@ -0,0 +1,22 @@
+import {Observable, BehaviorSubject} from 'rxjs';
+import { Injectable } from '@angular/core';
+
+export class Store<T> {
+ state$: Observable<T>;
+ private subject: BehaviorSubject<T>;
+
+ protected constructor(initialState: T) {
+ this.subject = new BehaviorSubject(initialState);
+ this.state$ = this.subject.asObservable();
+ }
+
+ get state(): T {
+ return this.subject.getValue();
+ }
+
+ protected setState(nextState: T): void {
+ console.log('setting state', this.subject);
+ this.subject.next(nextState);
+ }
+
+}