@@ -52,7 +52,6 @@ class MDCBottomSheetControllerDelegateImpl extends NSObject {
5252 // called when clicked on background
5353 const owner = this . _owner . get ( ) ;
5454 owner && owner . _unloadBottomSheet ( ) ;
55-
5655 }
5756 bottomSheetControllerStateChangedState ( controller : MDCBottomSheetController , state : MDCSheetState ) {
5857 // called when swiped
@@ -128,6 +127,11 @@ function layoutView(controller: IMDLayoutViewController, owner: View): void {
128127 ) ;
129128 const availableSpace = getAvailableSpaceFromParent ( owner , frame ) ;
130129
130+ if ( ! availableSpace . fullscreen ) {
131+ // can happen if we get there after the bottomsheet was removed...
132+ return ;
133+ }
134+
131135 const startPos = IOSHelper . getPositionFromFrame ( frame ) ;
132136 const fullscreenPosition = IOSHelper . getPositionFromFrame ( availableSpace . fullscreen ) ;
133137 const safeAreaPosition = IOSHelper . getPositionFromFrame ( availableSpace . safeArea ) ;
@@ -209,11 +213,12 @@ function getAvailableSpaceFromParent(view: View, frame: CGRect): { safeArea: CGR
209213 while ( parent && ! parent . viewController && ! ( parent . nativeViewProtected instanceof UIScrollView ) ) {
210214 parent = parent . parent as View ;
211215 }
212-
213- if ( parent . nativeViewProtected instanceof UIScrollView ) {
214- scrollView = parent . nativeViewProtected ;
215- } else if ( parent . viewController ) {
216- viewControllerView = parent . viewController . view ;
216+ if ( parent ) {
217+ if ( parent . nativeViewProtected instanceof UIScrollView ) {
218+ scrollView = parent . nativeViewProtected ;
219+ } else if ( parent . viewController ) {
220+ viewControllerView = parent . viewController . view ;
221+ }
217222 }
218223 }
219224
0 commit comments