From 0354f02842ff55420d2f09a6763f37864d1ca14e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Tue, 17 Nov 2020 21:38:15 +0100 Subject: [PATCH] add addMark command --- packages/core/src/commands/addMark.ts | 15 +++++++++++++++ packages/core/src/extensions/commands.ts | 5 +++++ 2 files changed, 20 insertions(+) create mode 100644 packages/core/src/commands/addMark.ts diff --git a/packages/core/src/commands/addMark.ts b/packages/core/src/commands/addMark.ts new file mode 100644 index 00000000..4770fcc0 --- /dev/null +++ b/packages/core/src/commands/addMark.ts @@ -0,0 +1,15 @@ +import { MarkType } from 'prosemirror-model' +import { Command } from '../types' +import getMarkType from '../utils/getMarkType' + +export default (typeOrName: string | MarkType, attributes?: {}): Command => ({ tr, state, dispatch }) => { + const { selection } = tr + const type = getMarkType(typeOrName, state.schema) + const { from, to } = selection + + if (dispatch) { + tr.addMark(from, to, type.create(attributes)) + } + + return true +} diff --git a/packages/core/src/extensions/commands.ts b/packages/core/src/extensions/commands.ts index ae0feba2..268d94ae 100644 --- a/packages/core/src/extensions/commands.ts +++ b/packages/core/src/extensions/commands.ts @@ -1,4 +1,5 @@ import { Extension } from '../Extension' +import addMark from '../commands/addMark' import blur from '../commands/blur' import clearContent from '../commands/clearContent' import command from '../commands/command' @@ -32,6 +33,10 @@ import wrapInList from '../commands/wrapInList' export const Commands = Extension.create({ addCommands() { return { + /** + * Add a mark. + */ + addMark, /** * Removes focus from the editor. */