From 18c5164af97897d60e94f384f0db1ee10f8cfc85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Mon, 30 Mar 2020 00:25:14 +0200 Subject: [PATCH] add getMarkAttrs --- .../tiptap-core/src/utils/getMarkAttrs.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 packages/tiptap-core/src/utils/getMarkAttrs.ts diff --git a/packages/tiptap-core/src/utils/getMarkAttrs.ts b/packages/tiptap-core/src/utils/getMarkAttrs.ts new file mode 100644 index 00000000..3dd7ae8f --- /dev/null +++ b/packages/tiptap-core/src/utils/getMarkAttrs.ts @@ -0,0 +1,19 @@ +import { EditorState } from 'prosemirror-state' +import { Mark, MarkType } from 'prosemirror-model' + +export default function getMarkAttrs(state: EditorState, type: MarkType) { + const { from, to } = state.selection + let marks: Mark[] = [] + + state.doc.nodesBetween(from, to, node => { + marks = [...marks, ...node.marks] + }) + + const mark = marks.find(markItem => markItem.type.name === type.name) + + if (mark) { + return mark.attrs + } + + return {} +}