diff --git a/frontend/src/hooks/useSystemStructures.ts b/frontend/src/hooks/useSystemStructures.ts index 5f664dd..37a99de 100644 --- a/frontend/src/hooks/useSystemStructures.ts +++ b/frontend/src/hooks/useSystemStructures.ts @@ -38,9 +38,14 @@ export function useSystemStructures(visibleSystems: Set) { }; }, [visibleSystems]); + // Importante: filtrar pelos sistemas ATUALMENTE visíveis, não devolver + // tudo que já foi buscado alguma vez. O cache em si guarda tudo (evita + // recarregar ao reativar um sistema), mas sem esse filtro um sistema + // desligado (ex: fechar o diagrama do tegumentar) continuava aparecendo + // no `bySlug` pra sempre, porque nada nunca removia a entrada do cache. const structures = useMemo( - () => [...cacheRef.current.values()].flat(), - // eslint-disable-next-line react-hooks/exhaustive-deps + () => + [...visibleSystems].flatMap((slug) => cacheRef.current.get(slug) ?? []), [version, visibleSystems], );