From de163681c27d43d5ae35f9c999e30eaa1449e64c Mon Sep 17 00:00:00 2001 From: Nurfog Date: Wed, 14 Oct 2026 14:19:27 -0300 Subject: [PATCH] fix: useIssues recargaba en bucle por depender del objeto de filtros --- src/hooks/useIssues.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/hooks/useIssues.ts b/src/hooks/useIssues.ts index 8db1890..1b5facf 100644 --- a/src/hooks/useIssues.ts +++ b/src/hooks/useIssues.ts @@ -18,19 +18,26 @@ export function useIssues(filters?: IssueFilters, refreshKey = 0) { 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 () => { setLoading(true); setError(null); 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); } catch (err) { setError(err instanceof Error ? err.message : "Error cargando issues"); } finally { setLoading(false); } - }, [filtersKey, filters]); + }, [filtersKey]); useEffect(() => { void load();