fix: for incorrect toolbar state between routes (#2082)

This commit is contained in:
Danny Brown 2020-10-05 21:42:30 -04:00 committed by GitHub
parent 5689bf5369
commit 380acc1331
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 3 deletions

View File

@ -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;

View File

@ -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: [],

View File

@ -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,