aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/apps/performanceHistoryApp/src/pluginPerformance.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/odlux/apps/performanceHistoryApp/src/pluginPerformance.tsx')
-rw-r--r--sdnr/wt/odlux/apps/performanceHistoryApp/src/pluginPerformance.tsx89
1 files changed, 45 insertions, 44 deletions
diff --git a/sdnr/wt/odlux/apps/performanceHistoryApp/src/pluginPerformance.tsx b/sdnr/wt/odlux/apps/performanceHistoryApp/src/pluginPerformance.tsx
index a8aaca22f..ef939fdba 100644
--- a/sdnr/wt/odlux/apps/performanceHistoryApp/src/pluginPerformance.tsx
+++ b/sdnr/wt/odlux/apps/performanceHistoryApp/src/pluginPerformance.tsx
@@ -16,45 +16,64 @@
* ============LICENSE_END==========================================================================
*/
-import * as React from "react";
-import { faBook } from '@fortawesome/free-solid-svg-icons';
+import React from 'react';
+import { Redirect, Route, RouteComponentProps, Switch, withRouter } from 'react-router-dom';
+import { connect, Connect, IDispatcher } from '../../../framework/src/flux/connect';
import applicationManager from '../../../framework/src/services/applicationManager';
+// eslint-disable-next-line @typescript-eslint/no-unused-vars
+import { IApplicationStoreState } from '../../../framework/src/store/applicationStore';
+import { ApplicationStore } from '../../../framework/src/store/applicationStore';
-import { withRouter, RouteComponentProps, Route, Switch, Redirect } from 'react-router-dom';
+import { updateMountIdActionCreator } from './actions/deviceListActions';
+import { ResetLtpsAction } from './actions/ltpAction';
+import { ReloadAction } from './actions/reloadAction';
+import { ResetAllSubViewsAction } from './actions/toggleActions';
import performanceHistoryRootHandler from './handlers/performanceHistoryRootHandler';
import { PmDataInterval } from './models/performanceDataType';
import PerformanceHistoryApplication from './views/performanceHistoryApplication';
-import { ApplicationStore } from '../../../framework/src/store/applicationStore';
-import connect, { Connect, IDispatcher } from '../../../framework/src/flux/connect';
-import { IApplicationStoreState } from "../../../framework/src/store/applicationStore";
-import { updateMountIdActionCreator } from "./actions/deviceListActions";
-import { ResetAllSubViewsAction } from "./actions/toggleActions";
-import { ResetLtpsAction } from "./actions/ltpAction";
-import { ReloadAction } from "./actions/reloadAction";
+const appIcon = require('./assets/icons/performanceHistoryAppIcon.svg'); // select app icon
let api: {
readonly applicationStore: ApplicationStore | null;
readonly applicationStoreInitialized: Promise<ApplicationStore>;
-}
+};
-const mapProps = (state: IApplicationStoreState) => ({
+const mapProps = () => ({
});
const mapDisp = (dispatcher: IDispatcher) => ({
updateMountId: (mountId: string) => dispatcher.dispatch(updateMountIdActionCreator(mountId)),
resetLtps: () => dispatcher.dispatch(new ResetLtpsAction()),
resetSubViews: () => dispatcher.dispatch(new ResetAllSubViewsAction()),
- setScheduleReload: (show: boolean) => dispatcher.dispatch(new ReloadAction(show))
+ setScheduleReload: (show: boolean) => dispatcher.dispatch(new ReloadAction(show)),
});
let currentMountId: string | null = null;
-let lastUrl: string = "/performanceHistory";
+let lastUrl: string = '/performanceHistory';
const PerformanceHistoryApplicationRouteAdapter = connect(mapProps, mapDisp)((props: RouteComponentProps<{ mountId?: string }> & Connect<typeof mapProps, typeof mapDisp>) => {
- let mountId: string = "";
+ let mountId: string = '';
+
+ const getMountId = (last_url: string) => {
+ let index = last_url.lastIndexOf('performanceHistory/');
+ if (index >= 0) {
+ mountId = last_url.substring(index + 19);
+ } else {
+ mountId = '';
+ }
- // called when component finshed mounting
+ return mountId;
+ };
+
+ const scheduleReload = (current_mount_id: string) => {
+ props.updateMountId(current_mount_id);
+ props.resetLtps();
+ props.resetSubViews();
+ props.setScheduleReload(true);
+ };
+
+ // called when component finished mounting
React.useEffect(() => {
lastUrl = props.location.pathname;
@@ -62,11 +81,11 @@ const PerformanceHistoryApplicationRouteAdapter = connect(mapProps, mapDisp)((pr
if (currentMountId !== mountId) { // new element is loaded
currentMountId = mountId;
- schedueleReload(currentMountId);
+ scheduleReload(currentMountId);
} else
- if (currentMountId !== "") { // same element is loaded again
- schedueleReload(currentMountId);
- }
+ if (currentMountId !== '') { // same element is loaded again
+ scheduleReload(currentMountId);
+ }
}, []);
// called when component gets updated
@@ -77,52 +96,34 @@ const PerformanceHistoryApplicationRouteAdapter = connect(mapProps, mapDisp)((pr
if (currentMountId !== mountId) {
currentMountId = mountId;
- schedueleReload(currentMountId);
+ scheduleReload(currentMountId);
}
});
- const getMountId = (lastUrl: string) => {
- let index = lastUrl.lastIndexOf("performanceHistory/");
- if (index >= 0) {
- mountId = lastUrl.substr(index + 19);
- } else {
- mountId = "";
- }
-
- return mountId;
- }
-
- const schedueleReload = (currentMountId: string) => {
- props.updateMountId(currentMountId);
- props.resetLtps();
- props.resetSubViews();
- props.setScheduleReload(true);
- }
-
return (
<PerformanceHistoryApplication />
);
});
const PerformanceHistoryRouterApp = withRouter((props: RouteComponentProps) => {
- props.history.action = "POP";
+ props.history.action = 'POP';
return (
<Switch>
<Route path={`${props.match.path}/:mountId`} component={PerformanceHistoryApplicationRouteAdapter} />
<Route path={`${props.match.path}`} component={PerformanceHistoryApplicationRouteAdapter} />
<Redirect to={`${props.match.path}`} />
</Switch>
- )
+ );
});
export function register() {
api = applicationManager.registerApplication({
- name: "performanceHistory",
- icon: faBook,
+ name: 'performanceHistory',
+ icon: appIcon,
rootComponent: PerformanceHistoryRouterApp,
rootActionHandler: performanceHistoryRootHandler,
- menuEntry: "Performance"
+ menuEntry: 'Performance',
});
}