annotations: update comments

This commit is contained in:
Hans Pagel
2021-02-12 10:36:58 +01:00
parent e3a34f78b8
commit 8b5dfe7c1c
2 changed files with 10 additions and 3 deletions

View File

@@ -89,7 +89,7 @@ export class AnnotationState {
} }
apply(transaction: Transaction, state: EditorState) { apply(transaction: Transaction, state: EditorState) {
const ystate = ySyncPluginKey.getState(state) // Add/Remove annotations
const action = transaction.getMeta(AnnotationPluginKey) as AddAnnotationAction | DeleteAnnotationAction const action = transaction.getMeta(AnnotationPluginKey) as AddAnnotationAction | DeleteAnnotationAction
if (action && action.type) { if (action && action.type) {
@@ -104,13 +104,16 @@ export class AnnotationState {
return this return this
} }
// Use Y.js to update positions
const ystate = ySyncPluginKey.getState(state)
if (ystate.isChangeOrigin) { if (ystate.isChangeOrigin) {
this.updateDecorations(state) this.updateDecorations(state)
return this return this
} }
// Apply ProseMirror mapping // Use ProseMirror to update positions
this.decorations = this.decorations.map(transaction.mapping, transaction.doc) this.decorations = this.decorations.map(transaction.mapping, transaction.doc)
return this return this

View File

@@ -4,6 +4,7 @@ import { AnnotationItem } from './AnnotationItem'
import { AnnotationPlugin, AnnotationPluginKey } from './AnnotationPlugin' import { AnnotationPlugin, AnnotationPluginKey } from './AnnotationPlugin'
function randomId() { function randomId() {
// TODO: That seems … to simple.
return Math.floor(Math.random() * 0xffffffff) return Math.floor(Math.random() * 0xffffffff)
} }
@@ -23,13 +24,16 @@ export interface AnnotationOptions {
HTMLAttributes: { HTMLAttributes: {
[key: string]: any [key: string]: any
}, },
/**
* An event listener which receives annotations for the current selection.
*/
onUpdate: (items: [any?]) => {}, onUpdate: (items: [any?]) => {},
/** /**
* An initialized Y.js document. * An initialized Y.js document.
*/ */
document: Y.Doc | null, document: Y.Doc | null,
/** /**
* Name of a Y.js fragment, can be changed to sync multiple fields with one Y.js document. * Name of a Y.js map, can be changed to sync multiple fields with one Y.js document.
*/ */
field: string, field: string,
/** /**