donotebase / quasar-tiptap

A modern WYSIWYG rich-text editor built on top of tiptap and Quasar for Vue.js.
https://donotebase.github.io/quasar-tiptap
MIT License
314 stars 61 forks source link

Regular space characters are being stripped from text input #29

Closed viewfromthesky closed 4 years ago

viewfromthesky commented 4 years ago

Tested using quasar-tiptap 1.4.4 (tiptap 1.27.1/tiptap-extensions 1.29.1) and then 1.5.0 (tiptap 1.29.6/tiptap-extensions 1.32.5). Discovered as a bug that was only replicable on Firefox, but exists due to a difference in how Chrome and Firefox handle spacebar input. Chrome will input a non-breaking space, but Firefox will input a regular space character.

At the end of a string (your current input), any regular space characters that exist will be stripped as the next character is typed. When trying to paste a single space character at the end of a line, it will not commit in either browser. This behaviour is also replicable in the demo page you provide.

mekery commented 4 years ago

:tada: This issue has been resolved in version 1.5.1 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

viewfromthesky commented 4 years ago

I don't believe this release actually has done it; the commit shows you added a new package and changed the white-space setup, but the HTML is still being trimmed so it's still not possible to add spaces at the end of a line. Specifically this is the output from getHTML(), as used in the example here:

  methods: {
    onUpdate ({ getJSON, getHTML }) {
      this.json = getJSON()
      this.html = getHTML()
      console.log('html', this.html)
    }
  }

If onUpdate() is called, it is normally called twice but, if you input a space character, it is called three times; once while returning the content with your space character and then another two more times without it.

mekery commented 4 years ago

I don't believe this release actually has done it; the commit shows you added a new package and changed the white-space setup, but the HTML is still being trimmed so it's still not possible to add spaces at the end of a line. Specifically this is the output from getHTML(), as used in the example here:

  methods: {
    onUpdate ({ getJSON, getHTML }) {
      this.json = getJSON()
      this.html = getHTML()
      console.log('html', this.html)
    }
  }

If onUpdate() is called, it is normally called twice but, if you input a space character, it is called three times; once while returning the content with your space character and then another two more times without it.

Just realized that you replay after I closed this issue. Would you try the latest release (1.7.0), I tested it and the space works as normal.