Editor: Fix "Attempt Recovery" error boundary handler #22396
Closed
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.
This pull request seeks to resolve an issue where "Attempt Recovery" (shown in the top-level error boundary) will never work correctly.
Status: In progress. The change in a27c055 fixes the issue. However, I'm not particularly confident this is the best solution.
The issue:
EditorProvider
skips most of its state initialization, since the state will have been preserved from before the error happens.EditorProvider
component unmounts (notably, theisReady
state).! isReady
state and never initialize out of it (source)The fix:
! isReady
to! isReady || recovery
, such that the editor renders in recovery modePossible alternatives:
isReady
altogetherisReady
when performing editor teardownisReady