X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=sdnr%2Fwt%2Fodlux%2Fframework%2Fsrc%2Fhandlers%2FapplicationStateHandler.ts;h=a93f96a823a1838907c483b8ea45285c9129708a;hb=889c7fbc0f78eadc302e8849ea7e6cad795e0d6e;hp=bfb11c77000c650f8f3767663b684b6823c858f3;hpb=d93e6a996e60fb6abce9a870cef6b2d57bfa70fd;p=ccsdk%2Ffeatures.git diff --git a/sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts b/sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts index bfb11c770..a93f96a82 100644 --- a/sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts +++ b/sdnr/wt/odlux/framework/src/handlers/applicationStateHandler.ts @@ -1,24 +1,44 @@ +/** + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt odlux + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * ============LICENSE_END========================================================================== + */ import { IActionHandler } from '../flux/action'; 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 = (state = applicationStateInit, action) => { if (action instanceof SetTitleAction) { @@ -67,6 +87,22 @@ export const applicationStateHandler: IActionHandler = (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; };