KillerCodeMonkey / ngx-quill

Angular (>=2) components for the Quill Rich Text Editor
MIT License
1.79k stars 264 forks source link

quill content is not updated on insert from mobile keyboard hints #1886

Closed MxRmz closed 4 months ago

MxRmz commented 4 months ago

Hi there. Thanks a lot for this nice repo. I would like to tell tell you about an issue I faced after upgrade to qull 2.0. It happens when user inserts content from mobile keyboard (in particular SwiftKey) from hints. To insert this hint SwiftKey uses composition event. If editor is empty and user inserts a word from hint text in input appears, but quill contents is not updated. Even if user then start to type - quill will be still empty. ngModelChange, onEditorChange, onContentChange event are not fired in this case. How do I update quill content manually?

KillerCodeMonkey commented 4 months ago

Maybe the changes are not recognized as User Source

Can you try to Set "trackChanges" property to "all"?

Am 1. Juli 2024 15:56:45 MESZ schrieb Max Olkhovskyi @.***>:

Hi there. Thanks a lot for this nice repo. I would like to tell tell you about an issue I faced after upgrade to qull 2.0. It happens when user inserts content from mobile keyboard (in particular SwiftKey) from hints. To insert this hint SwiftKey uses composition event. If editor is empty and user inserts a word from hint text in input appears, but quill contents is not updated. Even if user then start to type - quill will be still empty. ngModelChange, onEditorChange, onContentChange event are not fired in this case. How do I update quill content manually?

-- Reply to this email directly or view it on GitHub: https://github.com/KillerCodeMonkey/ngx-quill/issues/1886 You are receiving this because you are subscribed to this thread.

Message ID: @.***>

MxRmz commented 4 months ago

yeah tried that. doesn't help

KillerCodeMonkey commented 4 months ago

Strange then I have no idea since I am just listening to the native quilljs Events to Update the model/control

Am 1. Juli 2024 16:11:02 MESZ schrieb Max Olkhovskyi @.***>:

yeah tried that. doesn't help

-- Reply to this email directly or view it on GitHub: https://github.com/KillerCodeMonkey/ngx-quill/issues/1886#issuecomment-2200259362 You are receiving this because you commented.

Message ID: @.***>

MxRmz commented 4 months ago

is there any method to update quill contents from own input field manually?

MxRmz commented 4 months ago

Strange then I have no idea since I am just listening to the native quilljs Events to Update the model/control Am 1. Juli 2024

Issue is absent if I try to reproduce it on quillJS official playground. In the same time it's present in ngx-quill demo So I may assume it's on ngx-quill side.

KillerCodeMonkey commented 4 months ago

If you like you can try to debug if the quill event listeners are executed inside ngx-quill.

I tried it on my mobile with gboard and Samsung galaxy keyboard without any issues.

Copy and pasted, used the autocorrecting features and word recommendations. Everything works there.

I tested it with my live Demo and the reactive form control example there.

KillerCodeMonkey commented 4 months ago

Tried it and it works

MxRmz commented 4 months ago

I'm with you about gboard and Samsung keyboard, everething is fine. But a lot of users have SwiftKey (Microsoft) as default keyboard on their smartphones, where both autocorrection and insert hinted word fails.

KillerCodeMonkey commented 4 months ago

As I wrote in my last comment. It works for me with swift keyboard now (I just forgot to mention that it works for me with swift as well ^^)

And I do not see any problem with ngx-quill here. There are no special handlings nor changes between the quill v1 and v2 migration that should cause this.

And if other keyboards work, I doubt I can do anything here.

MxRmz commented 4 months ago

It's pretty easy to reproduce. Steps:

  1. You have empty (!) editor
  2. Insert content

Here is example. First part is with SwiftKey keydoard. The second one is on Samsung keyboard 3x4. Both are using composition event so it fails. Video: https://github.com/KillerCodeMonkey/ngx-quill/assets/99099545/f34e8b28-1ac7-4037-b8b3-03aa391d0f6f

P.S. in old ngx-quill versions the bug was absent. We may check here for instance. https://stackblitz.com/edit/ngx-quill-demo?file=README.md

KillerCodeMonkey commented 4 months ago

I do not get it... Exactly this is what I did on my galaxy s23...

And it is working with both keyboards.

And as I said. I changed nothing in the event handlers or form control/model handling (as far as I remember)

You could try angular v17 with quill v2. Because the only really change is with v18 the usage of input signals.

The rest was untouched.

KillerCodeMonkey commented 4 months ago

But what I found is this quill issue

https://github.com/slab/quill/issues/4021#issuecomment-2049166695

That quill does not recognize changes or does not remove placeholder when using correcting or word hints until you write a whitespace.

And the comment states that there is a problem with those composition events

MxRmz commented 4 months ago

Thank you very much for your help. Special thanks for the prompt feedback.