diff --git a/explorer/src/workspaces/GraphWorkspace/GraphInspectorPanel.tsx b/explorer/src/workspaces/GraphWorkspace/GraphInspectorPanel.tsx index ec1554df..e512e4bd 100644 --- a/explorer/src/workspaces/GraphWorkspace/GraphInspectorPanel.tsx +++ b/explorer/src/workspaces/GraphWorkspace/GraphInspectorPanel.tsx @@ -176,7 +176,7 @@ export function GraphInspectorPanel({ if (!graph.hasNode(nodeId)) { return (
- Selected grouped item is not directly inspectable. Activate Focused mode to resolve to a canonical node. + Selected item is not available for inspection in the current graph.
); } diff --git a/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx b/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx index 404ebcad..32daf9e2 100644 --- a/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx +++ b/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx @@ -862,10 +862,10 @@ export function GraphWorkspace() { } setViewMode("focused"); }, [resolveNodeIdForFocusedMode, selectedNodeId]); - const canActivateFocusedMode = useMemo( - () => Boolean(resolveNodeIdForFocusedMode(selectedNodeId)), - [pluginRuntimeVersion, resolveNodeIdForFocusedMode, selectedNodeId], - ); + const [canActivateFocusedMode, setCanActivateFocusedMode] = useState(false); + useEffect(() => { + setCanActivateFocusedMode(Boolean(resolveNodeIdForFocusedMode(selectedNodeId))); + }, [pluginRuntimeVersion, resolveNodeIdForFocusedMode, selectedNodeId]); const focusNode = useCallback((nodeId: string) => { if (!nodeId) { @@ -1429,7 +1429,7 @@ export function GraphWorkspace() { label: "Focused", title: "Inspect the selected node in a focused local graph", active: viewMode === "focused", - disabled: !canActivateFocusedMode, + disabled: viewMode !== "focused" && !canActivateFocusedMode, onClick: activateFocusedMode, }, ], @@ -1532,6 +1532,8 @@ export function GraphWorkspace() { return groups; }, [ + activateFocusedMode, + canActivateFocusedMode, displayState.groupedViewAvailable, handlePluginAction, hasGraphContent,