summaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/shared/store
diff options
context:
space:
mode:
authorIttay Stern <ittay.stern@att.com>2018-08-29 17:01:32 +0300
committerIttay Stern <ittay.stern@att.com>2019-02-18 18:35:30 +0200
commit6f900cc45d7dd7f97430812b86b5c1d1693c8ae3 (patch)
tree936005c364dc5a7264d6304d4777c3d83494db22 /vid-webpack-master/src/app/shared/store
parent67d99f816cc583643c35193197594cf78d8ce60a (diff)
merge from ecomp a88f0072 - Modern UI
Issue-ID: VID-378 Change-Id: Ibcb23dd27f550cf32ce2fe0239f0f496ae014ff6 Signed-off-by: Ittay Stern <ittay.stern@att.com>
Diffstat (limited to 'vid-webpack-master/src/app/shared/store')
-rw-r--r--vid-webpack-master/src/app/shared/store/epics.ts11
-rw-r--r--vid-webpack-master/src/app/shared/store/module.ts36
-rw-r--r--vid-webpack-master/src/app/shared/store/reducers.ts16
3 files changed, 63 insertions, 0 deletions
diff --git a/vid-webpack-master/src/app/shared/store/epics.ts b/vid-webpack-master/src/app/shared/store/epics.ts
new file mode 100644
index 000000000..c7b190d19
--- /dev/null
+++ b/vid-webpack-master/src/app/shared/store/epics.ts
@@ -0,0 +1,11 @@
+import { Injectable } from '@angular/core';
+import {AAIEpics} from "../services/aaiService/aai.epics";
+
+@Injectable()
+export class RootEpics {
+ constructor(private aaiEpics: AAIEpics) {}
+
+ public createEpics() {
+ return this.aaiEpics.createEpic();
+ }
+}
diff --git a/vid-webpack-master/src/app/shared/store/module.ts b/vid-webpack-master/src/app/shared/store/module.ts
new file mode 100644
index 000000000..5a81f36ec
--- /dev/null
+++ b/vid-webpack-master/src/app/shared/store/module.ts
@@ -0,0 +1,36 @@
+import {NgModule} from '@angular/core';
+import {NgReduxModule, NgRedux, DevToolsExtension} from '@angular-redux/store';
+import {RootEpics} from './epics';
+
+import rootReducer, {AppState} from "./reducers";
+import {AAIEpics} from "../services/aaiService/aai.epics";
+import {createEpicMiddleware} from "redux-observable";
+import {AaiService} from "../services/aaiService/aai.service";
+import {applyMiddleware, createStore} from "redux";
+
+@NgModule({
+ imports: [NgReduxModule],
+ providers: [RootEpics, AAIEpics],
+})
+
+export class StoreModule {
+ constructor(
+ public store: NgRedux<AppState>,
+ private aaiService : AaiService,
+ devTools: DevToolsExtension,
+ rootEpics: RootEpics,
+ ) {
+ const epicMiddleware = createEpicMiddleware();
+ const persistedState = sessionStorage.getItem('reduxState') ?
+ JSON.parse(sessionStorage.getItem('reduxState')) : {};
+
+ const configStore = createStore(
+ rootReducer,
+ <any>persistedState,
+ applyMiddleware(epicMiddleware)
+ );
+
+ epicMiddleware.run(rootEpics.createEpics());
+ store.provideStore(configStore);
+ }
+}
diff --git a/vid-webpack-master/src/app/shared/store/reducers.ts b/vid-webpack-master/src/app/shared/store/reducers.ts
new file mode 100644
index 000000000..90cdd273f
--- /dev/null
+++ b/vid-webpack-master/src/app/shared/store/reducers.ts
@@ -0,0 +1,16 @@
+import {MainReducer, ServiceState} from "../storeUtil/utils/main.reducer";
+import {globalReducer, GlobalState} from "../storeUtil/utils/global/global.reducers";
+import {combineReducers, Reducer} from "redux";
+
+
+export interface AppState {
+ global: GlobalState;
+ service: ServiceState;
+}
+
+const rootReducer: Reducer<AppState> = combineReducers<AppState>({
+ global: globalReducer,
+ service: MainReducer
+});
+
+export default rootReducer;