Avoid re-renders in study browser and entire page
This commit is contained in:
1 parent
4fc3169fed
commit
10930cda68
9 files changed
+180
-67
No files matched your search
@@ -0,0 +1,39 @@
|
||||
import React, { Component, useContext } from 'react';
|
||||
|
||||
/// TODO MAKE THIS PRETTY DANNY
|
||||
|
||||
const ToolbarLayoutContext = React.createContext({
|
||||
toolBarLayout: [],
|
||||
setToolBarLayout: () => {},
|
||||
});
|
||||
|
||||
ToolbarLayoutContext.displayName = 'ToolbarLayoutContext';
|
||||
|
||||
class ToolbarLayoutProvider extends Component {
|
||||
state = {
|
||||
toolBarLayout: [],
|
||||
};
|
||||
|
||||
render() {
|
||||
const setToolBarLayout = toolBarLayout => {
|
||||
this.setState({ toolBarLayout });
|
||||
};
|
||||
|
||||
return (
|
||||
<ToolbarLayoutContext.Provider
|
||||
value={{
|
||||
toolBarLayout: this.state.toolBarLayout,
|
||||
setToolBarLayout,
|
||||
}}
|
||||
>
|
||||
{this.props.children}
|
||||
</ToolbarLayoutContext.Provider>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const useToolbarLayout = () => useContext(ToolbarLayoutContext);
|
||||
|
||||
export default ToolbarLayoutContext;
|
||||
|
||||
export { ToolbarLayoutProvider, useToolbarLayout };
|
||||
@@ -4,9 +4,7 @@ import React, { Component, useContext } from 'react';
|
||||
|
||||
const ViewModelContext = React.createContext({
|
||||
displaySetInstanceUIDs: [],
|
||||
setDisplaySetInstanceUids: () => {},
|
||||
toolBarLayout: [],
|
||||
setToolBarLayout: () => {},
|
||||
setDisplaySetInstanceUIDs: () => {},
|
||||
});
|
||||
|
||||
ViewModelContext.displayName = 'ViewModelContext';
|
||||
@@ -17,21 +15,15 @@ class ViewModelProvider extends Component {
|
||||
};
|
||||
|
||||
render() {
|
||||
const setDisplaySetInstanceUids = displaySetInstanceUIDs => {
|
||||
const setDisplaySetInstanceUIDs = displaySetInstanceUIDs => {
|
||||
this.setState({ displaySetInstanceUIDs });
|
||||
};
|
||||
|
||||
const setToolBarLayout = toolBarLayout => {
|
||||
this.setState({ toolBarLayout });
|
||||
};
|
||||
|
||||
return (
|
||||
<ViewModelContext.Provider
|
||||
value={{
|
||||
displaySetInstanceUIDs: this.state.displaySetInstanceUIDs,
|
||||
setDisplaySetInstanceUids,
|
||||
toolBarLayout: this.state.toolBarLayout,
|
||||
setToolBarLayout,
|
||||
setDisplaySetInstanceUIDs,
|
||||
}}
|
||||
>
|
||||
{this.props.children}
|
||||
|
||||
@@ -9,11 +9,11 @@ class DisplaySetManager {
|
||||
|
||||
const {
|
||||
displaySetInstanceUIDs,
|
||||
setDisplaySetInstanceUids,
|
||||
setDisplaySetInstanceUIDs,
|
||||
} = viewModelContext;
|
||||
|
||||
this.displaySetInstanceUIDs = displaySetInstanceUIDs;
|
||||
this.setDisplaySetInstanceUids = setDisplaySetInstanceUids;
|
||||
this.setDisplaySetInstanceUids = setDisplaySetInstanceUIDs;
|
||||
|
||||
// Reset displaySetInstanceUIDs
|
||||
this.setDisplaySetInstanceUids([]);
|
||||
|
||||
@@ -23,6 +23,10 @@ import dicomMetadataStore from './dicomMetadataStore';
|
||||
import displaySetManager from './displaySetManager';
|
||||
import ToolBarManager from './ToolBarManager';
|
||||
import { ViewModelProvider, useViewModel } from './ViewModelContext';
|
||||
import {
|
||||
ToolbarLayoutProvider,
|
||||
useToolbarLayout,
|
||||
} from './ToolbarLayoutContext';
|
||||
import utils, { hotkeys } from './utils/';
|
||||
|
||||
import {
|
||||
@@ -114,6 +118,8 @@ export {
|
||||
ToolBarManager,
|
||||
ViewModelProvider,
|
||||
useViewModel,
|
||||
ToolbarLayoutProvider,
|
||||
useToolbarLayout,
|
||||
};
|
||||
|
||||
export { OHIF };
|
||||
|
||||
Reference in new issue
Block a user