Pular para o conteúdo

Visão Geral do Frontend

O frontend Rebase é um framework React que renderiza seu painel de administração. Ele lê suas definições de coleção e gera tabelas, formulários, navegação e roteamento automaticamente.

Os componentes chave que compõem um 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> é o provedor raiz que disponibiliza todas as funcionalidades do Rebase para os componentes filhos via contexto. Ele aceita:

PropDescrição
clientInstância de RebaseClient para dados, autenticação e armazenamento
collectionRegistryControllerResolve caminhos e configurações de coleção
cmsUrlControllerConstrói URLs e gerencia o roteamento
navigationStateControllerGerencia o estado de navegação, views e plugins
authControllerEstado e métodos de autenticação
storageSourceOperações de armazenamento de arquivos
userConfigPersistencePreferências de UI local (larguras de coluna, etc.)
entityViewsAbas de view de entidade personalizadas globais
entityActionsAções de entidade globais
pluginsInstâncias de plugins (prop legada — prefira passar via controlador de navegação)

Controladores são hooks React que configuram aspectos específicos do framework:

O controlador principal que interliga tudo:

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
});

Gerencia como as coleções são resolvidas a partir de caminhos de URL:

const collectionRegistryController = useBuildCollectionRegistryController({
userConfigPersistence
});

Configura a geração de URL:

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

Gerencia o tema claro/escuro:

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

Alterna entre os modos Studio e Content:

const adminModeController = useBuildAdminModeController();
// Provides: adminModeController.mode ("studio" | "content")
ComponenteDescrição
<Scaffold>Contêiner de layout principal com barra lateral responsiva
<AppBar>Barra de navegação superior com pesquisa, alternador de modo, menu do usuário
<Drawer>Navegação lateral com lista de coleções e links de views
<SideDialogs>Contêiner para editores de entidade do painel lateral
<RebaseRoutes>Contêiner de rotas que se integra com React Router
<RebaseRoute>Gerencia rotas de coleção (/c/*)
<ContentHomePage>Página inicial padrão mostrando cartões de coleção
<StudioHomePage>Página inicial do modo Studio com ferramentas de desenvolvedor

Adicione views de navegação de nível superior para painéis, ferramentas ou páginas personalizadas:

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

Rebase usa Tailwind CSS v4 e suporta modos claro/escuro. Personalize via:

  • Propriedades personalizadas CSS — Sobrescreva tokens de design
  • ModeControllerProvider — Controle o modo claro/escuro
  • Configuração Tailwind — Personalização padrão do Tailwind
/* Sobrescrever tokens de design */
:root {
--font-sans: "Inter", sans-serif;
--font-mono: "JetBrains Mono", monospace;
}