# 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 })} />