@@ -361,14 +361,15 @@ export class ViewWithBottomSheet extends ViewWithBottomSheetBase {
361
361
parentController = rootView . viewController . presentedViewController ;
362
362
}
363
363
while ( parentController . presentedViewController ) {
364
- while ( parentController . presentedViewController instanceof UIAlertController ||
365
- ( parentController . presentedViewController [ 'isAlertController' ] && parentController . presentedViewController . presentedViewController ) ) {
366
- parentController = parentController . presentedViewController ;
364
+ while (
365
+ parentController . presentedViewController instanceof UIAlertController ||
366
+ ( parentController . presentedViewController [ 'isAlertController' ] && parentController . presentedViewController . presentedViewController )
367
+ ) {
368
+ parentController = parentController . presentedViewController ;
367
369
}
368
370
if ( parentController . presentedViewController instanceof UIAlertController || parentController . presentedViewController [ 'isAlertController' ] ) {
369
371
break ;
370
- }
371
- else {
372
+ } else {
372
373
parentController = parentController . presentedViewController ;
373
374
}
374
375
}
@@ -379,7 +380,15 @@ export class ViewWithBottomSheet extends ViewWithBottomSheetBase {
379
380
}
380
381
381
382
this . parent = Application . getRootView ( ) ;
383
+
384
+ // dirty trick for RADSideDrawer. as we set parent for css variables/classes, _setupAsRootView
385
+ // will call _addViewToNativeVisualTree which breaks the bottomSheet with RADSiderDrawer
386
+ // so we disable _addViewToNativeVisualTree for _setupAsRootView
387
+ // should be fixed in N. we could say if _setupAsRootView then NO _addViewToNativeVisualTree
388
+ const oldAddViewToNativeVisualTree = this . parent . _addViewToNativeVisualTree ;
389
+ this . parent . _addViewToNativeVisualTree = ( ) => false ;
382
390
this . _setupAsRootView ( { } ) ;
391
+ this . parent . _addViewToNativeVisualTree = oldAddViewToNativeVisualTree ;
383
392
384
393
this . _commonShowNativeBottomSheet ( currentView , options ) ;
385
394
let controller : IMDLayoutViewController = this . viewController ;
@@ -477,20 +486,21 @@ export class ViewWithBottomSheet extends ViewWithBottomSheetBase {
477
486
if ( rootView . parent ) {
478
487
rootView = rootView . parent as any ;
479
488
}
480
- let currentView = parent . modal || parent ;
489
+ const currentView = parent . modal || parent ;
481
490
let parentController = currentView . viewController ;
482
491
if ( ! parentController . presentedViewController && rootView . viewController . presentedViewController ) {
483
492
parentController = rootView . viewController . presentedViewController ;
484
493
}
485
494
while ( parentController . presentedViewController ) {
486
- while ( parentController . presentedViewController instanceof UIAlertController ||
487
- ( parentController . presentedViewController [ 'isAlertController' ] && parentController . presentedViewController . presentedViewController ) ) {
488
- parentController = parentController . presentedViewController ;
495
+ while (
496
+ parentController . presentedViewController instanceof UIAlertController ||
497
+ ( parentController . presentedViewController [ 'isAlertController' ] && parentController . presentedViewController . presentedViewController )
498
+ ) {
499
+ parentController = parentController . presentedViewController ;
489
500
}
490
501
if ( parentController . presentedViewController instanceof UIAlertController || parentController . presentedViewController [ 'isAlertController' ] ) {
491
502
break ;
492
- }
493
- else {
503
+ } else {
494
504
parentController = parentController . presentedViewController ;
495
505
}
496
506
}
0 commit comments