Ensure DelayHide component disappears correctly #917
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.
A regression was introduced in #879 which causes the component to be displayed indefinitely even though the
hide
parameter istrue
and the timeout has passed.I added a tests that reproduces this scenario, where an update to the parent component will cause
getDerivedStateFromProps
to be called again, which will corrupt the internal state.There is a good blog post about this exact pitfall here: https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
@chandlerprall I'm not sure the solution presented here is the best. If you have anything more elegant I'm all ears!
fixes elastic/kibana#19785