import { ActionReducer } from '@ngrx/store'; import { GeoInfoAction, GeoInfoActions } from './geo-info.actions'; export type InfoLevel = 'info'|'error'; export interface GeoInfoState { message: string; level?: InfoLevel; isVisible?: boolean; canRevert?: boolean; revertKeys?: Array; } export const geoInfoInitial: GeoInfoState = { message: '', level: 'info', isVisible: false, canRevert: false }; export const GEO_TARGETING_INFO_KEY = 'geoInfo'; export const geoInfoReducer: ActionReducer = (state = geoInfoInitial, action: GeoInfoAction) => { switch (action.type) { case GeoInfoActions.SHOW_INFO: return Object.assign({}, state, action.payload.info); case GeoInfoActions.HIDE_INFO: return Object.assign({}, state, geoInfoInitial); default: return state; } };