Skip to content

Commit d9fe6eb

Browse files
mejo-max-nextcloud
authored andcommitted
fix(sync): Apply document state from create request
Prevents possible race condition when steps from first sync request got applied before documentState from first push request (answer to SyncStep1) arrived. Signed-off-by: Jonas <jonas@freesources.org>
1 parent 282f262 commit d9fe6eb

File tree

2 files changed

+4
-7
lines changed

2 files changed

+4
-7
lines changed

src/components/Editor.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ import {
9696
import ReadonlyBar from './Menu/ReadonlyBar.vue'
9797
9898
import { logger } from '../helpers/logger.js'
99-
import { getDocumentState } from '../helpers/yjs.ts'
99+
import { applyDocumentState, getDocumentState } from '../helpers/yjs.ts'
100100
import { SyncService, ERROR_TYPE, IDLE_TIMEOUT } from './../services/SyncService.ts'
101101
import SessionApi from '../services/SessionApi.js'
102102
import createSyncServiceProvider from './../services/SyncServiceProvider.js'
@@ -556,7 +556,9 @@ export default {
556556
},
557557
558558
onLoaded({ document, documentSource, documentState }) {
559-
if (!documentState) {
559+
if (documentState) {
560+
applyDocumentState(this.$ydoc, documentState, this.$providers[0])
561+
} else {
560562
this.setInitialYjsState(documentSource, { isRichEditor: this.isRichEditor })
561563
}
562564

src/services/y-websocket.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -224,11 +224,6 @@ const setupWS = (provider) => {
224224
provider.emit('status', [{
225225
status: 'connected',
226226
}])
227-
// always send sync step 1 when connected
228-
const encoder = encoding.createEncoder()
229-
encoding.writeVarUint(encoder, messageSync)
230-
syncProtocol.writeSyncStep1(encoder, provider.doc)
231-
websocket.send(encoding.toUint8Array(encoder))
232227
// broadcast local awareness state
233228
if (provider.awareness.getLocalState() !== null) {
234229
const encoderAwarenessState = encoding.createEncoder()

0 commit comments

Comments
 (0)