From 380acc1331939f15cbec4a41d7b57c7b8361c26f Mon Sep 17 00:00:00 2001 From: Danny Brown Date: Mon, 5 Oct 2020 21:42:30 -0400 Subject: [PATCH] fix: for incorrect toolbar state between routes (#2082) --- extensions/cornerstone/src/commandsModule.js | 2 +- modes/longitudinal/src/index.js | 19 +++++++++++++++++++ platform/viewer/src/routes/Mode/Mode.jsx | 4 ++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/extensions/cornerstone/src/commandsModule.js b/extensions/cornerstone/src/commandsModule.js index 676aef487..ce22c1db3 100644 --- a/extensions/cornerstone/src/commandsModule.js +++ b/extensions/cornerstone/src/commandsModule.js @@ -101,7 +101,7 @@ const commandsModule = ({ servicesManager, commandsManager }) => { } // Find total number of tool indexes - const { viewports } = ViewportGridService.getState(); + const { viewports } = ViewportGridService.getState() || { viewports: [] }; for (let i = 0; i < viewports.length; i++) { const viewport = viewports[i]; const hasDisplaySet = viewport.displaySetInstanceUID !== undefined; diff --git a/modes/longitudinal/src/index.js b/modes/longitudinal/src/index.js index 531d303aa..6306fa19c 100644 --- a/modes/longitudinal/src/index.js +++ b/modes/longitudinal/src/index.js @@ -23,6 +23,25 @@ export default function mode({ modeConfiguration }) { // We should not be. id: 'viewer', displayName: 'Basic Viewer', + /** + * Lifecycle hooks + */ + onModeEnter: ({ servicesManager, extensionManager }) => { + // Note: If tool's aren't initialized, this doesn't have viewport/tools + // to "set active". This is mostly for the toolbar UI state? + // Could update tool manager to be always persistent, and to set state + // on load? + const { ToolBarService } = servicesManager.services; + const interaction = { + groupId: 'primary', + itemId: 'Wwwc', + interactionType: 'tool', + commandOptions: undefined, + }; + + ToolBarService.recordInteraction(interaction); + }, + onModeExit: () => {}, validationTags: { study: [], series: [], diff --git a/platform/viewer/src/routes/Mode/Mode.jsx b/platform/viewer/src/routes/Mode/Mode.jsx index bff686da1..bfc6d2092 100644 --- a/platform/viewer/src/routes/Mode/Mode.jsx +++ b/platform/viewer/src/routes/Mode/Mode.jsx @@ -96,19 +96,19 @@ export default function ModeRoute({ }, []); useEffect(() => { - // Core - // TODO: For some reason this is running before the Providers // are calling setServiceImplementation // TOOD -> iterate through services. // Extension extensionManager.onModeEnter(); + mode?.onModeEnter({ servicesManager, extensionManager }); // Mode route.init({ servicesManager, extensionManager }); return () => { extensionManager.onModeExit(); + mode?.onModeExit({ servicesManager, extensionManager }); }; }, [ mode,