diff options
Diffstat (limited to 'sdnr/wt/odlux/apps/apiDemo/src/handlers')
-rw-r--r-- | sdnr/wt/odlux/apps/apiDemo/src/handlers/apiDemoRootHandler.ts | 23 | ||||
-rw-r--r-- | sdnr/wt/odlux/apps/apiDemo/src/handlers/modulesHandler.ts | 16 |
2 files changed, 39 insertions, 0 deletions
diff --git a/sdnr/wt/odlux/apps/apiDemo/src/handlers/apiDemoRootHandler.ts b/sdnr/wt/odlux/apps/apiDemo/src/handlers/apiDemoRootHandler.ts new file mode 100644 index 000000000..ec4187659 --- /dev/null +++ b/sdnr/wt/odlux/apps/apiDemo/src/handlers/apiDemoRootHandler.ts @@ -0,0 +1,23 @@ + +import { combineActionHandler } from '../../../../framework/src/flux/middleware'; + +import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore'; + +import { moduleHandler, IModules } from './modulesHandler'; + +export interface IApiDemoStoreState { + modules: IModules +} + +declare module '../../../../framework/src/store/applicationStore' { + interface IApplicationStoreState { + apiDemo: IApiDemoStoreState + } +} + +const actionHandlers = { + modules: moduleHandler +}; + +export const apiDemoRootHandler = combineActionHandler<IApiDemoStoreState>(actionHandlers); +export default apiDemoRootHandler; diff --git a/sdnr/wt/odlux/apps/apiDemo/src/handlers/modulesHandler.ts b/sdnr/wt/odlux/apps/apiDemo/src/handlers/modulesHandler.ts new file mode 100644 index 000000000..2b6c019cc --- /dev/null +++ b/sdnr/wt/odlux/apps/apiDemo/src/handlers/modulesHandler.ts @@ -0,0 +1,16 @@ +import { IActionHandler } from '../../../../framework/src/flux/action'; + +import { ModulesRequestSuccess } from '../actions/modulesSuccess'; +import { Module } from '../models/module'; + +export type IModules = Module[] + +const modulesInit: IModules = []; + +export const moduleHandler: IActionHandler<IModules> = (state = modulesInit, action) => { + if (action instanceof ModulesRequestSuccess) { + return action.result.modules.module; + } + + return state; +}; |