From 77e30cad4aa4b5ec4c3f5b03dda70ecba004da95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Mon, 5 Nov 2018 20:53:51 +0100 Subject: [PATCH] add parent to nodeviews --- packages/tiptap/src/components/editor.js | 1 + packages/tiptap/src/utils/ComponentView.js | 3 +++ packages/tiptap/src/utils/initNodeViews.js | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/tiptap/src/components/editor.js b/packages/tiptap/src/components/editor.js index 6465d199..5124c550 100644 --- a/packages/tiptap/src/components/editor.js +++ b/packages/tiptap/src/components/editor.js @@ -219,6 +219,7 @@ export default { state: this.state, dispatchTransaction: this.dispatchTransaction, nodeViews: initNodeViews({ + parent: this, nodes: this.views, editable: this.editable, }), diff --git a/packages/tiptap/src/utils/ComponentView.js b/packages/tiptap/src/utils/ComponentView.js index a2ef0be0..d9bbab4a 100644 --- a/packages/tiptap/src/utils/ComponentView.js +++ b/packages/tiptap/src/utils/ComponentView.js @@ -2,12 +2,14 @@ import Vue from 'vue' export default class ComponentView { constructor(component, { + parent, node, view, getPos, decorations, editable, }) { + this.parent = parent this.component = component this.node = node this.view = view @@ -22,6 +24,7 @@ export default class ComponentView { createDOM() { const Component = Vue.extend(this.component) this.vm = new Component({ + parent: this.parent, propsData: { node: this.node, view: this.view, diff --git a/packages/tiptap/src/utils/initNodeViews.js b/packages/tiptap/src/utils/initNodeViews.js index 3942150e..0c2318a0 100644 --- a/packages/tiptap/src/utils/initNodeViews.js +++ b/packages/tiptap/src/utils/initNodeViews.js @@ -1,6 +1,6 @@ import ComponentView from './ComponentView' -export default function initNodeViews({ nodes, editable }) { +export default function initNodeViews({ parent, nodes, editable }) { const nodeViews = {} Object.keys(nodes).forEach(nodeName => { @@ -8,6 +8,7 @@ export default function initNodeViews({ nodes, editable }) { const component = nodes[nodeName] return new ComponentView(component, { + parent, node, view, getPos,