Skip to content

Commit

Permalink
fix(bottom-sheet): not moving focus to container if autoFocus is disa…
Browse files Browse the repository at this point in the history
…bled and focus was moved while animating (angular#16418)

These changes incorporate angular#16297 and angular#16221 into the bottom sheet since it follows a similar focus capturing behavior to `MatDialogContainer`. They ensure that focus is on the bottom sheet container when the animation is over, because it could've moved while we were animating. It also has an extra check to ensure that we don't move focus unnecessarily if the consumer decided to move focus themselves somewhere within the bottom sheet.
  • Loading branch information
crisbeto authored and jelbourn committed Jul 19, 2019
1 parent 565bd7d commit 77e47ac
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/material/bottom-sheet/bottom-sheet-container.ts
Original file line number Diff line number Diff line change
Expand Up @@ -180,15 +180,27 @@ export class MatBottomSheetContainer extends BasePortalOutlet implements OnDestr
}
}


/** Moves the focus inside the focus trap. */
private _trapFocus() {
const element = this._elementRef.nativeElement;

if (!this._focusTrap) {
this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);
this._focusTrap = this._focusTrapFactory.create(element);
}

if (this.bottomSheetConfig.autoFocus) {
this._focusTrap.focusInitialElementWhenReady();
} else {
const activeElement = this._document.activeElement;

// Otherwise ensure that focus is on the container. It's possible that a different
// component tried to move focus while the open animation was running. See:
// https://github.com/angular/components/issues/16215. Note that we only want to do this
// if the focus isn't inside the bottom sheet already, because it's possible that the
// consumer turned off `autoFocus` in order to move focus themselves.
if (activeElement !== element && !element.contains(activeElement)) {
element.focus();
}
}
}

Expand Down

0 comments on commit 77e47ac

Please sign in to comment.