From 2a21523d263c637f44658e95ccf14af0279bcffb Mon Sep 17 00:00:00 2001 From: Jonas <jonas@freesources.org> Date: Mon, 3 Jun 2024 17:50:50 +0200 Subject: [PATCH] fix(table): Fix readonly detection in vue components Signed-off-by: Jonas <jonas@freesources.org> --- src/nodes/Table/TableCellView.vue | 13 ++++++++++++- src/nodes/Table/TableHeaderView.vue | 13 ++++++++++++- src/nodes/Table/TableView.vue | 13 ++++++++++++- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/nodes/Table/TableCellView.vue b/src/nodes/Table/TableCellView.vue index 5e97e668a99..88a65f2b8a7 100644 --- a/src/nodes/Table/TableCellView.vue +++ b/src/nodes/Table/TableCellView.vue @@ -24,7 +24,7 @@ <NodeViewWrapper data-text-el="table-cell" as="td" :style="textAlign"> <div class="container"> <NodeViewContent class="content" /> - <NcActions v-if="editor.isEditable" + <NcActions v-if="isEditable" data-text-table-actions="row"> <NcActionButton data-text-table-action="add-row-before" close-after-click @@ -81,11 +81,22 @@ export default { required: true, }, }, + data() { + return { + isEditable: false, + } + }, computed: { textAlign() { return { 'text-align': this.node.attrs.textAlign } }, }, + beforeMount() { + this.isEditable = this.editor.isEditable + this.editor.on('update', ({ editor }) => { + this.isEditable = editor.isEditable + }) + }, methods: { deleteRow() { this.editor.chain() diff --git a/src/nodes/Table/TableHeaderView.vue b/src/nodes/Table/TableHeaderView.vue index 8209c2f7696..fb2d44f4b72 100644 --- a/src/nodes/Table/TableHeaderView.vue +++ b/src/nodes/Table/TableHeaderView.vue @@ -25,7 +25,7 @@ <NodeViewWrapper data-text-el="table-header" as="th" :style="textAlign"> <div> <NodeViewContent class="content" /> - <NcActions v-if="editor.isEditable" + <NcActions v-if="isEditable" ref="menu" data-text-table-actions="header"> <NcActionButtonGroup> @@ -130,11 +130,22 @@ export default { required: true, }, }, + data() { + return { + isEditable: false, + } + }, computed: { textAlign() { return { 'text-align': this.node.attrs.textAlign } }, }, + beforeMount() { + this.isEditable = this.editor.isEditable + this.editor.on('update', ({ editor }) => { + this.isEditable = editor.isEditable + }) + }, methods: { alignCenter() { this.align('center') diff --git a/src/nodes/Table/TableView.vue b/src/nodes/Table/TableView.vue index 4e2167e2ae5..926e06d2b29 100644 --- a/src/nodes/Table/TableView.vue +++ b/src/nodes/Table/TableView.vue @@ -22,7 +22,7 @@ <template> <NodeViewWrapper data-text-el="table-view" class="table-wrapper"> - <NcActions v-if="editor.isEditable" + <NcActions v-if="isEditable" force-menu data-text-table-actions="settings" class="table-settings"> @@ -68,6 +68,17 @@ export default { required: true, }, }, + data() { + return { + isEditable: false, + } + }, + beforeMount() { + this.isEditable = this.editor.isEditable + this.editor.on('update', ({ editor }) => { + this.isEditable = editor.isEditable + }) + }, } </script>