From 6f900cc45d7dd7f97430812b86b5c1d1693c8ae3 Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Wed, 29 Aug 2018 17:01:32 +0300 Subject: merge from ecomp a88f0072 - Modern UI Issue-ID: VID-378 Change-Id: Ibcb23dd27f550cf32ce2fe0239f0f496ae014ff6 Signed-off-by: Ittay Stern --- vid-webpack-master/src/app/shared/store/epics.ts | 11 +++++++ vid-webpack-master/src/app/shared/store/module.ts | 36 ++++++++++++++++++++++ .../src/app/shared/store/reducers.ts | 16 ++++++++++ 3 files changed, 63 insertions(+) create mode 100644 vid-webpack-master/src/app/shared/store/epics.ts create mode 100644 vid-webpack-master/src/app/shared/store/module.ts create mode 100644 vid-webpack-master/src/app/shared/store/reducers.ts (limited to 'vid-webpack-master/src/app/shared/store') 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, + private aaiService : AaiService, + devTools: DevToolsExtension, + rootEpics: RootEpics, + ) { + const epicMiddleware = createEpicMiddleware(); + const persistedState = sessionStorage.getItem('reduxState') ? + JSON.parse(sessionStorage.getItem('reduxState')) : {}; + + const configStore = createStore( + rootReducer, + 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 = combineReducers({ + global: globalReducer, + service: MainReducer +}); + +export default rootReducer; -- cgit 1.2.3-korg