@@ -42,13 +42,15 @@ export default class Thumb extends React.Component {
4242 this . dragStartOffsetX = ev . clientX - rect . left - rect . width / 2 ;
4343 this . dragStartOffsetY = ev . clientY - rect . top - rect . height / 2 ;
4444
45- document . addEventListener ( "mousemove" , this . handleDragEvent ) ;
46- document . addEventListener ( "mouseup" , this . handleDragEnd ) ;
47-
48- this . prevUserSelect = document . body . style . userSelect ;
49- document . body . style . userSelect = "none" ;
50- this . prevOnSelectStart = document . onselectstart ;
51- document . onselectstart = ( ) => false ;
45+ if ( global . document ) {
46+ global . document . addEventListener ( "mousemove" , this . handleDragEvent ) ;
47+ global . document . addEventListener ( "mouseup" , this . handleDragEnd ) ;
48+
49+ this . prevUserSelect = global . document . body . style . userSelect ;
50+ global . document . body . style . userSelect = "none" ;
51+ this . prevOnSelectStart = global . document . onselectstart ;
52+ global . document . onselectstart = ( ) => false ;
53+ }
5254
5355 this . props . onDragStart &&
5456 this . props . onDragStart ( {
@@ -84,19 +86,21 @@ export default class Thumb extends React.Component {
8486 this . dragStartOffsetY = false ;
8587 this . element . classList . remove ( "dragging" ) ;
8688
87- document . removeEventListener ( "mousemove" , this . handleDragEvent ) ;
88- document . removeEventListener ( "mouseup" , this . handleDragEnd ) ;
89+ if ( global . document ) {
90+ global . document . removeEventListener ( "mousemove" , this . handleDragEvent ) ;
91+ global . document . removeEventListener ( "mouseup" , this . handleDragEnd ) ;
92+
93+ global . document . body . style . userSelect = this . prevUserSelect ;
94+ this . prevUserSelect = null ;
95+ global . document . onselectstart = this . prevOnSelectStart ;
96+ this . prevOnSelectStart = null ;
97+ }
8998
9099 if ( ! this . isDragging ) {
91100 return ;
92101 }
93102 this . isDragging = false ;
94103
95- document . body . style . userSelect = this . prevUserSelect ;
96- this . prevUserSelect = null ;
97- document . onselectstart = this . prevOnSelectStart ;
98- this . prevOnSelectStart = null ;
99-
100104 this . props . onDragEnd && this . props . onDragEnd ( { axis : this . props . type } ) ;
101105 } ;
102106
0 commit comments