Ir al contenido

Descripción general del Frontend

El frontend de Rebase es un framework de React que renderiza tu panel de administración. Lee las definiciones de tus colecciones y genera tablas, formularios, navegación y enrutamiento automáticamente.

Los componentes clave que conforman un frontend de Rebase:

<Rebase
client={rebaseClient}
collectionRegistryController={collectionRegistryController}
cmsUrlController={cmsUrlController}
navigationStateController={navigationStateController}
authController={authController}
>
{({ loading }) => (
<Scaffold>
<AppBar />
<Drawer title="Mi aplicación" />
<Outlet />
<SideDialogs />
</Scaffold>
)}
</Rebase>

<Rebase> es el proveedor raíz que hace que toda la funcionalidad de Rebase esté disponible para los componentes hijos a través del contexto. Acepta:

PropiedadDescripción
clientInstancia de RebaseClient para datos, autenticación y almacenamiento
collectionRegistryControllerResuelve rutas y configuraciones de colecciones
cmsUrlControllerConstruye URLs y maneja el enrutamiento
navigationStateControllerGestiona el estado de navegación, vistas y plugins
authControllerEstado y métodos de autenticación
storageSourceOperaciones de almacenamiento de archivos
userConfigPersistencePreferencias de UI locales (ancho de columnas, etc.)
entityViewsPestañas globales de vista de entidad personalizadas
entityActionsAcciones globales de entidad
pluginsInstancias de plugins (propiedad heredada — preferible pasar a través del controlador de navegación)

Los controladores son hooks de React que configuran aspectos específicos del framework:

El controlador principal que conecta todo:

const navigationStateController = useBuildNavigationStateController({
collections: () => [...collections], // Definiciones de colección
views: customViews, // Vistas de navegación personalizadas
plugins, // Instancias de plugins
authController,
data: rebaseClient.data,
collectionRegistryController,
cmsUrlController,
adminMode: adminModeController.mode,
userManagement
});

Gestiona cómo se resuelven las colecciones a partir de las rutas URL:

const collectionRegistryController = useBuildCollectionRegistryController({
userConfigPersistence
});

Configura la generación de URL:

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

Gestiona el tema claro/oscuro:

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

Alterna entre los modos Studio y Content:

const adminModeController = useBuildAdminModeController();
// Proporciona: adminModeController.mode ("studio" | "content")
ComponenteDescripción
<Scaffold>Contenedor de diseño principal con barra lateral responsive
<AppBar>Barra de navegación superior con búsqueda, alternancia de modo, menú de usuario
<Drawer>Navegación lateral con lista de colecciones y enlaces a vistas
<SideDialogs>Contenedor para editores de entidades en panel lateral
<RebaseRoutes>Contenedor de rutas que se integra con React Router
<RebaseRoute>Maneja las rutas de colección (/c/*)
<ContentHomePage>Página de inicio predeterminada que muestra tarjetas de colección
<StudioHomePage>Página de inicio del modo Studio con herramientas para desarrolladores

Agrega vistas de navegación de nivel superior para paneles, herramientas o páginas personalizadas:

const views: CMSView[] = [
{
slug: "dashboard",
name: "Panel de control",
icon: "dashboard",
group: "Analíticas",
view: <MyDashboard />
},
{
slug: "settings",
name: "Configuración de la aplicación",
icon: "settings",
view: <AppSettings />,
nestedRoutes: true // Soporte para subrutas
}
];

Rebase utiliza Tailwind CSS v4 y soporta modos claro/oscuro. Personaliza a través de:

  • Propiedades personalizadas CSS — Anula tokens de diseño
  • ModeControllerProvider — Controla el modo claro/oscuro
  • Configuración de Tailwind — Personalización estándar de Tailwind
/* Anular tokens de diseño */
:root {
--font-sans: "Inter", sans-serif;
--font-mono: "JetBrains Mono", monospace;
}