Étendre Rebase
Vue d’ensemble
Section intitulée « Vue d’ensemble »Rebase offre environ une douzaine de mécanismes d’extension — plugins, slots, surcharges de composants, vues d’entité, actions, champs personnalisés et plus. Chacun cible une portée différente (à l’échelle de l’app, par collection, par entité, par propriété) et une partie différente de l’UI.
Ce guide vous aide à choisir le bon mécanisme pour votre cas d’usage, puis renvoie vers la référence détaillée de chacun.
Table de décision
Section intitulée « Table de décision »| Je veux… | Mécanisme | Portée | Référence |
|---|---|---|---|
| Remplacer la barre d’app | components (Shell.AppBar) |
app | Surcharges de composants |
| Remplacer la page de connexion | components (Auth.LoginView) |
app | Surcharges de composants |
| Remplacer la page d’accueil | components (HomePage) |
app | Surcharges de composants |
| Changer entièrement l’apparence du formulaire d’une collection | formView |
collection | ci-dessous |
| Échanger un composant dans une collection | collection.components |
collection | Surcharges de composants |
| Définir des surcharges de composants par défaut pour toutes les collections | components (noms à portée collection) |
app | Surcharges de composants |
| Ajouter un bouton à la barre d’outils de la collection | Actions de collection |
collection | Actions d’entité |
| Injecter de l’UI à un slot de la barre d’outils de la collection | slot collection.actions |
app/plugin | Slots |
| Ajouter une colonne calculée à un tableau | additionalFields |
collection | Colonnes supplémentaires |
| Ajouter un widget de champ personnalisé pour un type de propriété | propertyConfigs |
type de propriété | Champs personnalisés |
| Ajouter un onglet d’entité | entityViews |
entité | Vues d’entité |
| Ajouter une action de ligne/contexte ou un bouton d’entité | entityActions |
entité | Actions d’entité |
| Injecter de l’UI à un emplacement spécifique du chrome | slots |
app/plugin | Slots |
| Livrer plusieurs extensions en une seule unité installable | plugins |
app | Plugins |
Mécanismes en détail
Section intitulée « Mécanismes en détail »Portée : app.
Un plugin regroupe des collections, des vues, des surcharges de composants, des contributions de slots, l’authentification, des sources de données, des providers, des hooks et des callbacks de cycle de vie en une seule unité installable. Tous les autres mécanismes listés ici peuvent être contribués via l’interface d’un plugin.
Portée : app (contribué par slot).
Les slots sont des points d’extension d’UI nommés répartis dans tout le chrome du CMS. Vous enregistrez un composant React ciblant un nom de slot, et il est rendu à cet emplacement. Il y a 29 slots couvrant la page d’accueil, la navigation, les vues de collection, les formulaires, les lignes d’entité, les tableaux de bord et plus.
Surcharges de composants (Swizzling)
Section intitulée « Surcharges de composants (Swizzling) »Portée : valeurs par défaut au niveau app ou par collection.
Deux modes : Eject (remplacement complet) ou Wrap (augmenter l’original).
19 noms de composants surchargeables en deux niveaux :
App uniquement (7) :
Shell.AppBarShell.DrawerShell.DrawerNavigationItemShell.DrawerNavigationGroupHomePageHomePage.CollectionCardAuth.LoginView
Portée collection (12) :
Collection.ViewCollection.TableCollection.CardCollection.EmptyStateCollection.ActionsCollection.FilterFieldEntity.FormEditView.FormActionsDetailViewEntity.SidePanelEntityPreviewEntity.MissingReference
Priorité : Les components au niveau de la collection surchargent les valeurs par défaut au niveau de l’app pour le même nom de composant (spread d’objet simple — les valeurs de la collection écrasent les valeurs globales). Les noms de composants app-uniquement (Shell.*, HomePage, Auth.*) ne peuvent être surchargés qu’au niveau de <Rebase>.
Vues d’entité
Section intitulée « Vues d’entité »Portée : entité (ajoute des onglets).
Vues personnalisées qui apparaissent sous forme d’onglets sur la page de détail de l’entité. Peuvent être définies globalement sur <Rebase> ou par collection.
Actions d’entité
Section intitulée « Actions d’entité »Portée : entité.
Boutons d’action personnalisés sur des entités individuelles (publier, archiver, cloner, etc.). Peuvent être définis globalement ou par collection.
Actions de collection
Section intitulée « Actions de collection »Portée : collection.
Composants React au niveau de la barre d’outils qui reçoivent CollectionActionsProps (entités sélectionnées, contrôleur de tableau, contexte de collection). Rendus dans la barre d’outils de la collection aux côtés des actions intégrées.
Relation avec le slot collection.actions : Les deux sont additifs — les composants Actions sont rendus en premier dans la barre d’outils, puis les contributions de slot de collection.actions. Ils ne se remplacent pas mutuellement.
→ Actions d’entité — Actions de collection
formView {#formview}
Section intitulée « formView {#formview} »Portée : collection.
Remplace l’intégralité du formulaire d’entité par défaut par un composant personnalisé. Défini sur une définition de collection :
const collection = { slug: "products", admin: { formView: { Builder: MyCustomProductForm, includeActions: true // show save/delete bar (default: true) } }};Utilisez-le lorsque vous avez besoin d’une mise en page entièrement personnalisée pour l’expérience d’édition d’entités d’une collection. Pour des ajustements plus petits, préférez plutôt collection.components avec la surcharge Entity.Form.
additionalFields
Section intitulée « additionalFields »Portée : collection.
Colonnes calculées/virtuelles affichées dans le tableau de la collection. Elles ne correspondent pas à des propriétés stockées — elles sont calculées au moment du rendu.
propertyConfigs
Section intitulée « propertyConfigs »Portée : type de propriété.
Widgets de champ personnalisés pour des types de propriété spécifiques, fournissant des champs de formulaire et des composants d’aperçu personnalisés.
Résumé de priorité
Section intitulée « Résumé de priorité »collection.componentsl’emporte sur lescomponentsglobaux à l’intérieur de cette collection (fusion par spread simple dansDataCollectionView).- Les
Actionsde collection et le slotcollection.actionssont additifs — lesActionssont rendues en premier, puis les contributions de slot. - Les
entityActionsetentityViewsau niveau de la collection étendent (ne remplacent pas) les globaux. - Les contributions de plugin sont fusionnées dans l’ordre des
key.
