@@ -339,27 +339,35 @@ class App extends React.Component<any, { layoutFile: string | null, model: Model
339
339
var target = event . target as HTMLSelectElement ;
340
340
341
341
let flexlayout_stylesheet : any = window . document . getElementById ( "flexlayout-stylesheet" ) ;
342
+ let page_stylesheet = window . document . getElementById ( "page-stylesheet" ) ;
342
343
let index = flexlayout_stylesheet . href . lastIndexOf ( "/" ) ;
343
344
let newAddress = flexlayout_stylesheet . href . substr ( 0 , index ) ;
344
- document . head . removeChild ( flexlayout_stylesheet ) ;
345
-
346
- flexlayout_stylesheet = document . createElement ( "link" ) ;
347
- flexlayout_stylesheet . setAttribute ( "id" , "flexlayout-stylesheet" ) ;
348
- flexlayout_stylesheet . setAttribute ( "rel" , "stylesheet" ) ;
349
- flexlayout_stylesheet . setAttribute ( "href" , newAddress + "/" + target . value + ".css" ) ;
350
- document . head . appendChild ( flexlayout_stylesheet ) ;
351
-
352
- let page_stylesheet = window . document . getElementById ( "page-stylesheet" ) ;
353
- document . head . removeChild ( page_stylesheet ! ) ;
354
-
355
- page_stylesheet ! . setAttribute ( "id" , "page-stylesheet" ) ;
356
- page_stylesheet ! . setAttribute ( "rel" , "stylesheet" ) ;
357
- page_stylesheet ! . setAttribute ( "href" , target . value + ".css" ) ;
358
- document . head . appendChild ( page_stylesheet ! ) ;
359
345
360
- setTimeout ( ( ) => {
346
+ let s1 = document . createElement ( "link" ) ;
347
+ s1 . setAttribute ( "id" , "flexlayout-stylesheet" ) ;
348
+ s1 . setAttribute ( "rel" , "stylesheet" ) ;
349
+ s1 . setAttribute ( "href" , newAddress + "/" + target . value + ".css" ) ;
350
+
351
+ let s2 = document . createElement ( "link" ) ;
352
+ s2 . setAttribute ( "id" , "page-stylesheet" ) ;
353
+ s2 . setAttribute ( "rel" , "stylesheet" ) ;
354
+ s2 . setAttribute ( "href" , target . value + ".css" ) ;
355
+
356
+ const promises : Promise < boolean > [ ] = [ ] ;
357
+ promises . push ( new Promise ( ( resolve ) => {
358
+ s1 . onload = ( ) => resolve ( true ) ;
359
+ } ) ) ;
360
+ promises . push ( new Promise ( ( resolve ) => {
361
+ s2 . onload = ( ) => resolve ( true ) ;
362
+ } ) ) ;
363
+ document . head . appendChild ( s1 ) ;
364
+ document . head . appendChild ( s2 ) ;
365
+
366
+ Promise . all ( promises ) . then ( ( ) => {
367
+ document . head . removeChild ( flexlayout_stylesheet ) ;
368
+ document . head . removeChild ( page_stylesheet ! ) ;
361
369
this . forceUpdate ( ) ;
362
- } , 300 ) ;
370
+ } ) ;
363
371
}
364
372
365
373
onFontSizeChange = ( event : React . FormEvent ) => {
0 commit comments