Skip to content

Commit d090872

Browse files
Don't re-apply own changes
1 parent 8e74c6b commit d090872

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

packages/jbrowse-plugin-apollo/src/ApolloInternetAccount/model.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,7 @@ const stateModelFactory = (configSchema: ApolloInternetAccountConfigModel) => {
338338
'LastChangeSequence',
339339
String(message.changeSequence),
340340
)
341+
console.log({ message, localSessionId })
341342
if (message.userSessionId === localSessionId) {
342343
return // we did this change, no need to apply it again
343344
}

packages/jbrowse-plugin-apollo/src/BackendDrivers/CollaborationServerDriver.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
import {
1919
type ChangeMessage,
2020
ValidationResultSet,
21+
makeUserSessionId,
2122
} from '@apollo-annotation/shared'
2223
import { getConf } from '@jbrowse/core/configuration'
2324
import { type BaseInternetAccountModel } from '@jbrowse/core/pluggableElementTypes'
@@ -154,6 +155,10 @@ export class CollaborationServerDriver extends BackendDriver {
154155
) {
155156
const { socket } = internetAccount
156157
const token = internetAccount.retrieveToken()
158+
if (!token) {
159+
return
160+
}
161+
const localSessionId = makeUserSessionId(token)
157162
const channel = `${assembly}-${refSeq}`
158163
const changeManager = new ChangeManager(this.clientStore)
159164

@@ -163,11 +168,12 @@ export class CollaborationServerDriver extends BackendDriver {
163168
internetAccount.setLastChangeSequenceNumber(
164169
Number(message.changeSequence),
165170
)
166-
if (message.userSessionId !== token && message.channel === channel) {
167-
const change = Change.fromJSON(message.changeInfo)
168-
if (isFeatureChange(change) && this.haveDataForChange(change)) {
169-
await changeManager.submit(change, { submitToBackend: false })
170-
}
171+
if (message.userSessionId === localSessionId) {
172+
return // we did this change, no need to apply it again
173+
}
174+
const change = Change.fromJSON(message.changeInfo)
175+
if (isFeatureChange(change) && this.haveDataForChange(change)) {
176+
await changeManager.submit(change, { submitToBackend: false })
171177
}
172178
})
173179
}

0 commit comments

Comments
 (0)