diff --git a/README.md b/README.md index 156aa02..aac9606 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,301 @@ -# IHM +# Création d'une IHM pour le projet MIA +### Introduction + +Ce projet couvre les IHM d'accès aux sessions de visio-conférence pour le projet MIA. +Ces IHM se découpent en deux étapes : +1 - connexion d'un utilisateur sur une session de visio +2 - identification de l'utilisateur sur la session + +### Architecture du module + +``` +. +├── ... +├── local/modules/ModuleCitation +│ ├── Config/ +│ │ ├── module.xml +│ │ └── config.xml +│ ├── Hook/ +│ │ └── BackHook.php +│ └── templates/ +│ │ ├── frontOffice/default/blocks/ +│ │ │ ├── blockCitation.html +│ │ │ └── ... +│ │ └── backOffice/default/ +│ │ │ ├── src/ +│ │ │ │ └── Citation.jsx +│ │ │ ├── tsup.config.js +│ │ │ └── index.js +│ ├── package.json +│ └── ModuleCitation.php +└── ... +``` + +### Installation des dépendances : + +```bash +npm install react tsup @openstudio/blocks-editor +``` + +### 1 - Création du composant + +Commençons par créer un fichier `Citation.jsx` et par définir les données initiales du plugin : + +```js +// ./templates/backOffice/default/src/Citation.jsx + +const initialData = { + author: "", + quote: "", +}; +``` + +Ensuite, nous allons pouvoir écrire le composant React permettant de visualiser le plugin dans l'éditeur de Thelia Blocks. + +:warning: Attention : un plugin Thelia Blocks prends toujours deux `props` : + +| Prop | Type | Description | +| :--------- | :--------- | :--------------------------------------------------------- | +| `data` | `any` | Objet contenant les données du plugin | +| `onUpdate` | `Function` | Fonction permettant de mettre à jour les données du plugin | + +Exemple : + +```jsx +// ./templates/backOffice/default/src/Citation.jsx + +const BlockQuoteComponent = ({ data, onUpdate }) => { + return ( +
+
+ + onUpdate({ ...data, author: e.target.value })} + /> +
+
+ +