Fix dom_id
collisions by using a UUID rather than an autoincremented index
#438
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.
This PR ensures that all DOM nodes ids are unique when multiple instances of a component co-exist on the same page.
It also allows fragment caching of generated HTML (since the unicity does not depend on other components on the page).
Solves #437
A few thoughts following discussion in #437 (numbered, to ease followups):
dom_id
is not only used in tests, but also to attach React components to DOM nodes (you're probably usingReactDOM.render
or equivalent)/\d+/
...id
parameter forreact_component
(in our case anActiveRecord
id, but it could as well be a UUID) and then wraps the call toreact_component
in acache(["v1", I18n.locale, some_dependencies...])
blockid
forreact_component
calls that have a display-only purpose?)I hope this helps.
This change is