[core] Isolate selectors called without useGridSelector
#3774
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.
A follow up on #3663
In #3663 we changed to isolate the selectors called with
useGridSelector
. In this PR I'm isolating all the remaining selectors, which include those called passing the state manually. For these, now we need to also pass the instance ID, fromapiRef.current.instanceId
. If not passed, there's a warning, but the grid works normally.I also fixed the performance regression by using a
Map
instead of an object to cache the selectors. The instance cache is still an object because it will only be a problem if there's dozens of instances in the same page, which is a edge case.