[desk-tool] Clean up pane deriving flow slightly #1000
Merged
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.
We were using
shouldComponentUpdate
for side effects, which is obviously not pretty.This changes to using
componentWillReceiveProps
which isn't really all that much better, but at least it reads better.In addition, we now prevent re-rendering the desk tool when the pane deriving is about to be performed - this prevents a "phantom" re-render where the
keys
prop would be updated with the new keys from the URL, but thepanes
would be left with the old panes. This is very confusing when debugging, so it feels like a step forward.The real solution here is probably to have the state router be observable in some way, so we may subscribe to changes on it and update the state without relying on being passed new props.