Prevent Slate errors by unifying the comment popups. #4804
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.
Problem:
When adding a comment, an exception is thrown from Slate when confirming the comment contents.
Cause:
In the
blur
handler ofReactEditor
inreact-slate
, there's a lookup which attempts to find the underling DOM node of the text editor in question. For whatever reason (potentially related to the weakmap it uses under the hood of this) it is unable to match the editor and then throws an exception as a result.Fix:
Slightly bizarrely the solution was to not have the
Composer
component be unmounted which has been achieved by unifying the comment handling so that new and existing threads are handled by the same component.Commit Details:
NewCommentPopup
component.CommentThread
to handle a null forthread
.getLiveblocksEditorElement
andtriggerAutoFocus
utility callbacks.triggerAutoFocus
toonSubmitComment
so that creating a new thread auto focuses the new thread edit field.