summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts')
-rw-r--r--sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts25
1 files changed, 22 insertions, 3 deletions
diff --git a/sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts b/sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts
index 75ea92e43..a93f96a82 100644
--- a/sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts
+++ b/sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts
@@ -20,22 +20,25 @@ import { SetTitleAction } from '../actions/titleActions';
import { AddSnackbarNotification, RemoveSnackbarNotification } from '../actions/snackbarActions';
import { AddErrorInfoAction, RemoveErrorInfoAction, ClearErrorInfoAction } from '../actions/errorActions';
-
+import { MenuAction, MenuClosedByUser } from '../actions/menuAction'
import { IconType } from '../models/iconDefinition';
import { ErrorInfo } from '../models/errorInfo';
import { SnackbarItem } from '../models/snackbarItem';
+import { SetWebsocketAction } from '../actions/websocketAction';
export interface IApplicationState {
title: string;
appId?: string;
icon?: IconType;
-
+ isMenuOpen: boolean;
+ isMenuClosedByUser: boolean;
errors: ErrorInfo[];
snackBars: SnackbarItem[];
+ isWebsocketAvailable: boolean | undefined;
}
-const applicationStateInit: IApplicationState = { title: "Loading ...", errors: [], snackBars:[] };
+const applicationStateInit: IApplicationState = { title: "Loading ...", errors: [], snackBars: [], isMenuOpen: true, isMenuClosedByUser: false, isWebsocketAvailable: undefined };
export const applicationStateHandler: IActionHandler<IApplicationState> = (state = applicationStateInit, action) => {
if (action instanceof SetTitleAction) {
@@ -84,6 +87,22 @@ export const applicationStateHandler: IActionHandler<IApplicationState> = (state
...state,
snackBars: state.snackBars.filter(s => s.key !== action.key)
};
+ } else if (action instanceof MenuAction) {
+ state = {
+ ...state,
+ isMenuOpen: action.isOpen
+ }
+ } else if (action instanceof MenuClosedByUser) {
+ state = {
+ ...state,
+ isMenuClosedByUser: action.isClosed
+ }
+ }
+ else if (action instanceof SetWebsocketAction) {
+ state = {
+ ...state,
+ isWebsocketAvailable: action.isConnected
+ }
}
return state;
};