Directly depend on global variables store in expression stores #1084
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.
I don't like having to do this, but we were already injecting this instance into every ExpressionStore through
Variables.createExpression
. (See former line 590 in ExpressionStore.tsx)Unfortunately, undoing an operation that deletes an ExpressionStore (through deleting a waypoint, constraint, etc) does not use
createExpression
, so restored ExpressionStores did not get the injection. This worked in most cases because the Variables instance was injected two different ways, but only when the store was created after the Variables instance was created. In short, the existing system is fragile and puts annoying constraints on initialization order just to avoid a direct import as a way to access a global constant.