Créer un composant GrapeJS personnalisé
Nous allons maintenant créer un composant React et le rendre disponible à l’éditeur. Nous allons supposer que nous voulons créer un Compteur dans cet exemple.
Étapes de création
Créer un composant React
Dans src/webparts/monSuperSite/components/, créer un dossier Counter avec un fichier Counter.tsx
useEffect par exemple.Créer le plugin du composant GrapeJS
Dans src/webparts/monSuperSite/grapejs/components/, créer un dossier Counter avec un fichier Counter.tsx
Il faut faire en sorte que le nom du type du composant soit unique.
Il est possible aussi de récupérer des données externes à cette étape via la méthode de lifecycle init.
Néanmoins, cela fait en sorte que même les données sont enregistrés avec les données du projet, et ainsi
le composant n’est dynamique que lorsqu’on le glisse dans le Canvas.
Au moment du rendu des pages, le contenu sera statique.
Liens utiles:
https://grapesjs.com/docs/modules/Components.html#how-components-work
Regrouper dans un plugin global
Dans src/webparts/monSuperSite/grapejs/components/index.ts :
Enregistrer le plugin dans l'éditeur GrapeJS
Dans src/webparts/monSuperSite/grapejs/index.tsx :
Chaque composants doit être défini comme un plugin.
Enregistrer dans le Block Manager
Dans src/webparts/monSuperSite/grapejs/index.tsx :
Gérer le rendu des pages
Cette étape est à faire une seule fois. Elle permet de gérer le rendu des pages à partir des données de GrapeJS.
Dans src/webparts/monSuperSite/components/, créer un dossier Page avec un fichier Page.tsx :
Ce composant gère l’affichage des pages.
Dans src/webparts/monSuperSite/components/, créer un dossier Wrapper avec un fichier Wrapper.tsx :
Ce composant gère l’affichage de tous les composants.
Exemple : Récupération des données à partir de Sharepoint
Ci dessous est un exemple d’un composant qui récupère des données à partir d’une liste de Sharepoint :
Créer un composant React
Dans src/webparts/monSuperSite/components/, créer un dossier FormListing avec un fichier FormListing.tsx
Créer le plugin du composant GrapeJS
Dans src/webparts/monSuperSite/grapejs/components/, créer un dossier FormListing avec un fichier FormListing.tsx
Il faut faire en sorte que le nom du type du composant soit unique.
Regrouper dans un plugin global
Dans src/webparts/monSuperSite/grapejs/components/index.ts :
Enregistrer le plugin dans l'éditeur GrapeJS
Dans src/webparts/monSuperSite/grapejs/index.tsx :
Chaque composants doit être défini comme un plugin.
Enregistrer dans le Block Manager
Dans src/webparts/monSuperSite/grapejs/index.tsx :
Gérer le rendu des pages
Cette étape est à faire une seule fois. Elle permet de gérer le rendu des pages à partir des données de GrapeJS.
Dans src/webparts/monSuperSite/components/, créer un dossier Page avec un fichier Page.tsx :
Ce composant gère l’affichage des pages.
Dans src/webparts/monSuperSite/components/, créer un dossier Wrapper avec un fichier Wrapper.tsx :
Ce composant gère l’affichage de tous les composants.