stephane-klein / backlog

My public backlog
29 stars 1 forks source link

Je souhaite essayer d'implémenter un formulaire qui se synchronise en temps réel #274

Open stephane-klein opened 11 months ago

stephane-klein commented 11 months ago

Je souhaite essayer d'implémenter un formulaire qui se synchronise en temps réel. Ce formulaire doit contenir un champ titre, un champ select et un champ text multiline.

Implémentation basée sur :

stephane-klein commented 11 months ago

Nom du repository : poc-svelte-yjs-form

stephane-klein commented 11 months ago
stephane-klein commented 11 months ago
stephane-klein commented 11 months ago

Après lecture de ce commentaire Question about “binding” simple html input to Y.Text shared text type j'ai l'impression qu'il n'est pas possible d'activer une édition à plusieurs sur un simple champ <input..>.

stephane-klein commented 11 months ago

Le repos en work in progress: https://github.com/stephane-klein/poc-svelte-yjs-form

stephane-klein commented 11 months ago

Je suis tombé sur le même problème que lui WebSocket is not defined : node_modules/lib0/websocket.js:25:23.

Il faut que je désactive le SSR dans ici https://github.com/stephane-klein/poc-svelte-yjs-form/blob/9e7bd35806244e244269bf8985766cc26880fe60/src/routes/form2/store.js

stephane-klein commented 11 months ago

Je suis tombé sur le même problème que lui WebSocket is not defined : node_modules/lib0/websocket.js:25:23.

Il faut que je désactive le SSR dans ici https://github.com/stephane-klein/poc-svelte-yjs-form/blob/9e7bd35806244e244269bf8985766cc26880fe60/src/routes/form2/store.js

Fixé par https://github.com/stephane-klein/poc-svelte-yjs-form/commit/ac53e4b17c19bd922a43999892598c0c1332dfca

stephane-klein commented 11 months ago

Je n'arrive pas à comprendre comment remplacer ici un [] par un {} :thinking:.

stephane-klein commented 11 months ago
stephane-klein commented 11 months ago
stephane-klein commented 11 months ago
stephane-klein commented 11 months ago

Je rencontre la même erreur que celle décrite dans https://github.com/relm-us/svelt-yjs/issues/4.

Suite à la lecture de https://github.com/relm-us/svelt-yjs/issues/4#issuecomment-1113205899, je vais tester https://github.com/rodcisal/sveltekit-svelt-yjs-example

stephane-klein commented 11 months ago

J'ai réussi à faire fonctionner https://github.com/rodcisal/sveltekit-svelt-yjs-example

et j'ai vu que l'exemple met en œuvre un objet de type map : https://github.com/rodcisal/sveltekit-svelt-yjs-example/blob/5914962b484a9cb108ecc5832cd05e790a7bc6d1/src/App.svelte#L30

stephane-klein commented 11 months ago

J'ai une première version qui fonctionne.

Je ne sais pas si le code que j'ai produit est élégant ou non :thinking:.

stephane-klein commented 11 months ago
stephane-klein commented 11 months ago

Pour le moment je vais continue à utiliser webrtc, à moins que je développe une app qui est utilisé par beaucoup de clients qui éditent le même document.

stephane-klein commented 11 months ago

Prochaine étape :

stephane-klein commented 11 months ago

Sélection d'éditeurs pour champ <textarea> :

stephane-klein commented 11 months ago

Je pense que https://codemirror.net/ ne m'intéresse pas ici, parce que comme son nom l'indique,

stephane-klein commented 11 months ago

Prosemirror me semble très bien, surtout l'exemple avec le support Markdown https://prosemirror.net/examples/markdown/

stephane-klein commented 11 months ago
stephane-klein commented 11 months ago
stephane-klein commented 11 months ago
stephane-klein commented 11 months ago

Je vais me diriger vers prosemirror.

stephane-klein commented 11 months ago

J'ai lu https://github.com/yjs/y-prosemirror. Je cherche comment instancier prosemirror avec Svelte.

stephane-klein commented 11 months ago
stephane-klein commented 11 months ago

J'ai vu aussi https://github.com/TeemuKoivisto/svelte-prosemirror

stephane-klein commented 11 months ago

Dans un premier temps, je vais essayer d'instancier prosemirror en mode "vanilla".

stephane-klein commented 11 months ago
stephane-klein commented 11 months ago

J'ai étudié https://tiptap.dev/ et https://github.com/ueberdosis/hocuspocus

L'équipe derrière ces projets me semble faire du très bon travail, de plus, comme je l'ai pu constater, ils semblent publier l'intégralité de leur travail sous licences MIT 🙂

stephane-klein commented 11 months ago

https://element-tiptap.vercel.app/

stephane-klein commented 11 months ago

Prochaine étape :

stephane-klein commented 11 months ago

Prochaine étape :

* [ ]  Convertir le résultat du champ _description_ en Markdown

Ressource : https://prosemirror.net/examples/markdown/

stephane-klein commented 11 months ago

J'ai créé #283

stephane-klein commented 11 months ago

Maintenant que j'ai réussi à implémenter https://github.com/stephane-klein/poc-svelte-prosemirror-markdown je vais essayer d'implémenter la même chose avec le support yjs.

stephane-klein commented 11 months ago

Pour le moment, j'ai travaillé 10h sur cette issue.

stephane-klein commented 8 months ago

Maintenant que j'ai réussi à implémenter https://github.com/stephane-klein/poc-svelte-prosemirror-markdown je vais essayer d'implémenter la même chose avec le support yjs.

Je dois continuer cette partie.

Précision, je souhaite implémenter une version basée sur "prosemirror vanilla", c'est à dire, ne pas utiliser https://tiptap.dev/.