fix(explorer): address PR #487 review blockers

1. Prevent active-but-disabled Focused button by only disabling when
   viewMode is not already "focused" (viewMode !== "focused" && !canActivateFocusedMode).
2. Generalize inspector fallback copy — stale/invalid node IDs are not
   necessarily grouped items, so remove the misleading "Activate Focused
   mode" hint.
3. Move pluginRuntimeRef.current read out of render by converting
   canActivateFocusedMode from useMemo to useState + useEffect, resolving
   two ESLint "cannot access refs during render" errors and the missing
   toolbar-memo dependency warning.

Co-authored-by: Sameer6305 <sskadam6305@gmail.com>
Co-authored-by: KaifAhmad1 <kaifahmad087@gmail.com>
This commit is contained in:
KaifAhmad1
2026-04-23 18:24:31 +05:30
co-authored by Sameer6305
parent bb0e9f49e3
commit 897d950bdc
2 changed files with 8 additions and 6 deletions
@@ -176,7 +176,7 @@ export function GraphInspectorPanel({
if (!graph.hasNode(nodeId)) {
return (
<div style={{ padding: 24, color: "#8b949e", fontSize: 13, lineHeight: 1.6 }}>
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.
</div>
);
}
@@ -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,