@@ -13,15 +13,19 @@ function generateOverlayLayer() {
13
13
const elements = new Set < number > ( ) ;
14
14
const classes : { [ className : string ] : number } = { } ;
15
15
16
- const overlayRoot = document . createElement ( 'div' ) ;
17
- overlayRoot . classList . add ( 'ui__base' , 'ui__overlay' ) ;
16
+ const overlayRoot = document ? document . createElement ( 'div' ) : undefined ;
17
+ overlayRoot ? .classList . add ( 'ui__base' , 'ui__overlay' ) ;
18
18
19
- const appendElement = ( ) => document . body . appendChild ( overlayRoot ) ;
20
- const removeElement = ( ) => document . body . removeChild ( overlayRoot ) ;
19
+ const appendElement = ( ) => {
20
+ if ( document && overlayRoot ) document . body . appendChild ( overlayRoot ) ;
21
+ } ;
22
+ const removeElement = ( ) => {
23
+ if ( document && overlayRoot ) document . body . removeChild ( overlayRoot ) ;
24
+ } ;
21
25
22
26
const addClass = ( className ?: string ) => {
23
27
if ( ! className ) return ;
24
- overlayRoot . classList . add ( className ) ;
28
+ overlayRoot ? .classList . add ( className ) ;
25
29
classes [ className ] = ( classes [ className ] || 0 ) + 1 ;
26
30
} ;
27
31
@@ -30,7 +34,7 @@ function generateOverlayLayer() {
30
34
classes [ className ] = ( classes [ className ] || 0 ) - 1 ;
31
35
if ( classes [ className ] <= 0 ) {
32
36
delete classes [ className ] ;
33
- overlayRoot . classList . remove ( className ) ;
37
+ overlayRoot ? .classList . remove ( className ) ;
34
38
}
35
39
} ;
36
40
@@ -50,6 +54,7 @@ function generateOverlayLayer() {
50
54
51
55
return ( ( { children, className } ) => {
52
56
useEffect ( ( ) => add ( { className } ) , [ className ] ) ;
57
+ if ( ! overlayRoot ) return null ;
53
58
return createPortal ( children , overlayRoot ) ;
54
59
} ) as FC < OverlayProps > ;
55
60
}
0 commit comments