FesaComponents
DataTableEmpezar

Dos tablas en una página

Prefijos de parámetros para que cada tabla viva en la URL sin pisarse.

Dos tablas que comparten URL chocarían (¿de quién es ?page=2?). La solución es paramPrefix: cada tabla usa sus propias claves.

// Tabla de categorías
useSmartTable({
  fetchPage: fetchCategories,
  paramPrefix: "cat_",
});

// Tabla de artículos
useSmartTable({
  fetchPage: fetchArticles,
  paramPrefix: "articles_",
});

Resultado: ?cat_page=2&cat_sortBy=name&articles_page=5 — cada tabla pagina, ordena y busca por su cuenta. En la view, el mismo prefijo:

const catParams = parseTableSearchParams(params, { paramPrefix: "cat_" });
const artParams = parseTableSearchParams(params, { paramPrefix: "articles_" });

Filtros compartidos entre las dos tablas

Si un mismo panel de filtros afecta a ambas (como en fesa.com.pa), guarda los valores en un estado + ref compartido y, al cambiar, llama resetAndRefetch() en los dos refs. Receta completa: filtros con selects propios.