Migration de FireCMS 2.0 vers FireCMS 3.0
FireCMS 3.0 est une version majeure qui introduit de nombreux changements. Cette page décrit les principaux changements et comment migrer depuis FireCMS 2.0.
FireCMS Community et PRO sont les versions auto-hébergées de FireCMS. Elles vous permettent d’héberger votre propre backend et d’utiliser FireCMS sans aucune restriction. C’est la version la plus similaire à FireCMS 2.0, mais avec beaucoup d’améliorations et de nouvelles fonctionnalités.
Migration vers FireCMS PRO
Section intitulée « Migration vers FireCMS PRO »La plupart des concepts sont identiques à ceux de FireCMS 2.0, mais il y a quelques changements dont vous devez être conscient. Nous recommandons de démarrer un nouveau projet avec :
npx create-firecms-app --proou
yarn create firecms-app --proCela créera un nouveau projet avec la dernière version de FireCMS PRO.
Mise à jour des imports
Section intitulée « Mise à jour des imports »Le changement principal est que les imports ont changé. Vous devez mettre à jour les imports dans votre projet.
Avant, vous importiez tout depuis firecms (ou même @camberi/firecms). Maintenant, vous devez importer depuis
différents packages.
- Tous les composants UI sont maintenant dans
@firecms/ui. Tout, y compris les boutons, les champs de texte, les mises en page, etc. - Le cœur de FireCMS est dans
@firecms/core. Cela inclutFireCMSApp,FireCMSContext, etc. - Tout le code lié à Firebase est dans
@firecms/firebase, y comprisuseFirebaseAuthController, etc. La plupart des imports se trouvent dans@firecms/core, nous recommandons donc de commencer par là.
Configuration de collection
Section intitulée « Configuration de collection »Les collections ont subi des changements minimaux. Si vous n’avez pas de composants personnalisés définis, il devrait être facile d’adapter vos collections au nouveau format.
-
Vous devez définir un
idpour chaque collection, qui peut généralement être le même que lepath. Assurez-vous que l’idest unique. -
La prop
viewsa été renommée enentityViews, car elles sont appliquées aux entités.- Dans
entityViews, la proppatha été renommée enkey.
- Dans
-
Pour
AdditionalFieldDelegate:- La prop
ida été renommée enkey. - La prop
buildera été renommée enBuilder.
- La prop
Authentificateur
Section intitulée « Authentificateur »- L’authentificateur retourne maintenant un
dataSourceDelegateau lieu d’undataSource. La différence est que vous ne passez plus la propcollection.
useNavigationContexta été renommé enuseNavigationController.FieldDescriptiona été renommé enFieldCaption.PropertyPreviewn’a plus besoin d’une propentity.
Migration des composants personnalisés (MUI)
Section intitulée « Migration des composants personnalisés (MUI) »FireCMS 3.0 est basé sur tailwindcss au lieu de mui.
Mui était excellent pour les premières versions de FireCMS, mais c’était un goulot d’étranglement important pour les performances et il était difficile à personnaliser.
La nouvelle version de FireCMS a intégré presque 50 nouveaux composants implémentés avec tailwindcss, qui imitent bien les composants material-ui. Vous êtes encouragé à migrer vos composants personnalisés vers le nouveau format.
Vous pouvez essayer de remplacer les imports de @mui/material par @firecms/ui et vous verrez que beaucoup de choses fonctionnent immédiatement.
Les icônes dans FireCMS sont basées sur les icônes Material. Vous pouvez utiliser toutes les icônes Material en les important comme dans MUI.
import { AddIcon } from "@firecms/ui";La prop fontSize s’appelle size dans FireCMS (parce que c’est plus logique).
Composants sans équivalent :
Section intitulée « Composants sans équivalent : »Box: Le composant Box est juste un wrapper utilisé par mui pour appliquer des styles. Vous pouvez utiliser undivà la place, avec des classes tailwind. Conseil : ChatGPT est excellent pour convertir les composants Box en div avec des classes tailwind.Link: Utilisezaà la place.FormControl
Composants qui changent de comportement (de MUI à FireCMS UI)
Section intitulée « Composants qui changent de comportement (de MUI à FireCMS UI) »MenuetMenuItem: Les items de menu n’ont plus d’id. Vous pouvez ajouter une proponClickpar item de menu.Selectn’utilise pluslabelId. Ajoutez simplement le label comme composant danslabel.SelectChangeEventest maintenantChangeEvent<HTMLSelectElement>- La taille de
CircularProgressest une chaîne au lieu d’un nombre. Vous pouvez utilisersize="small"ousize="large".
Continuer à utiliser MUI
Section intitulée « Continuer à utiliser MUI »Si vous voulez continuer à utiliser mui, vous pouvez toujours utiliser les anciens composants, mais vous devrez
installer le package mui manuellement.
npm install @mui/material @emotion/react @emotion/styledou
yarn add @mui/material @emotion/react @emotion/styledSi vous avez besoin des icônes MUI, exécutez :
npm install @mui/icons-materialou
yarn add @mui/icons-material