substance
Version:
Substance is a JavaScript library for web-based content editing. It provides building blocks for realizing custom text editors and web-based publishing system. It is developed to power our online editing platform [Substance](http://substance.io).
23 lines (19 loc) • 690 B
JavaScript
import { InsertInlineNodeCommand } from '../editor'
import { $$ } from '../dom'
import CitationModal from './CitationModal'
export default class CreateCitationCommand extends InsertInlineNodeCommand {
getType () {
return 'cite'
}
execute (params, context) {
const editorSession = context.editorSession
const document = editorSession.getDocument()
editorSession.getRootComponent().send('requestModal', () => {
return $$(CitationModal, { mode: 'create', document })
}).then(modal => {
if (!modal) return
const data = { references: modal.state.selectedReferences.map(ref => ref.id) }
context.api.insertInlineNode('cite', data)
})
}
}