-
-
Notifications
You must be signed in to change notification settings - Fork 327
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
[Autocomplete] Reset TomSelect when updating controller attributes #1505
Conversation
I also need this fix. What is the status here? |
55cc7a2
to
d14a526
Compare
📊 Packages dist files size differenceThanks for the PR! Here is the difference in size of the packages dist files between the base branch and the PR.
|
thank you to everyone that participated in the bug fix! |
Hey @pierredup, i'm reviving this PR, hoping it's still something you'd like to merge! How "ready-to-merge" are these changes? Is there anything i need to check in particular? Thank you! |
Hi @smnandre , there's nothing outstanding on this from my side, so I think it's ready to be merged |
@pierredup great, LGTM! Could you rebase and add an entry in the src/Autocomplete/CHANGELOG.md (2.23) ? |
2fbae82
to
9ec287f
Compare
9ec287f
to
d8fb3fb
Compare
Thanks for your patience! :) |
When using remote data for Autocomplete, the mutation observer is not started, so the select cannot be reset when some options change (E.G when limiting the options returned after selecting other options using extra_options from #1322).
Instead, we start the mutation observer when using remote data. When the observer runs and checks if the options have changes, we explicitly set the
areOptionsEquivalent
totrue
, since the page will just render an emptyselect
. We also check if any of thedata-autocomplete
attributes changes and forces a reset (E.G using extra_options, thedata-autocomplete-url
value can be different when using extra options, so we reset the select when this attribute changes).This fixes only one of the issues from #1500, I'll investigate the other issues and create separate PRs.