diff options
Diffstat (limited to 'sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts')
-rw-r--r-- | sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts | 25 |
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; }; |