Frontend-Übersicht
Übersicht
Abschnitt betitelt „Ü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>Der Rebase-Provider
Abschnitt betitelt „Der Rebase-Provider“<Rebase> ist der Root-Provider, der alle Rebase-Funktionalitäten für untergeordnete Komponenten über den Kontext verfügbar macht. Er akzeptiert:
| Prop | Beschreibung |
|---|---|
client | RebaseClient-Instanz für Daten, Authentifizierung und Speicher |
collectionRegistryController | Löst Sammlungspfade und -konfigurationen auf |
cmsUrlController | Erstellt URLs und handhabt das Routing |
navigationStateController | Verwaltet Navigationszustand, Ansichten und Plugins |
authController | Authentifizierungszustand und -methoden |
storageSource | Dateispeicheroperationen |
userConfigPersistence | Lokale UI-Einstellungen (Spaltenbreiten usw.) |
entityViews | Globale benutzerdefinierte Entitätsansichts-Tabs |
entityActions | Globale Entitätsaktionen |
plugins | Plugin-Instanzen (veraltete Prop – bevorzugt über Navigations-Controller übergeben) |
Controller
Abschnitt betitelt „Controller“Controller sind React-Hooks, die spezifische Aspekte des Frameworks konfigurieren:
useBuildNavigationStateController
Abschnitt betitelt „useBuildNavigationStateController“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});useBuildCollectionRegistryController
Abschnitt betitelt „useBuildCollectionRegistryController“Verwaltet, wie Sammlungen aus URL-Pfaden aufgelöst werden:
const collectionRegistryController = useBuildCollectionRegistryController({ userConfigPersistence});useBuildCMSUrlController
Abschnitt betitelt „useBuildCMSUrlController“Konfiguriert die URL-Generierung:
const cmsUrlController = useBuildCMSUrlController({ basePath: "/", baseCollectionPath: "/c", collectionRegistryController});useBuildModeController
Abschnitt betitelt „useBuildModeController“Verwaltet das helle/dunkle Thema:
const modeController = useBuildModeController();// Provides: modeController.mode ("light" | "dark"), modeController.toggleMode()useBuildAdminModeController
Abschnitt betitelt „useBuildAdminModeController“Schaltet zwischen Studio- und Inhaltsmodi um:
const adminModeController = useBuildAdminModeController();// Provides: adminModeController.mode ("studio" | "content")Scaffold-Komponenten
Abschnitt betitelt „Scaffold-Komponenten“| Komponente | Beschreibung |
|---|---|
<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 |
Benutzerdefinierte Ansichten
Abschnitt betitelt „Benutzerdefinierte Ansichten“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 }];Styling
Abschnitt betitelt „Styling“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;}Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- Benutzerdefinierte Felder — Erstellen Sie benutzerdefinierte Formularfelder
- Entitätsansichten — Fügen Sie Tabs zu Entitäts-Editoren hinzu
- Ansichtsmodi — Liste, Tabelle, Karten, Kanban
- Plugins — Erweitern Sie das Framework