-
Notifications
You must be signed in to change notification settings - Fork 13.5k
bug: segment does not set active button when dynamically changing options in angular #29414
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
bug: segment does not set active button when dynamically changing options in angular #29414
Comments
Thank you for this issue! I was able to confirm this issue does not reproduce in the isolated web components, but occurs when consumed in Angular. We might be able to use |
Here is a dev-build: Thanks! |
This Bug also appears on |
@sean-perkins Great! And thanks for the quick reply ⚡ I can confirm this fix works in my scenario as well 👌🏻 I've updated the Stackblitz reproduction example: https://stackblitz.com/edit/angular-elmzeu |
…ms (#29418) Issue number: resolves #29414 --------- <!-- Please do not submit updates to dependencies unless it fixes an issue. --> <!-- Please try to limit your pull request to one type (bugfix, feature, etc). Submit multiple pull requests if needed. --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying. --> In Angular when the segment buttons are dynamically rendered, the segment will not set the active visual state for the selected segment after the re-render. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - In Angular the segment will set the active item visually when the items are dynamically changed Previously this PR: #28837 aimed to resolve #28816. I have confirmed that the modified approach in the dev-build fixes #29414 and #28816 and the previous change is no longer needed. ## Does this introduce a breaking change? - [ ] Yes - [x] No <!-- If this introduces a breaking change: 1. Describe the impact and migration path for existing applications below. 2. Update the BREAKING.md file with the breaking change. 3. Add "BREAKING CHANGE: [...]" to the commit description when merging. See https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer for more information. --> ## Other information <!-- Any other information that is important to this PR such as screenshots of how the component looks before and after the change. --> Dev-build: `8.0.2-dev.11714411675.10f48160`
Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Ionic, please create a new issue and ensure the template is fully filled out. |
Prerequisites
Ionic Framework Version
v7.x
Current Behavior
When updating the nested segment buttons of the Segment control the active segment button looses it's checked state even when the value matches the value of the containing Segment control.
The issue is similar to #28816 but for segment-button, i.e. the value changes after
connectedCallback
is fired but before any Stencil Watchers are configured. As a result, thevalue
property watcher does not fire which causesupdateState
not to be called.The fix in #28837 only fixes the problem on initial rendering, but not on subsequent updates to the nested segment buttons.
Expected Behavior
The active segment button should be highlighted when it's
value
matches thevalue
of it's containing segment control - as was the case before standalone components.Steps to Reproduce
value
matches the Segment control'svalue
Code Reproduction URL
https://stackblitz.com/edit/angular-elmzeu
Ionic Info
Ionic:
Ionic CLI : 5.4.16
Utility:
cordova-res : not installed
native-run (update available: 2.0.1) : 1.7.4
System:
NodeJS : v20.11.0
npm : 10.2.4
OS : macOS Unknown
Additional Information
In the Stackblitz reproduction example the nested segment buttons are updated with an additional button, but keeping same value for the first 2 buttons - the problem is the same though when rendering nested buttons each with a new value while updating the
value
of the Segment control at the same time to match one of the newly rendered buttons.The text was updated successfully, but these errors were encountered: