e4a19ae5c36cdf88a17d50cb15e34303e8de23e1
[ccsdk/features.git] / sdnr / wt / odlux / apps / faultApp / src / handlers / faultAppRootHandler.ts
1 /**
2  * ============LICENSE_START========================================================================
3  * ONAP : ccsdk feature sdnr wt odlux
4  * =================================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6  * =================================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software distributed under the License
13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14  * or implied. See the License for the specific language governing permissions and limitations under
15  * the License.
16  * ============LICENSE_END==========================================================================
17  */
18 // main state handler
19
20 import { IActionHandler } from '../../../../framework/src/flux/action';
21 import { combineActionHandler } from '../../../../framework/src/flux/middleware';
22 // ** do not remove **
23 // eslint-disable-next-line @typescript-eslint/no-unused-vars
24 import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore';
25
26 import { SetPanelAction } from '../actions/panelChangeActions';
27 import { PanelId } from '../models/panelId';
28 import { alarmLogEntriesActionHandler, IAlarmLogEntriesState } from './alarmLogEntriesHandler';
29 import { currentAlarmsActionHandler, ICurrentAlarmsState } from './currentAlarmsHandler';
30 import { faultStatusHandler, IFaultStatus } from './faultStatusHandler';
31 import { faultNotificationsHandler, IFaultNotifications } from './notificationsHandler';
32
33 export interface IFaultAppStoreState {
34   currentAlarms: ICurrentAlarmsState;
35   faultNotifications: IFaultNotifications;
36   alarmLogEntries: IAlarmLogEntriesState;
37   currentOpenPanel: PanelId | null;
38   faultStatus: IFaultStatus;
39 }
40
41 const currentOpenPanelHandler: IActionHandler<PanelId | null> = (state = null, action) => {
42   if (action instanceof SetPanelAction) {
43     state = action.panelId;
44   }
45   return state;
46 };
47
48 declare module '../../../../framework/src/store/applicationStore' {
49   interface IApplicationStoreState {
50     fault: IFaultAppStoreState;
51   }
52 }
53
54 const actionHandlers = {
55   currentAlarms: currentAlarmsActionHandler,
56   faultNotifications: faultNotificationsHandler,
57   alarmLogEntries: alarmLogEntriesActionHandler,
58   currentOpenPanel: currentOpenPanelHandler,
59   faultStatus: faultStatusHandler,
60 };
61
62 export const faultAppRootHandler = combineActionHandler<IFaultAppStoreState>(actionHandlers);
63 export default faultAppRootHandler;