Skip to content

Commit 136f6ff

Browse files
committed
Remove windowResize behavior, expose better options for reactResizeObserver
1 parent bc6ee02 commit 136f6ff

File tree

3 files changed

+19
-74
lines changed

3 files changed

+19
-74
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"dependencies": {
3636
"classnames": "^2.2.6",
3737
"date-fns": "^2.2.1",
38+
"lodash.debounce": "^4.0.8",
3839
"prop-types": "^15.7.2",
3940
"react-resize-detector": "^4.2.1"
4041
},

src/CornerstoneViewport/CornerstoneViewport.js

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import ImageScrollbar from '../ImageScrollbar/ImageScrollbar.js';
55
import ViewportOverlay from '../ViewportOverlay/ViewportOverlay.js';
66
import LoadingIndicator from '../LoadingIndicator/LoadingIndicator.js';
77
import ViewportOrientationMarkers from '../ViewportOrientationMarkers/ViewportOrientationMarkers.js';
8-
import windowResizeHandler from './windowResizeHandler.js';
98
import cornerstone from 'cornerstone-core';
109
import cornerstoneTools from 'cornerstone-tools';
1110
import ReactResizeDetector from 'react-resize-detector/lib/index.js';
@@ -72,7 +71,9 @@ class CornerstoneViewport extends Component {
7271
PropTypes.element,
7372
PropTypes.func,
7473
]),
75-
resizeThrottleMs: PropTypes.number, // 0 to disable
74+
enableResizeDetector: PropTypes.bool,
75+
resizeRefreshRateMs: PropTypes.number,
76+
resizeRefreshMode: PropTypes.oneOf(['throttle', 'debounce']),
7677
//
7778
style: PropTypes.object,
7879
className: PropTypes.string,
@@ -92,7 +93,9 @@ class CornerstoneViewport extends Component {
9293
isOverlayVisible: true,
9394
loadIndicatorDelay: 45,
9495
loadingIndicatorComponent: LoadingIndicator,
95-
resizeThrottleMs: 200,
96+
enableResizeDetector: true,
97+
resizeRefreshRateMs: 200,
98+
resizeRefreshMode: 'debounce',
9699
tools: [],
97100
onNewImageDebounceTime: 0,
98101
};
@@ -141,7 +144,6 @@ class CornerstoneViewport extends Component {
141144
isStackPrefetchEnabled,
142145
cornerstoneOptions,
143146
imageIds,
144-
resizeThrottleMs,
145147
isPlaying,
146148
frameRate,
147149
} = this.props;
@@ -159,10 +161,6 @@ class CornerstoneViewport extends Component {
159161
this._bindInternalElementEventListeners();
160162
this._bindExternalEventListeners('element');
161163

162-
if (resizeThrottleMs) {
163-
windowResizeHandler.enable(this.element, resizeThrottleMs);
164-
}
165-
166164
// Only after `uuid` is set for enabledElement
167165
this._setupLoadHandlers();
168166

@@ -315,16 +313,14 @@ class CornerstoneViewport extends Component {
315313
this._bindInternalElementEventListeners(clear);
316314
this._bindExternalEventListeners('cornerstone', clear);
317315
this._bindExternalEventListeners('element', clear);
318-
319316
this._setupLoadHandlers(clear);
317+
320318
if (this.props.isStackPrefetchEnabled) {
321319
_enableStackPrefetching(this.element, clear);
322320
}
321+
323322
cornerstoneTools.clearToolState(this.element, 'stackPrefetch');
324323
cornerstoneTools.stopClip(this.element);
325-
if (this.props.resizeThrottleMs) {
326-
windowResizeHandler.disable(this.element);
327-
}
328324
cornerstone.disable(this.element);
329325
}
330326

@@ -740,14 +736,16 @@ class CornerstoneViewport extends Component {
740736
style={this.props.style}
741737
className={classNames('viewport-wrapper', this.props.className)}
742738
>
743-
<ReactResizeDetector
744-
handleWidth
745-
handleHeight
746-
skipOnMount={true}
747-
refreshMode={'throttle'}
748-
refreshRate={this.props.resizeThrottleMs}
749-
onResize={this.onResize}
750-
/>
739+
{this.props.enableResizeDetector && (
740+
<ReactResizeDetector
741+
handleWidth
742+
handleHeight
743+
skipOnMount={true}
744+
refreshMode={this.props.resizeRefreshMode}
745+
refreshRate={this.props.resizeRefreshRateMs}
746+
onResize={this.onResize}
747+
/>
748+
)}
751749
<div
752750
className="viewport-element"
753751
onContextMenu={e => e.preventDefault()}

src/CornerstoneViewport/windowResizeHandler.js

Lines changed: 0 additions & 54 deletions
This file was deleted.

0 commit comments

Comments
 (0)