Skip to content

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

Merged
annieyw merged 1 commit into
angular:masterfrom
jesscxu:remove-default-origin-expansion-panel-header-focus
Nov 3, 2020
Merged

feat(material/expansion): allow focus origin to be optional input in focus method#20912
annieyw merged 1 commit into
angular:masterfrom
jesscxu:remove-default-origin-expansion-panel-header-focus

Conversation

@jesscxu

@jesscxu jesscxu commented Oct 28, 2020

Copy link
Copy Markdown
Contributor

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
Copy Markdown
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
Copy Markdown
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 left a comment

Copy link
Copy Markdown
Contributor

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
Copy Markdown
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
Copy Markdown

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