From a7a1e4affc814a70c203e2763df83a40c9f100f7 Mon Sep 17 00:00:00 2001 From: roschaefer Date: Sat, 14 Dec 2019 01:33:22 +0100 Subject: [PATCH] fix: editor not visible in server-side-rendering This is fixing a bug where sometimes the editor would not get displayed until you click into the title text fields. This commit also removes some obscure optimizations. I'm really annoyed by the cruft that we still carry around until this very day. Every single line of untested code, which you left because you thought: "Well sure this is going to improve performance!" is going to bite you. --- .../ContributionForm/ContributionForm.vue | 32 +++++++++---------- webapp/components/Editor/Editor.vue | 31 ++---------------- webapp/package.json | 1 - webapp/yarn.lock | 5 --- 4 files changed, 17 insertions(+), 52 deletions(-) diff --git a/webapp/components/ContributionForm/ContributionForm.vue b/webapp/components/ContributionForm/ContributionForm.vue index ec9fe9616..eeba47b72 100644 --- a/webapp/components/ContributionForm/ContributionForm.vue +++ b/webapp/components/ContributionForm/ContributionForm.vue @@ -38,23 +38,21 @@ {{ form.title.length }}/{{ formSchema.title.max }} - - - - - {{ contentLength }} - - - - {{ contentLength }} - - - + + + + {{ contentLength }} + + + + {{ contentLength }} + + diff --git a/webapp/components/Editor/Editor.vue b/webapp/components/Editor/Editor.vue index 234d94d2d..41ec986d7 100644 --- a/webapp/components/Editor/Editor.vue +++ b/webapp/components/Editor/Editor.vue @@ -24,7 +24,6 @@ import { Editor, EditorContent } from 'tiptap' import { History } from 'tiptap-extensions' import linkify from 'linkify-it' -import stringHash from 'string-hash' import { replace, build } from 'xregexp/xregexp-all.js' import * as key from '../../constants/keycodes' @@ -107,29 +106,7 @@ export default { return extensions }, }, - watch: { - value: { - immediate: true, - handler: function(content, old) { - const contentHash = stringHash(content) - if (!content || contentHash === this.lastValueHash) { - return - } - this.lastValueHash = contentHash - this.$nextTick(() => this.editor.setContent(content)) - }, - }, - placeholder: { - immediate: true, - handler: function(val) { - if (!val || !this.editor) { - return - } - this.editor.extensions.options.placeholder.emptyNodeText = val - }, - }, - }, - created() { + mounted() { this.editor = new Editor({ content: this.value || '', doc: this.doc, @@ -247,11 +224,7 @@ export default { }, onUpdate(e) { const content = e.getHTML() - const contentHash = stringHash(content) - if (contentHash !== this.lastValueHash) { - this.lastValueHash = contentHash - this.$emit('input', content) - } + this.$emit('input', content) }, toggleLinkInput(attrs, element) { if (!this.isLinkInputActive && attrs && element) { diff --git a/webapp/package.json b/webapp/package.json index 250cb52c6..b0e817582 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -80,7 +80,6 @@ "nuxt-dropzone": "^1.0.4", "nuxt-env": "~0.1.0", "stack-utils": "^1.0.2", - "string-hash": "^1.1.3", "tippy.js": "^4.3.5", "tiptap": "~1.26.3", "tiptap-extensions": "~1.28.5", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index e5e12297b..986ed769e 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -15052,11 +15052,6 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= -string-hash@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= - string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed"