Only replace system schema if it has been changed#24
Merged
Conversation
martin-schilling
approved these changes
Sep 27, 2020
Collaborator
martin-schilling
left a comment
There was a problem hiding this comment.
Looks good. The only thought that came to my mind is that it might make sense to use memoization here to prevent rerendering. Otherwise, any unrelated changes (that are not schema updates) will have the same effect. Quite hypothetical though 😄
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
In #22 I added a "Automatic Schema Reload" on window focus. It works great, but the forms get reset. Let's say you execute a query, switch to another tab and then back to the cockpit tab. The system schema is fetched again and replaced in the redux store. This causes the query form and result page to rerender, so your query result is gone.
To avoid the issue, I added a check if the system schema really changed and only than replace it. A more complicated solution (but probably better) would be to make a diff and only update the parts in the schema that have changed. I'll create a follow up for that.