Zum Inhalt springen

Frontend-Übersicht

Das Rebase-Frontend ist ein React-Framework, das Ihr Admin-Panel rendert. Es liest Ihre Sammlungsdefinitionen und generiert automatisch Tabellen, Formulare, Navigation und Routing.

Die Schlüsselkomponenten, aus denen ein Rebase-Frontend besteht:

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

<Rebase> ist der Root-Provider, der alle Rebase-Funktionalitäten für untergeordnete Komponenten über den Kontext verfügbar macht. Er akzeptiert:

PropBeschreibung
clientRebaseClient-Instanz für Daten, Authentifizierung und Speicher
collectionRegistryControllerLöst Sammlungspfade und -konfigurationen auf
cmsUrlControllerErstellt URLs und handhabt das Routing
navigationStateControllerVerwaltet Navigationszustand, Ansichten und Plugins
authControllerAuthentifizierungszustand und -methoden
storageSourceDateispeicheroperationen
userConfigPersistenceLokale UI-Einstellungen (Spaltenbreiten usw.)
entityViewsGlobale benutzerdefinierte Entitätsansichts-Tabs
entityActionsGlobale Entitätsaktionen
pluginsPlugin-Instanzen (veraltete Prop – bevorzugt über Navigations-Controller übergeben)

Controller sind React-Hooks, die spezifische Aspekte des Frameworks konfigurieren:

Der Haupt-Controller, der alles miteinander verbindet:

const navigationStateController = useBuildNavigationStateController({
collections: () => [...collections], // Collection definitions
views: customViews, // Custom navigation views
plugins, // Plugin instances
authController,
data: rebaseClient.data,
collectionRegistryController,
cmsUrlController,
adminMode: adminModeController.mode,
userManagement
});

Verwaltet, wie Sammlungen aus URL-Pfaden aufgelöst werden:

const collectionRegistryController = useBuildCollectionRegistryController({
userConfigPersistence
});

Konfiguriert die URL-Generierung:

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

Verwaltet das helle/dunkle Thema:

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

Schaltet zwischen Studio- und Inhaltsmodi um:

const adminModeController = useBuildAdminModeController();
// Provides: adminModeController.mode ("studio" | "content")
KomponenteBeschreibung
<Scaffold>Haupt-Layout-Container mit responsiver Seitenleiste
<AppBar>Obere Navigationsleiste mit Suche, Modus-Umschalter, Benutzermenü
<Drawer>Seiten-Navigation mit Sammlungsliste und Ansichtslinks
<SideDialogs>Container für Entitäts-Editoren im Seitenpanel
<RebaseRoutes>Routen-Container, der mit React Router integriert ist
<RebaseRoute>Handhabt Sammlungsrouten (/c/*)
<ContentHomePage>Standard-Startseite mit Sammlungs-Karten
<StudioHomePage>Studio-Modus-Startseite mit Entwicklertools

Fügen Sie übergeordnete Navigationsansichten für Dashboards, Tools oder benutzerdefinierte Seiten hinzu:

const views: CMSView[] = [
{
slug: "dashboard",
name: "Dashboard",
icon: "dashboard",
group: "Analytics",
view: <MyDashboard />
},
{
slug: "settings",
name: "App Settings",
icon: "settings",
view: <AppSettings />,
nestedRoutes: true // Support sub-paths
}
];

Rebase verwendet Tailwind CSS v4 und unterstützt helle/dunkle Modi. Anpassung über:

  • CSS-Benutzereigenschaften — Design-Tokens überschreiben
  • ModeControllerProvider — Steuerung des hellen/dunklen Modus
  • Tailwind-Konfiguration — Standard-Tailwind-Anpassung
/* Override design tokens */
:root {
--font-sans: "Inter", sans-serif;
--font-mono: "JetBrains Mono", monospace;
}