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