diff --git a/.changeset/serious-olives-watch.md b/.changeset/serious-olives-watch.md new file mode 100644 index 000000000..0e49bf718 --- /dev/null +++ b/.changeset/serious-olives-watch.md @@ -0,0 +1,5 @@ +--- +"@liam-hq/erd-core": patch +--- + +🐛 Fixed forever loading of related tables section for table without relationships diff --git a/frontend/packages/erd-core/src/components/ERDRenderer/ERDContent/useInitialAutoLayout.ts b/frontend/packages/erd-core/src/components/ERDRenderer/ERDContent/useInitialAutoLayout.ts index ae6b2e7ab..3b14f2b32 100644 --- a/frontend/packages/erd-core/src/components/ERDRenderer/ERDContent/useInitialAutoLayout.ts +++ b/frontend/packages/erd-core/src/components/ERDRenderer/ERDContent/useInitialAutoLayout.ts @@ -2,6 +2,7 @@ import { addHiddenNodeIds, updateActiveTableName, updateShowMode, + useDBStructureStore, } from '@/stores' import { getActiveTableNameFromUrl, @@ -18,13 +19,16 @@ export const useInitialAutoLayout = ( nodes: Node[], shouldFitViewToActiveTable: boolean, ) => { - const tableNodesInitialized = useMemo( - () => - nodes - .filter((node) => node.type === 'table') - .some((node) => node.measured), - [nodes], - ) + const dbStructure = useDBStructureStore() + const tableNodesInitialized = useMemo(() => { + const tableNodes = nodes.filter((node) => node.type === 'table') + const isInitializedDbStructure = Object.keys(dbStructure.tables).length > 0 + + return ( + tableNodes.some((node) => node.measured) || + (isInitializedDbStructure && tableNodes.length === 0) + ) + }, [nodes, dbStructure.tables]) const { getEdges } = useReactFlow() const {