fix: useIssues recargaba en bucle por depender del objeto de filtros
This commit is contained in:
1 parent
8f33add874
commit
de163681c2
1 file changed
+9
-2
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user