Real-Time Collaboration: Update sync provider event name and modal handling #74904
+19
−12
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.
What?
Improves sync connection state handling added in #74075 by fixing event name conflicts and ensuring the disconnection modal displays in all disconnect scenarios.
Why?
Two issues were discovered when integrating with the WebSocket provider - Automattic/real-time-collaboration#145:
Event name conflicts: The WebSocket provider has a built-in
'status'event that conflicts with our sync connection status event. These default WebSocket events don't include custom fields like'error', causing issues when our customSyncConnectionStateevents overlap with them.Hidden disconnections: The sync connection modal only appeared when
connectionState.errorexisted. This meant users could be disconnected without seeing any indication if the disconnection didn't include a specific error object, leading to confusion about why editing was disabled.How?
'status'to'sync-connection-status'to avoid conflicts with WebSocket provider eventsstatus !== 'disconnected'instead of checking for error presence