diff options
Diffstat (limited to 'sdnr/wt/odlux/framework/src/handlers/navigationStateHandler.ts')
-rw-r--r-- | sdnr/wt/odlux/framework/src/handlers/navigationStateHandler.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/sdnr/wt/odlux/framework/src/handlers/navigationStateHandler.ts b/sdnr/wt/odlux/framework/src/handlers/navigationStateHandler.ts new file mode 100644 index 000000000..d9036000a --- /dev/null +++ b/sdnr/wt/odlux/framework/src/handlers/navigationStateHandler.ts @@ -0,0 +1,28 @@ +import { IActionHandler } from '../flux/action'; +import { LocationChanged } from '../actions/navigationActions'; + + +export interface INavigationState { + pathname: string; + search: string; + hash: string; +} + +const navigationStateInit: INavigationState = { + pathname: '/', + search: '', + hash: '', +}; + + +export const navigationStateHandler: IActionHandler<INavigationState> = (state = navigationStateInit, action) => { + if (action instanceof LocationChanged) { + state = { + ...state, + pathname: action.pathname, + search: action.search, + hash: action.hash + } + } + return state; +}
\ No newline at end of file |