diff --git a/lightrag_webui/src/components/ui/Tabs.tsx b/lightrag_webui/src/components/ui/Tabs.tsx index 5a6c3904..ae155b60 100644 --- a/lightrag_webui/src/components/ui/Tabs.tsx +++ b/lightrag_webui/src/components/ui/Tabs.tsx @@ -42,11 +42,13 @@ const TabsContent = React.forwardRef< )) diff --git a/lightrag_webui/src/features/GraphViewer.tsx b/lightrag_webui/src/features/GraphViewer.tsx index 16801a0f..641e3c1d 100644 --- a/lightrag_webui/src/features/GraphViewer.tsx +++ b/lightrag_webui/src/features/GraphViewer.tsx @@ -140,8 +140,8 @@ const GraphViewer = () => { // Cleanup function when component unmounts return () => { - // If we're navigating away from the graph tab completely (not just switching tabs) - // we would clean up here, but for now we want to preserve the WebGL context + // Only log cleanup, don't actually clean up the WebGL context + // This allows the WebGL context to persist across tab switches console.log('Graph viewer cleanup') } }, [isGraphTabVisible, shouldRender, isFetching]) @@ -174,11 +174,12 @@ const GraphViewer = () => { [selectedNode] ) - // Only render the SigmaContainer when the tab is visible + // Since TabsContent now forces mounting of all tabs, we need to conditionally render + // the SigmaContainer based on visibility to avoid unnecessary rendering return (
+ {/* Only render the SigmaContainer when the tab is visible */} {isGraphTabVisible ? ( - // Only render SigmaContainer when tab is visible