diff --git a/app/components/SimpleEditor/elements/note/EditNoteTool.js b/app/components/SimpleEditor/elements/note/EditNoteTool.js deleted file mode 100644 index 4ace0475e5e975f4f555c83b7567dd802184551a..0000000000000000000000000000000000000000 --- a/app/components/SimpleEditor/elements/note/EditNoteTool.js +++ /dev/null @@ -1,92 +0,0 @@ -import { each, includes, keys } from 'lodash' -import { - documentHelpers, - Tool -} from 'substance' - -class EditNoteTool extends Tool { - - render ($$) { - const selected = this.getSelection() - const provider = this.getProvider() - - let el = $$('div').addClass('sc-edit-note-tool') - - if (!selected.node) return el - - provider.config.miniEditorContext.editor.emit('noteSelected', 'paragraph-71bf75436a5f9b56700064c6ee2116ab') - return el - } - - didMount () { - this.context.editorSession.onUpdate('', this.disableTools, this) - } - - disableTools () { - const selected = this.getSelection() - if (!selected.node) return - const commandStates = this.context.commandManager.commandStates - each(keys(commandStates), (key) => { - const allowed = ['comment', 'redo', 'save', 'switch-text-type', 'undo', 'note'] - if (!includes(allowed, key)) commandStates[key].disabled = true - }) - this.rerender() - } - - getSelection () { - // TODO -- write cleaner - const surface = this.context.surfaceManager.getFocusedSurface() - if (!surface) return {} - - const session = this.context.editorSession - const sel = session.getSelection() - - const notes = documentHelpers.getPropertyAnnotationsForSelection( - session.getDocument(), - sel, - { type: 'note' } - ) - - const note = notes[0] - let show = false - - if (typeof note !== 'undefined') { - if ((sel.start.offset === note.start.offset && - sel.end.offset === note.end.offset)) { - show = true - } - } - - // disable when larger selection that just includes a note as well - // const selectionLength = (sel.end.offset - sel.start.offset === 1) - // if (sel.end.offset - sel.) - - if (show) { - return { - node: note - } - } else { - return { - node: null - } - } - } - - getProvider () { - return this.context.notesProvider - } - - getSurface () { - const surfaceManager = this.context.surfaceManager - return surfaceManager.getFocusedSurface() - } - - isEditorReadOnly () { - const surface = this.getSurface() - return surface.isReadOnlyMode() - } -} - -EditNoteTool.type = 'edit-note' - -export default EditNoteTool diff --git a/app/components/SimpleEditor/panes/Notes/Notes.js b/app/components/SimpleEditor/panes/Notes/Notes.js index 14bdcaf5f918faa0c1dd7b87e09872697724a93c..2bd2fc51b151812f96594fee85ffd85becdba213 100644 --- a/app/components/SimpleEditor/panes/Notes/Notes.js +++ b/app/components/SimpleEditor/panes/Notes/Notes.js @@ -92,22 +92,22 @@ class Notes extends Component { saveNotes (source) { const provider = this.getProvider() + const surface = this.getSurface() // For some reason the first character is not in the annotation so it is not getting saved // so we rerender the Surface - provider.config.miniEditorContext.surfaceManager.getSurface('mini').rerender() + surface.rerender() const notes = provider.computeEntries() - let self = this forEach(notes.main, function (mainNote) { forEach(notes.mini, function (miniNote) { if (miniNote.parentNoteId === mainNote.id) { - self.context.editorSession.transaction(function (tx, args) { + this.context.editorSession.transaction(function (tx, args) { const path = [mainNote.id, 'note-content'] tx.set(path, miniNote.content) }) } - }) - }) + }.bind(this)) + }.bind(this)) return new Promise(function (resolve, reject) { resolve() }) @@ -115,6 +115,12 @@ class Notes extends Component { getProvider () { return this.context.notesProvider } + + getSurface () { + const provider = this.getProvider() + return provider.config.miniEditorContext.surfaceManager.getSurface('mini') + } + getParentProps () { return { comments: this.context.commentsProvider.config.comments, @@ -130,7 +136,6 @@ class Notes extends Component { onNotesUpdated (change) { const notesProvider = this.getProvider() - notesProvider.config.miniEditorContext.surfaceManager.getSurface('mini').rerender() notesProvider.handleDocumentChange(change) // this.el.el.style.height = '95px' } diff --git a/app/components/SimpleEditor/panes/Notes/NotesProvider.js b/app/components/SimpleEditor/panes/Notes/NotesProvider.js index 13e37e2b18939fd6c628d61eb47c846836f3eeb1..5cb58dff524417776865a2f8b5ffcc88f7b24226 100644 --- a/app/components/SimpleEditor/panes/Notes/NotesProvider.js +++ b/app/components/SimpleEditor/panes/Notes/NotesProvider.js @@ -101,8 +101,7 @@ class NotesProvider extends TOCProvider { createIsolatedNote (note) { const notes = this.computeEntries() - const containerId = this.getMiniContainerId() - let surface = this.config.miniEditorContext.surfaceManager.getSurface(containerId) + let surface = this.getSurface() if (notes.mini) { let container = surface.getContainer() @@ -116,14 +115,6 @@ class NotesProvider extends TOCProvider { } }) } - - // else { - // surface.createText() - // this.config.miniEditorSession.transaction(function (tx) { - // let nodeData = this.createNodeData(note) - // tx.insertBlockNode(nodeData) - // }.bind(this)) - // } } findDeletedNote (entries) { @@ -147,8 +138,7 @@ class NotesProvider extends TOCProvider { } removeIsolatedNote (position, note) { - const containerId = this.getMiniContainerId() - let surface = this.config.miniEditorContext.surfaceManager.getSurface(containerId) + let surface = this.getSurface() let container = surface.getContainer() this.config.miniEditorSession.transaction(function (tx) { tx.update(container.getContentPath(), { type: 'delete', pos: position }) @@ -159,6 +149,11 @@ class NotesProvider extends TOCProvider { getMiniContainerId () { return this.config.miniEditorContext.editor.props.containerId } + + getSurface () { + const containerId = this.getMiniContainerId() + return this.config.miniEditorContext.surfaceManager.getSurface(containerId) + } } NotesProvider.tocTypes = ['note']