Files
tiptap/packages/core/src/commands/toggleMark.ts
Philipp Kühn 9103172837 Merge branch 'main' into feature/new-highlight-extension
# Conflicts:
#	docs/src/docPages/api/extensions.md
#	docs/src/links.yaml
#	packages/core/src/extensions/toggleMark.ts
2020-11-05 21:27:20 +01:00

20 lines
655 B
TypeScript

import { toggleMark } from 'prosemirror-commands'
import { MarkType } from 'prosemirror-model'
import { Command } from '../Editor'
import getMarkType from '../utils/getMarkType'
import markIsActive from '../utils/markIsActive'
export default (typeOrName: string | MarkType, attrs?: {}): Command => ({ state, dispatch, commands }) => {
const type = getMarkType(typeOrName, state.schema)
const hasMarkWithDifferentAttributes = attrs
&& markIsActive(state, type)
&& !markIsActive(state, type, attrs)
if (attrs && hasMarkWithDifferentAttributes) {
return commands.updateMark(type, attrs)
}
return toggleMark(type)(state, dispatch)
}