Skip to content

Commit 96d4664

Browse files
committed
added router store to app
1 parent 792b63e commit 96d4664

File tree

2 files changed

+42
-3
lines changed

2 files changed

+42
-3
lines changed

src/app/app.module.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import { EntityDataModule } from '@ngrx/data';
2323
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
2424
import { AuthGuard } from './guards/auth.guard';
2525
import { entityConfig } from './entity-metadata';
26+
import { metaReducers, reducers } from './store/reducers/app.reducer';
2627

2728

2829
const routes: Routes = [
@@ -55,11 +56,23 @@ const routes: Routes = [
5556
MatListModule,
5657
MatToolbarModule,
5758
AuthModule.forRoot(),
58-
StoreModule.forRoot({}, {}),
59-
StoreDevtoolsModule.instrument({ maxAge: 25, logOnly: environment.production }),
59+
StoreModule.forRoot(reducers, {
60+
metaReducers,
61+
runtimeChecks: {
62+
strictStateImmutability: true,
63+
strictActionImmutability: true,
64+
strictActionSerializability: true,
65+
strictStateSerializability: true,
66+
strictActionTypeUniqueness: true,
67+
}
68+
}),
69+
StoreDevtoolsModule.instrument({ maxAge: 25, logOnly: environment.production, }),
6070
EffectsModule.forRoot([]),
6171
EntityDataModule.forRoot(entityConfig),
62-
StoreRouterConnectingModule.forRoot()
72+
StoreRouterConnectingModule.forRoot({
73+
stateKey: 'router',
74+
routerState: RouterState.Minimal,
75+
})
6376
],
6477
bootstrap: [AppComponent]
6578
})

src/app/store/reducers/app.reducer.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { routerReducer } from '@ngrx/router-store';
2+
import { Action, ActionReducer, ActionReducerMap, createReducer, MetaReducer, on } from '@ngrx/store';
3+
import { environment } from '../../../environments/environment';
4+
5+
6+
export interface AppState {
7+
8+
}
9+
10+
export const reducers: ActionReducerMap<AppState> = {
11+
router: routerReducer
12+
}
13+
14+
export function logger(reducer: ActionReducer<any>): ActionReducer<any> {
15+
return (state, action) => {
16+
console.log('action: ', action);
17+
console.log('before: ', state);
18+
const newState = reducer(state, action);
19+
console.log('after: ', newState);
20+
return newState;
21+
};
22+
}
23+
24+
25+
export const metaReducers: MetaReducer<AppState>[] =
26+
!environment.production ? [logger] : [];

0 commit comments

Comments
 (0)