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,