@@ -361,14 +361,15 @@ export class ViewWithBottomSheet extends ViewWithBottomSheetBase {
361361 parentController = rootView . viewController . presentedViewController ;
362362 }
363363 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 ;
367369 }
368370 if ( parentController . presentedViewController instanceof UIAlertController || parentController . presentedViewController [ 'isAlertController' ] ) {
369371 break ;
370- }
371- else {
372+ } else {
372373 parentController = parentController . presentedViewController ;
373374 }
374375 }
@@ -379,7 +380,15 @@ export class ViewWithBottomSheet extends ViewWithBottomSheetBase {
379380 }
380381
381382 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 ;
382390 this . _setupAsRootView ( { } ) ;
391+ this . parent . _addViewToNativeVisualTree = oldAddViewToNativeVisualTree ;
383392
384393 this . _commonShowNativeBottomSheet ( currentView , options ) ;
385394 let controller : IMDLayoutViewController = this . viewController ;
@@ -477,20 +486,21 @@ export class ViewWithBottomSheet extends ViewWithBottomSheetBase {
477486 if ( rootView . parent ) {
478487 rootView = rootView . parent as any ;
479488 }
480- let currentView = parent . modal || parent ;
489+ const currentView = parent . modal || parent ;
481490 let parentController = currentView . viewController ;
482491 if ( ! parentController . presentedViewController && rootView . viewController . presentedViewController ) {
483492 parentController = rootView . viewController . presentedViewController ;
484493 }
485494 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 ;
489500 }
490501 if ( parentController . presentedViewController instanceof UIAlertController || parentController . presentedViewController [ 'isAlertController' ] ) {
491502 break ;
492- }
493- else {
503+ } else {
494504 parentController = parentController . presentedViewController ;
495505 }
496506 }
0 commit comments