@@ -5,7 +5,6 @@ import ImageScrollbar from '../ImageScrollbar/ImageScrollbar.js';
55import ViewportOverlay from '../ViewportOverlay/ViewportOverlay.js' ;
66import LoadingIndicator from '../LoadingIndicator/LoadingIndicator.js' ;
77import ViewportOrientationMarkers from '../ViewportOrientationMarkers/ViewportOrientationMarkers.js' ;
8- import windowResizeHandler from './windowResizeHandler.js' ;
98import cornerstone from 'cornerstone-core' ;
109import cornerstoneTools from 'cornerstone-tools' ;
1110import 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 ( ) }
0 commit comments