diff options
Diffstat (limited to 'sdnr/wt/odlux/apps/configurationApp/src/handlers')
-rw-r--r-- | sdnr/wt/odlux/apps/configurationApp/src/handlers/configurationAppRootHandler.ts | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/sdnr/wt/odlux/apps/configurationApp/src/handlers/configurationAppRootHandler.ts b/sdnr/wt/odlux/apps/configurationApp/src/handlers/configurationAppRootHandler.ts new file mode 100644 index 000000000..4b982149a --- /dev/null +++ b/sdnr/wt/odlux/apps/configurationApp/src/handlers/configurationAppRootHandler.ts @@ -0,0 +1,68 @@ +// main state handler + +import { combineActionHandler } from '../../../../framework/src/flux/middleware'; + +import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore'; +import { IActionHandler } from '../../../../framework/src/flux/action'; + +import { ViewSpecification } from '../models/uiModels'; +import { CoreModelNetworkElement } from '../models/coreModel'; +import { UpdateCoreModel, UpdateLoading, UpdateLp, UpdateViewData } from '../actions/configurationActions'; + +export interface IConfigurationAppStoreState { + loading: boolean; + nodeId?: string; + lpId?: string; + viewId?: string; + indexValues?: string; + capability?: string; + conditionalPackage?: string, + coreModel?: CoreModelNetworkElement; + viewSpecifications: ViewSpecification[]; + viewData: {}; +} + +declare module '../../../../framework/src/store/applicationStore' { + interface IApplicationStoreState { + configuration: IConfigurationAppStoreState + } +} + +const configurationAppStoreStateInit: IConfigurationAppStoreState = { + loading: false, + viewSpecifications: [], + viewData: {} +}; + +export const configurationAppRootHandler: IActionHandler<IConfigurationAppStoreState> = (state = configurationAppStoreStateInit, action) => { + if (action instanceof UpdateLoading) { + state = { + ...state, + loading: action.loading + }; + } else if (action instanceof UpdateCoreModel) { + state = { + ...state, + nodeId: action.nodeId, + coreModel: action.coreModel + }; + } else if (action instanceof UpdateLp) { + state = { + ...state, + lpId: action.lpId, + capability: action.capability, + conditionalPackage: action.conditionalPackage, + viewSpecifications: action.viewSpecifications + }; + } else if (action instanceof UpdateViewData) { + state = { + ...state, + viewData: action.viewData, + indexValues: action.indexValues, + viewId: action.viewId, + }; + } + return state; +}; + +export default configurationAppRootHandler; |