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
fix(cdk/listbox): error with multiple preselected values #25621
fix(cdk/listbox): error with multiple preselected values #25621
Conversation
The CDK listbox had a subscription to its model changes in the constructor which fires immediately due to the `startsWith` and which was attempting to sort the selected values when in multiple selection mode. The problem is that the options aren't available until `ngAfterContentInit` which was causing an error when we tried to do the sorting. These changes move the change event subscription to `ngAfterContentInit` so that options are guaranteed to be defined when it fires. Fixes angular#25611.
|
||
it('should respect user given tabindex for focusable elements', async () => { | ||
it('should respect user given tabindex for focusable elements', waitForAsync(async () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added waitForAsync
to all of these tests, because any errors during the test weren't being picked up by Jasmine. This threw me off for a while since I could see that an error was being thrown, but my test wasn't failing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
The CDK listbox had a subscription to its model changes in the constructor which fires immediately due to the `startsWith` and which was attempting to sort the selected values when in multiple selection mode. The problem is that the options aren't available until `ngAfterContentInit` which was causing an error when we tried to do the sorting. These changes move the change event subscription to `ngAfterContentInit` so that options are guaranteed to be defined when it fires. Fixes #25611. (cherry picked from commit 1b0265c)
The CDK listbox had a subscription to its model changes in the constructor which fires immediately due to the `startsWith` and which was attempting to sort the selected values when in multiple selection mode. The problem is that the options aren't available until `ngAfterContentInit` which was causing an error when we tried to do the sorting. These changes move the change event subscription to `ngAfterContentInit` so that options are guaranteed to be defined when it fires. Fixes angular#25611.
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@angular/cdk](https://github.com/angular/components) | dependencies | patch | [`14.2.1` -> `14.2.2`](https://renovatebot.com/diffs/npm/@angular%2fcdk/14.2.1/14.2.2) | | [@angular/material](https://github.com/angular/components) | dependencies | patch | [`14.2.1` -> `14.2.2`](https://renovatebot.com/diffs/npm/@angular%2fmaterial/14.2.1/14.2.2) | --- ### Release Notes <details> <summary>angular/components</summary> ### [`v14.2.2`](https://github.com/angular/components/blob/HEAD/CHANGELOG.md#​1422-cytoplasm-salmon-2022-09-14) [Compare Source](angular/components@14.2.1...14.2.2) ##### cdk | Commit | Type | Description | | -- | -- | -- | | [6275f9d41f](angular/components@6275f9d) | fix | **a11y:** account for Windows 11 high contrast themes in detector ([#​25624](angular/components#25624)) | | [eb5f79bb7b](angular/components@eb5f79b) | fix | **listbox:** error with multiple preselected values ([#​25621](angular/components#25621)) | | [65af24ee53](angular/components@65af24e) | fix | **menu:** don't prevent default enter and space actions ([#​25591](angular/components#25591)) | ##### material | Commit | Type | Description | | -- | -- | -- | | [b3e35f3be4](angular/components@b3e35f3) | fix | **datepicker:** restore focus after closing animation ([#​25567](angular/components#25567)) | #### Special Thanks Kristiyan Kostadinov and Paul Gschwendtner <!-- CHANGELOG SPLIT MARKER --> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xOTUuMyIsInVwZGF0ZWRJblZlciI6IjMyLjE5Ni4wIn0=--> Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1547 Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
The CDK listbox had a subscription to its model changes in the constructor which fires immediately due to the
startsWith
and which was attempting to sort the selected values when in multiple selection mode. The problem is that the options aren't available untilngAfterContentInit
which was causing an error when we tried to do the sorting.These changes move the change event subscription to
ngAfterContentInit
so that options are guaranteed to be defined when it fires.Fixes #25611.