@@ -8,28 +8,50 @@ export const HeadStyles : React.FC<{ spaces: ISpace[] }> = (props) => {
8
8
9
9
if ( spaces . length > 0 )
10
10
{
11
- return ReactDOM . createPortal (
12
- < style >
13
- {
14
- spaces . map ( space => {
15
- const style = {
16
- left : ( space . left !== undefined ? cssValue ( space . left , space . adjustedLeft ) : undefined ) ,
17
- top : ( space . top !== undefined ? cssValue ( space . top , space . adjustedTop ) : undefined ) ,
18
- right : ( space . right !== undefined ? cssValue ( space . right , space . adjustedLeft ) : undefined ) ,
19
- bottom : ( space . bottom !== undefined ? cssValue ( space . bottom , space . adjustedTop ) : undefined ) ,
20
- width : isHorizontalSpace ( space . anchorType ) ? cssValue ( space . anchorSize , space . adjustedSize ) : space . width ,
21
- height : isVerticalSpace ( space . anchorType ) ? cssValue ( space . anchorSize , space . adjustedSize ) : space . height ,
22
- zIndex : space . zIndex
23
- } ;
24
- return (
25
- < > { `#${ space . id } {` } { style . left ? `left: ${ style . left } ;` : "" } { style . top ? `top: ${ style . top } ;` : "" } { style . right ? `right: ${ style . right } ;` : "" } { style . bottom ? `bottom: ${ style . bottom } ;` : "" } { style . width ? `width: ${ style . width } ;` : "" } { style . height ? `height: ${ style . height } ;` : "" } { style . zIndex ? `z-index: ${ style . zIndex } ;` : "" } { `}` } </ >
26
- )
27
- } )
28
- }
29
- </ style >
30
- ,
31
- window . document . head
32
- ) ;
11
+ const styles : string [ ] = [ ] ;
12
+ for ( let i = 0 ; i < spaces . length ; i ++ ) {
13
+ const space = spaces [ i ] ;
14
+ const css : string [ ] = [ ] ;
15
+ const style = {
16
+ left : ( space . left !== undefined ? cssValue ( space . left , space . adjustedLeft ) : undefined ) ,
17
+ top : ( space . top !== undefined ? cssValue ( space . top , space . adjustedTop ) : undefined ) ,
18
+ right : ( space . right !== undefined ? cssValue ( space . right , space . adjustedLeft ) : undefined ) ,
19
+ bottom : ( space . bottom !== undefined ? cssValue ( space . bottom , space . adjustedTop ) : undefined ) ,
20
+ width : isHorizontalSpace ( space . anchorType ) ? cssValue ( space . anchorSize , space . adjustedSize ) : space . width ,
21
+ height : isVerticalSpace ( space . anchorType ) ? cssValue ( space . anchorSize , space . adjustedSize ) : space . height ,
22
+ zIndex : space . zIndex
23
+ } ;
24
+ if ( style . left ) {
25
+ css . push ( `left: ${ style . left } ;` ) ;
26
+ }
27
+ if ( style . top ) {
28
+ css . push ( `top: ${ style . top } ;` ) ;
29
+ }
30
+ if ( style . right ) {
31
+ css . push ( `right: ${ style . right } ;` ) ;
32
+ }
33
+ if ( style . bottom ) {
34
+ css . push ( `bottom: ${ style . bottom } ;` ) ;
35
+ }
36
+ if ( style . width ) {
37
+ css . push ( `width: ${ style . width } ;` ) ;
38
+ }
39
+ if ( style . height ) {
40
+ css . push ( `height: ${ style . height } ` ) ;
41
+ }
42
+ if ( style . zIndex ) {
43
+ css . push ( `z-index: ${ style . zIndex } ` ) ;
44
+ }
45
+ if ( css . length > 0 ) {
46
+ styles . push ( `#${ space . id } { ${ css . join ( ' ' ) } }` ) ;
47
+ }
48
+ }
49
+
50
+ if ( styles . length === 0 ) {
51
+ return null ;
52
+ }
53
+
54
+ return ReactDOM . createPortal ( < style > { styles . join ( ' ' ) } </ style > , window . document . head ) ;
33
55
}
34
56
35
57
return null ;
0 commit comments