fix: 🐛 #17051 fix dynamic tab display #17235
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
fixes #17051
Tabview could handle dynamic tabs properly in V17 so this fix attempts to achieve the same behavior.
I had one edge case though that I couldn't confidently address. When
selectedTab
is set to something like 20meaning the selected tab is not visible on the page load, then I filter, because of the inkbar's CSS transition the layout is still in flux, and then in the
updateButtonState()
this.isNextButtonEnabled.set(_list.offsetWidth >= offsetWidth && scrollLeft !== scrollWidth - width);
the
scrollWidth
calculations aren't accurate until the inkbar settles. I guess. So it would incorrectly display the NextButton.to overcome I came up with this:
_inkbar.addEventListener('transitionend', () => { this.updateButtonState(); }, { once: true } );
It listens for the inkbar's transition to complete before making the final button state update