fix: useIssues recargaba en bucle por depender del objeto de filtros

This commit is contained in:
Nurfog committed 2026-10-14 14:19:27 -03:00
1 parent 8f33add874
commit de163681c2
1 file changed
+9 -2
+9 -2
View File
@@ -18,19 +18,26 @@ export function useIssues(filters?: IssueFilters, refreshKey = 0) {
const filtersKey = JSON.stringify(filters ?? {}); const filtersKey = JSON.stringify(filters ?? {});
// OJO: depender solo del string serializado. `filters` es un objeto
// nuevo en cada render (se crea inline en cada página); si entrara en
// las dependencias, `load` cambiaría siempre y el efecto recargaría en
// bucle, parpadeando la lista.
const load = useCallback(async () => { const load = useCallback(async () => {
setLoading(true); setLoading(true);
setError(null); setError(null);
try { try {
const result = await api.listIssues(filters ? JSON.parse(filtersKey) : undefined); const parsed = JSON.parse(filtersKey) as IssueFilters | undefined;
const result = await api.listIssues(
parsed && Object.keys(parsed).length > 0 ? parsed : undefined,
);
setIssues(result); setIssues(result);
} catch (err) { } catch (err) {
setError(err instanceof Error ? err.message : "Error cargando issues"); setError(err instanceof Error ? err.message : "Error cargando issues");
} finally { } finally {
setLoading(false); setLoading(false);
} }
}, [filtersKey, filters]); }, [filtersKey]);
useEffect(() => { useEffect(() => {
void load(); void load();