summaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/shared/store/module.ts
blob: 5a81f36eca0588bbaf148000959b3741fca83eea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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);
  }
}