I've build an importer to import all the content from one language to another. It's working perfectly fine. The only problem is, that a single rich text field (not nested in an array or block) is not changing its value visibly before submitting/saving the changes. I've rebuild a collection and a synchronization component that is showing the issue. In my example I only want to synchronize a text and a richtext field with 2 field with the same type. I used two different approaches, once with the setValue function of useField and once with the dispatch function of useAllFields, here my Gist:
https://gist.github.com/MarvinVrdoljak/86ba68a6e32efe672f834fba7b4dd41dSo my question: is there any solution to avoid using the submit function, to get the same result? Thanks a lot.
(Payload Version 1.14.0)
Looks like the key of the editor is determined by
initialValue
(this is so it does not rerender when form state changes)
Could you try setting the initialValue in your dispatch?
Here is the relevant code:
https://github.com/payloadcms/payload/blob/master/src/admin/components/forms/field-types/RichText/RichText.tsx#L318-L323Cheers a lot for your reply. Works perfectly fine on the first synchronization, but if you change the content in the rich text once more (before saving) and try to synchronize the fields again, it's not doing anything.
I am not sure if I will have time to look into it more today. You could open an issue on github and we can check it out Monday, although I am not sure if there will be an easy solution since it has to do with setting slates internal state. But I would be glad to take a look!
Thanks a lot, will open a ticket then 🙂
@jarrod_not_jared Was looking into it again and I did a misktake yesterday. Seems to work like this. Thanks a lot for your help.
Star
Discord
online
Get help straight from the Payload team with an Enterprise License.