Referencia de Hooks
Visión general
Sección titulada «Visión general»Rebase proporciona hooks de React para acceder a la funcionalidad del framework desde cualquier componente dentro del árbol de proveedores <Rebase>.
useRebaseContext
Sección titulada «useRebaseContext»El hook maestro — accede a todo:
import { useRebaseContext } from "@rebasepro/app";
function MyComponent() { const context = useRebaseContext();
context.data // Operaciones de datos context.storageSource // Operaciones de archivo context.authController // Estado de autenticación context.navigation // Estado de navegación context.sidePanel // Control de panel lateral context.snackbarController // Notificaciones Toast}useAuthController
Sección titulada «useAuthController»Acceder al estado de autenticación:
import { useAuthController } from "@rebasepro/app";
function UserMenu() { const auth = useAuthController();
auth.user // Usuario actual (o nulo) auth.initialLoading // Cargando sesión inicial auth.signOut() // Cerrar sesión auth.getAuthToken() // Obtener JWT para llamadas a la API auth.extra // Datos de usuario adicionales (roles, etc.)}useSidePanel
Sección titulada «useSidePanel»Abrir entidades programáticamente en un panel lateral:
import { useSidePanel } from "@rebasepro/cms";
function OpenProductButton({ productId }) { const sidePanel = useSidePanel();
return ( <button onClick={() => { sidePanel.open({ path: "products", entityId: productId, collection: productsCollection }); }}> Abrir Producto </button> );}Métodos:
| Método | Descripción |
|---|---|
open({ path, entityId, collection }) |
Abrir una entidad en un panel lateral |
close() |
Cerrar el panel lateral actual |
replace({ path, entityId, collection }) |
Reemplazar el contenido del panel lateral actual |
useSnackbarController
Sección titulada «useSnackbarController»Mostrar notificaciones Toast:
import { useSnackbarController } from "@rebasepro/app";
function SaveButton() { const snackbar = useSnackbarController();
const handleSave = async () => { try { await saveData(); snackbar.open({ type: "success", message: "¡Guardado con éxito!" }); } catch (error) { snackbar.open({ type: "error", message: "Error al guardar" }); } };}useStorageSource
Sección titulada «useStorageSource»Acceder a las operaciones de almacenamiento de archivos:
import { useStorageSource } from "@rebasepro/app";
function FileUploader() { const storage = useStorageSource();
const upload = async (file: File) => { const result = await storage.putObject({ file, key: `documents/${file.name}` }); const { url } = await storage.getSignedUrl(result.key); return url; };}useModeController
Sección titulada «useModeController»Controlar tema claro/oscuro:
import { useModeController } from "@rebasepro/app";
function ThemeToggle() { const mode = useModeController();
return ( <button onClick={() => mode.setMode(mode.mode === "dark" ? "light" : "dark")}> Actual: {mode.mode} {/* "light" | "dark" */} </button> );}useSelectionDialog
Sección titulada «useSelectionDialog»Abrir un diálogo lateral para seleccionar entidades de una colección. Este es el mismo hook usado internamente cuando se renderiza una propiedad de relación:
import { useSelectionDialog } from "@rebasepro/cms";
function SelectProduct() { const selectionDialog = useSelectionDialog({ path: "products", collection: productsCollection, onSingleEntitySelected: (entity) => { console.log("Seleccionado:", entity); } });
return <button onClick={selectionDialog.open}>Seleccionar Producto</button>;}useNavigationStateController
Sección titulada «useNavigationStateController»Acceder al estado de navegación y colecciones resueltas:
import { useNavigationStateController } from "@rebasepro/cms";
function MyComponent() { const navigation = useNavigationStateController();
navigation.collections // Todas las colecciones registradas navigation.views // Vistas personalizadas navigation.adminViews // Vistas en modo administrador navigation.getCollection(path) // Obtener colección para una ruta}Próximos pasos
Sección titulada «Próximos pasos»- Visión general del Frontend — Referencia del framework de React
- SDK del Cliente — SDK de operaciones de datos
