Salta ai contenuti

Panoramica Frontend

Il frontend Rebase è un framework React che renderizza il tuo pannello di amministrazione. Legge le definizioni delle tue collezioni e genera automaticamente tabelle, moduli, navigazione e routing.

I componenti chiave che costituiscono un frontend Rebase:

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

<Rebase> è il provider radice che rende tutte le funzionalità di Rebase disponibili ai componenti figli tramite contesto. Accetta:

ProprietàDescrizione
clientIstanza di RebaseClient per dati, autenticazione e archiviazione
collectionRegistryControllerRisolve i percorsi e le configurazioni delle collezioni
cmsUrlControllerCostruisce URL e gestisce il routing
navigationStateControllerGestisce lo stato della navigazione, le viste e i plugin
authControllerStato e metodi di autenticazione
storageSourceOperazioni di archiviazione file
userConfigPersistencePreferenze UI locali (larghezza colonne, ecc.)
entityViewsSchede di vista entità personalizzate globali
entityActionsAzioni globali per le entità
pluginsIstanze di plugin (proprietà legacy — preferire il passaggio tramite controller di navigazione)

I controller sono hook di React che configurano aspetti specifici del framework:

Il controller principale che collega tutto insieme:

const navigationStateController = useBuildNavigationStateController({
collections: () => [...collections], // Definizioni delle collezioni
views: customViews, // Viste di navigazione personalizzate
plugins, // Istanze di plugin
authController,
data: rebaseClient.data,
collectionRegistryController,
cmsUrlController,
adminMode: adminModeController.mode,
userManagement
});

Gestisce come le collezioni vengono risolte dai percorsi URL:

const collectionRegistryController = useBuildCollectionRegistryController({
userConfigPersistence
});

Configura la generazione di URL:

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

Gestisce il tema chiaro/scuro:

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

Alterna tra le modalità Studio e Contenuto:

const adminModeController = useBuildAdminModeController();
// Fornisce: adminModeController.mode ("studio" | "content")
ComponenteDescrizione
<Scaffold>Contenitore del layout principale con sidebar responsiva
<AppBar>Barra di navigazione superiore con ricerca, interruttore modalità, menu utente
<Drawer>Navigazione laterale con elenco collezioni e link alle viste
<SideDialogs>Contenitore per gli editor di entità nel pannello laterale
<RebaseRoutes>Contenitore di route che si integra con React Router
<RebaseRoute>Gestisce le route delle collezioni (/c/*)
<ContentHomePage>Pagina iniziale predefinita che mostra le schede delle collezioni
<StudioHomePage>Pagina iniziale della modalità Studio con strumenti per sviluppatori

Aggiungi viste di navigazione di primo livello per dashboard, strumenti o pagine personalizzate:

const views: CMSView[] = [
{
slug: "dashboard",
name: "Dashboard",
icon: "dashboard",
group: "Analisi",
view: <MyDashboard />
},
{
slug: "settings",
name: "Impostazioni App",
icon: "settings",
view: <AppSettings />,
nestedRoutes: true // Supporta sotto-percorsi
}
];

Rebase utilizza Tailwind CSS v4 e supporta le modalità chiaro/scuro. Personalizza tramite:

  • Proprietà CSS personalizzate — Sovrascrivi i token di design
  • ModeControllerProvider — Controlla la modalità chiaro/scuro
  • Configurazione Tailwind — Personalizzazione standard di Tailwind
/* Sovrascrivi i token di design */
:root {
--font-sans: "Inter", sans-serif;
--font-mono: "JetBrains Mono", monospace;
}