merge from ecomp a88f0072 - Modern UI
[vid.git] / vid-webpack-master / src / app / shared / store / module.ts
1 import {NgModule} from '@angular/core';
2 import {NgReduxModule, NgRedux, DevToolsExtension} from '@angular-redux/store';
3 import {RootEpics} from './epics';
4
5 import rootReducer, {AppState} from "./reducers";
6 import {AAIEpics} from "../services/aaiService/aai.epics";
7 import {createEpicMiddleware} from "redux-observable";
8 import {AaiService} from "../services/aaiService/aai.service";
9 import {applyMiddleware, createStore} from "redux";
10
11 @NgModule({
12   imports: [NgReduxModule],
13   providers: [RootEpics, AAIEpics],
14 })
15
16 export class StoreModule {
17   constructor(
18     public store: NgRedux<AppState>,
19     private aaiService : AaiService,
20     devTools: DevToolsExtension,
21     rootEpics: RootEpics,
22   ) {
23     const epicMiddleware = createEpicMiddleware();
24     const persistedState = sessionStorage.getItem('reduxState') ?
25       JSON.parse(sessionStorage.getItem('reduxState')) : {};
26
27     const configStore = createStore(
28       rootReducer,
29       <any>persistedState,
30       applyMiddleware(epicMiddleware)
31     );
32
33     epicMiddleware.run(rootEpics.createEpics());
34     store.provideStore(configStore);
35   }
36 }