fix: flush pending changesets on actual reconnect, not just initial connect

setUpSocket() only runs during initialization. Move handleUserChanges()
to the reconnect code path so pending edits are flushed when the
connection is re-established.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
John McLear 2026-04-06 10:45:25 +01:00
parent 724c13977e
commit 22fc2b0ad4

View File

@ -152,7 +152,6 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
const setUpSocket = () => {
setChannelState('CONNECTED');
doDeferredActions();
handleUserChanges();
initialStartConnectTime = Date.now();
};
@ -357,6 +356,11 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad)
if (newChannelState !== channelState) {
channelState = newChannelState;
callbacks.onChannelStateChange(channelState, moreInfo);
if (channelState === 'CONNECTED') {
// Flush any pending user changes whenever we become connected,
// including after a reconnect (not just the initial connection).
handleUserChanges();
}
}
};