Merge "Add SDN-R odlux performance"
[ccsdk/features.git] / sdnr / wt / odlux / apps / performanceHistoryApp / src / handlers / performanceHistoryRootHandler.ts
1 // main state handler
2
3 import { combineActionHandler } from '../../../../framework/src/flux/middleware';
4
5 // ** do not remove **
6 import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore';
7 import { IActionHandler } from '../../../../framework/src/flux/action';
8
9 import { IPerformanceData15minState, performanceData15minActionHandler } from './performanceData15minHandler';
10 import { IReceiveLevel15minState, receiveLevel15minActionHandler } from './receiveLevel15minHandler';
11 import { ITransmissionPower15minState, transmissionPower15minActionHandler } from './transmissionPower15minHandler';
12 import { IAdaptiveModulation15minState, adaptiveModulation15minActionHandler } from './adaptiveModulation15minHandler';
13 import { ITemperature15minState, temperature15minActionHandler } from './temperature15minHandler';
14 import { ISignalToInterference15minState, signalToInterference15minActionHandler } from './signalToInterference15minHandler';
15 import { ICrossPolarDiscrimination15minState, crossPolarDiscrimination15minActionHandler } from './crossPolarDiscrimination15minHandler';
16 import { IPerformanceData24hoursState, performanceData24hoursActionHandler } from './performanceData24hoursHandler';
17 import { IReceiveLevel24hoursState, receiveLevel24hoursActionHandler } from './receiveLevel24hoursHandler';
18 import { ITransmissionPower24hoursState, transmissionPower24hoursActionHandler } from './transmissionPower24hoursHandler';
19 import { IAdaptiveModulation24hoursState, adaptiveModulation24hoursActionHandler } from './adaptiveModulation24hoursHandler';
20 import { ITemperature24hoursState, temperature24hoursActionHandler } from './temperature24hoursHandler';
21 import { ISignalToInterference24hoursState, signalToInterference24hoursActionHandler } from './signalToInterference24hoursHandler';
22 import { ICrossPolarDiscrimination24hoursState, crossPolarDiscrimination24hoursActionHandler } from './crossPolarDiscrimination24hoursHandler';
23 import { SetPanelAction } from '../actions/panelChangeActions';
24 import { IConnectedNetworkElementsState, connectedNetworkElementsActionHandler } from './connectedNetworkElementsActionHandler';
25 import { IAvailableLtpsState, availableLtpsActionHandler } from './availableLtpsActionHandler';
26
27 export interface IPerformanceHistoryStoreState {
28   networkElements: IConnectedNetworkElementsState;
29   ltps: IAvailableLtpsState;
30   performanceData15min: IPerformanceData15minState;
31   performanceData24hours: IPerformanceData24hoursState;
32   receiveLevel15min: IReceiveLevel15minState;
33   receiveLevel24hours: IReceiveLevel24hoursState;
34   transmissionPower15min: ITransmissionPower15minState;
35   transmissionPower24hours: ITransmissionPower24hoursState;
36   adaptiveModulation15min: IAdaptiveModulation15minState;
37   adaptiveModulation24hours: IAdaptiveModulation24hoursState;
38   temperature15min: ITemperature15minState;
39   temperature24hours: ITemperature24hoursState;
40   signalToInterference15min:ISignalToInterference15minState;
41   signalToInterference24hours:ISignalToInterference24hoursState;
42   crossPolarDiscrimination15min: ICrossPolarDiscrimination15minState;
43   crossPolarDiscrimination24hours: ICrossPolarDiscrimination24hoursState;
44   currentOpenPanel: string | null;
45
46 }
47
48 const currentOpenPanelHandler: IActionHandler<string | null> = (state = null, action) => {
49   if (action instanceof SetPanelAction) {
50     state = action.panelId;
51   }
52   return state;
53 }
54
55 declare module '../../../../framework/src/store/applicationStore' {
56   interface IApplicationStoreState {
57     performanceHistory: IPerformanceHistoryStoreState;
58   }
59 }
60
61 const actionHandlers = {
62   networkElements: connectedNetworkElementsActionHandler,
63   ltps: availableLtpsActionHandler,
64   performanceData15min: performanceData15minActionHandler,
65   performanceData24hours: performanceData24hoursActionHandler,
66   receiveLevel15min: receiveLevel15minActionHandler,
67   receiveLevel24hours: receiveLevel24hoursActionHandler,
68   transmissionPower15min: transmissionPower15minActionHandler,
69   transmissionPower24hours: transmissionPower24hoursActionHandler,
70   adaptiveModulation15min: adaptiveModulation15minActionHandler,
71   adaptiveModulation24hours: adaptiveModulation24hoursActionHandler,
72   temperature15min: temperature15minActionHandler,
73   temperature24hours: temperature24hoursActionHandler,
74   signalToInterference15min: signalToInterference15minActionHandler,
75   signalToInterference24hours: signalToInterference24hoursActionHandler,
76   crossPolarDiscrimination15min: crossPolarDiscrimination15minActionHandler,
77   crossPolarDiscrimination24hours: crossPolarDiscrimination24hoursActionHandler,
78   currentOpenPanel: currentOpenPanelHandler,
79 };
80
81 export const performanceHistoryRootHandler = combineActionHandler<IPerformanceHistoryStoreState>(actionHandlers);
82 export default performanceHistoryRootHandler;
83