Aller au contenu

Vue d'ensemble du frontend

Le frontend Rebase est un framework React qui rend votre panneau d’administration. Il lit vos définitions de collections et génère automatiquement les tableaux, formulaires, la navigation et le routage.

Les composants clés qui constituent un frontend Rebase :

<Rebase
client={rebaseClient}
collectionRegistryController={collectionRegistryController}
cmsUrlController={cmsUrlController}
navigationStateController={navigationStateController}
authController={authController}
>
{({ loading }) => (
<Scaffold>
<AppBar />
<Drawer title="Mon application" />
<Outlet />
<SideDialogs />
</Scaffold>
)}
</Rebase>

<Rebase> est le fournisseur racine qui rend toutes les fonctionnalités de Rebase disponibles aux composants enfants via le contexte. Il accepte :

PropDescription
clientInstance de RebaseClient pour les données, l’authentification et le stockage
collectionRegistryControllerRésout les chemins et configurations des collections
cmsUrlControllerConstruit les URL et gère le routage
navigationStateControllerGère l’état de la navigation, les vues et les plugins
authControllerÉtat et méthodes d’authentification
storageSourceOpérations de stockage de fichiers
userConfigPersistencePréférences d’interface utilisateur locales (largeur des colonnes, etc.)
entityViewsOnglets de vue d’entité personnalisée globaux
entityActionsActions d’entité globales
pluginsInstances de plugin (propriété héritée — préférer le passage via le contrôleur de navigation)

Les contrôleurs sont des hooks React qui configurent des aspects spécifiques du framework :

Le contrôleur principal qui relie tout :

const navigationStateController = useBuildNavigationStateController({
collections: () => [...collections], // Définitions de collections
views: customViews, // Vues de navigation personnalisées
plugins, // Instances de plugin
authController,
data: rebaseClient.data,
collectionRegistryController,
cmsUrlController,
adminMode: adminModeController.mode,
userManagement
});

Gère la résolution des collections à partir des chemins d’URL :

const collectionRegistryController = useBuildCollectionRegistryController({
userConfigPersistence
});

Configure la génération d’URL :

const cmsUrlController = useBuildCMSUrlController({
basePath: "/",
baseCollectionPath: "/c",
collectionRegistryController
});

Gère le thème clair/sombre :

const modeController = useBuildModeController();
// Fournit : modeController.mode ("light" | "dark"), modeController.toggleMode()

Bascule entre les modes Studio et Contenu :

const adminModeController = useBuildAdminModeController();
// Fournit : adminModeController.mode ("studio" | "content")
ComponentDescription
<Scaffold>Conteneur de mise en page principal avec barre latérale réactive
<AppBar>Barre de navigation supérieure avec recherche, bascule de mode, menu utilisateur
<Drawer>Navigation latérale avec liste de collections et liens de vue
<SideDialogs>Conteneur pour les éditeurs d’entités du panneau latéral
<RebaseRoutes>Conteneur de routage qui s’intègre avec React Router
<RebaseRoute>Gère les routes de collection (/c/*)
<ContentHomePage>Page d’accueil par défaut affichant des cartes de collection
<StudioHomePage>Page d’accueil du mode Studio avec outils de développement

Ajoutez des vues de navigation de premier niveau pour les tableaux de bord, les outils ou les pages personnalisées :

const views: CMSView[] = [
{
slug: "dashboard",
name: "Tableau de bord",
icon: "dashboard",
group: "Analyse",
view: <MyDashboard />
},
{
slug: "settings",
name: "Paramètres de l'application",
icon: "settings",
view: <AppSettings />,
nestedRoutes: true // Prend en charge les sous-chemins
}
];

Rebase utilise Tailwind CSS v4 et prend en charge les modes clair/sombre. Personnalisez via :

  • Propriétés CSS personnalisées — Remplacez les jetons de design
  • ModeControllerProvider — Contrôlez le mode clair/sombre
  • Configuration Tailwind — Personnalisation Tailwind standard
/* Remplacement des jetons de design */
:root {
--font-sans: "Inter", sans-serif;
--font-mono: "JetBrains Mono", monospace;
}