diff options
Diffstat (limited to 'sdnr/wt/odlux/apps/connectApp/src/plugin.tsx')
-rw-r--r-- | sdnr/wt/odlux/apps/connectApp/src/plugin.tsx | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/sdnr/wt/odlux/apps/connectApp/src/plugin.tsx b/sdnr/wt/odlux/apps/connectApp/src/plugin.tsx new file mode 100644 index 000000000..4e61c326b --- /dev/null +++ b/sdnr/wt/odlux/apps/connectApp/src/plugin.tsx @@ -0,0 +1,39 @@ + +import { faPlug } from '@fortawesome/free-solid-svg-icons'; + +import applicationManager from '../../../framework/src/services/applicationManager'; +import { subscribe, IFormatedMessage } from '../../../framework/src/services/notificationService'; + +import connectAppRootHandler from './handlers/connectAppRootHandler'; +import ConnectApplication from './views/connectView'; +import { RemoveMountedNetworkElement, addMountedNetworkElementAsyncActionCreator } from './actions/mountedNetworkElementsActions' ; +import { AddSnackbarNotification } from '../../../framework/src/actions/snackbarActions'; + +type ObjectNotification = { + counter: string; + nodeName: string; + objectId: string; + timeStamp: string; +} + +export function register() { + const applicationApi = applicationManager.registerApplication({ + name: "connectApp", + icon: faPlug, + rootComponent: ConnectApplication, + rootActionHandler: connectAppRootHandler, + menuEntry: "Connect App" + }); + + // subscribe to the websocket notifications + subscribe<ObjectNotification & IFormatedMessage>(["ObjectCreationNotification", "ObjectDeletionNotification"], (msg => { + const store = applicationApi && applicationApi.applicationStore; + if (msg && msg.notifType === "ObjectCreationNotification" && store) { + store.dispatch(addMountedNetworkElementAsyncActionCreator(msg.objectId)); + store.dispatch(new AddSnackbarNotification({ message: `Adding network element [${ msg.objectId }]`, options: { variant: 'info' } })); + } else if (msg && msg.notifType === "ObjectDeletionNotification" && store) { + store.dispatch(new AddSnackbarNotification({ message: `Removing network element [${ msg.objectId }]`, options: { variant: 'info' } })); + store.dispatch(new RemoveMountedNetworkElement(msg.objectId)); + } + })); +}
\ No newline at end of file |