diff --git a/frontend/src/pages/DatabaseSchema.tsx b/frontend/src/pages/DatabaseSchema.tsx index 024f801..cce08fd 100644 --- a/frontend/src/pages/DatabaseSchema.tsx +++ b/frontend/src/pages/DatabaseSchema.tsx @@ -376,9 +376,19 @@ export default function DatabaseSchema() { const [nodes, setNodes, onNodesChange] = useNodesState([]); const [edges, setEdges, onEdgesChange] = useEdgesState([]); + // Reset and rebuild when filtered schema changes useEffect(() => { - setNodes(layoutedNodes); - setEdges(layoutedEdges); + // Clear first to avoid stale edges + setNodes([]); + setEdges([]); + + // Then set new layout after a tick + if (layoutedNodes.length > 0) { + requestAnimationFrame(() => { + setNodes(layoutedNodes); + setEdges(layoutedEdges); + }); + } }, [layoutedNodes, layoutedEdges, setNodes, setEdges]); const getSearchIcon = (type: SearchResult['type']) => {