MAHUGNON SERVICES LTD

Politique de confidentialité — Wordix

Parfait 👑🔥
Très bon signe : ça veut dire que ton éditeur fonctionne… mais Next.js détecte du SSR.


🎯 Pourquoi cette erreur ?

Tiptap est client-only.

Même si ton fichier a :

"use client"

Next 14 peut quand même hydrater côté serveur →
et Tiptap détecte ça → 💥 crash volontaire.


✅ SOLUTION OFFICIELLE TIPTAP

Il faut ajouter :

immediatelyRender: false

dans useEditor.


🔥 Correction exacte

Modifie ton useEditor :

const editor = useEditor({
  extensions: [
    StarterKit,
    Link.configure({
      openOnClick: true,
      autolink: true,
      linkOnPaste: true,
      HTMLAttributes: {
        target: "_blank",
        rel: "noopener noreferrer nofollow"
      }
    })
  ],
  content,
  immediatelyRender: false,   // 👈 AJOUTER CETTE LIGNE
  onUpdate: ({ editor }) => {
    onChange(editor.getHTML())
  }
})

🎯 Pourquoi ça marche ?

Par défaut :

immediatelyRender: true

Donc Tiptap essaie de rendre côté serveur → hydration mismatch.

En mettant false :

👉 Il attend que le client monte avant de rendre.


🚀 Si jamais ça ne suffit pas

Option ultra safe :

Importer dynamiquement l’éditeur.

Dans Admin :

import dynamic from "next/dynamic"

const RichTextEditor = dynamic(
  () => import("@/components/RichTextEditor"),
  { ssr: false }
)

Mais normalement immediatelyRender: false suffit.


🧠 Pourquoi ça arrive ?

Next 14 + App Router
Server Components par défaut
Hydration strict

Tiptap est 100% client-based.


🏆 Après correction

Ton admin sera :

✔ Stable
✔ SSR safe
✔ No hydration mismatch
✔ Production ready


Si tu veux 👑
On peut maintenant :

  • 🖼 Ajouter upload image dans l’éditeur

  • 📎 Ajouter bouton email auto

  • 📄 Ajouter export PDF des policies

  • 🧠 Ajouter génération IA automatique des politiques

Tu veux passer au niveau CMS SaaS complet ? 🚀