[4.x] Delay watch functions to avoid loading race condition #1005
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.
Depending on what order the code gets loaded in, these watch functions may be called before the variable exists. This throws an error and breaks all JS on the site.
For example, on a vanilla Rapidez installation this can happen with the
useCart
watch if you don't installrapidez/account
. Possibly something to do with howuseMask
imports it---it's not entirely clear how the imports end up getting resolved under different circumstances.Because we don't have exact control over when and how things get loaded in, the best solution I could find is to make the watch get executed later. This still works exactly as it should, but makes sure everything is loaded in before.
The one in
useUser
is probably unnecessary, but I've added it anyway to be safe.