Hooks Customizados
Overview
Section titled “Overview”Siguiendo el patrón de composición de SolidJS, encapsulamos lógica de negocio reutilizable en “Hooks” (funciones que retornan señales y métodos).
useTenants
Section titled “useTenants”Este hook gestiona la carga y selección del Tenant activo. Es fundamental para la arquitectura multi-tenant de Nostromo.
// src/lib/hooks/useTenants.ts
import { createSignal, createResource } from "solid-js";import { authenticatedFetch } from "../authFetch";
export function useTenants() { // Estado local para el tenant seleccionado const [selectedTenantId, setSelectedTenantId] = createSignal<string | null>(null);
// Fetch de tenants disponibles para el usuarioconst [tenants] = createResource(async () => {const response = await authenticatedFetch("/api/tenants");return response.json();});
const selectTenant = (id: string) => {setSelectedTenantId(id);// Persistir selección en localStorage o cookie si es necesariolocalStorage.setItem("current_tenant", id);};
return {tenants,selectedTenantId,selectTenant};}useProxy
Section titled “useProxy”Facilita la comunicación con el Backend Orchestrator, manejando automáticamente la inyección de headers de autorización y el manejo de errores HTTP 401/403.