Skip to content

feat(material/expansion): allow focus origin to be optional input in focus method #20912

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

jesscxu
Copy link
Contributor

@jesscxu jesscxu commented Oct 28, 2020

WHAT: For Angular Material components that have a focus() method, allow for the origin param to be optional and remove the default origin value.

WHY: For cases where the focus() method is called and the origin is already defined, we don’t want to override the origin using focusVia to always be some default value. In many cases, we want to leave the origin unchanged, but if there are cases that need the origin to be updated, allow for this with an optional origin param.

@jesscxu jesscxu requested a review from jelbourn as a code owner October 28, 2020 20:31
@google-cla google-cla bot added the cla: yes PR author has agreed to Google's Contributor License Agreement label Oct 28, 2020
const header = fixture.debugElement.query(By.css('mat-expansion-panel-header'))!;
const headerInstance = header.componentInstance;

headerInstance.focus('mouse');
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't the best test in my opinion. I attempted to focus the button with origin mouse but this requires making this button a mat-button in the component template below.

    const button = fixture.debugElement.query(By.css('button'))!;
    const buttonInstance = button.componentInstance as MatButton;

    buttonInstance.focus('mouse');

This requires importing MatButton as well, which I was having trouble doing and was not sure if we should avoid importing other modules. If this is a better, however, can change it to this approach (assuming it works).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the way you have it here is fine

Copy link
Contributor

@mmalerba mmalerba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

const header = fixture.debugElement.query(By.css('mat-expansion-panel-header'))!;
const headerInstance = header.componentInstance;

headerInstance.focus('mouse');
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the way you have it here is fine

@mmalerba mmalerba added action: merge The PR is ready for merge by the caretaker target: minor This PR is targeted for the next minor release G This is is related to a Google internal issue labels Oct 31, 2020
@annieyw annieyw merged commit ea2f29d into angular:master Nov 3, 2020
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Dec 4, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
action: merge The PR is ready for merge by the caretaker cla: yes PR author has agreed to Google's Contributor License Agreement G This is is related to a Google internal issue target: minor This PR is targeted for the next minor release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants