diff --git a/src/app/shared/state/index.ts b/src/app/shared/state/index.ts index 0ccf4b6..c55f606 100644 --- a/src/app/shared/state/index.ts +++ b/src/app/shared/state/index.ts @@ -1,6 +1,7 @@ import { ActionReducerMap, createSelector, MetaReducer } from "@ngrx/store"; import * as fromAuth from "./auth.reducer"; import * as fromBooks from "./books.reducer"; +import { logoutMetareducer } from "./logout.metareducer"; export interface State { auth: fromAuth.State; @@ -12,7 +13,7 @@ export const reducers: ActionReducerMap = { books: fromBooks.reducer }; -export const metaReducers: MetaReducer[] = []; +export const metaReducers: MetaReducer[] = [logoutMetareducer]; /** * Auth Selectors diff --git a/src/app/shared/state/logout.metareducer.ts b/src/app/shared/state/logout.metareducer.ts index 0937ce1..b7f5370 100644 --- a/src/app/shared/state/logout.metareducer.ts +++ b/src/app/shared/state/logout.metareducer.ts @@ -1,2 +1,12 @@ import { ActionReducer, Action } from "@ngrx/store"; import { AuthUserActions } from "src/app/auth/actions"; + +export function logoutMetareducer(reducer: ActionReducer) { + return function(state: any, action: Action) { + if (action.type === AuthUserActions.logout.type) { + return reducer(undefined, action); + } + + return reducer(state, action); + }; +}