diff --git a/explorer/src/workspaces/DecisionWorkspace/DecisionWorkspace.tsx b/explorer/src/workspaces/DecisionWorkspace/DecisionWorkspace.tsx index 9dd3949a..601148a1 100644 --- a/explorer/src/workspaces/DecisionWorkspace/DecisionWorkspace.tsx +++ b/explorer/src/workspaces/DecisionWorkspace/DecisionWorkspace.tsx @@ -102,11 +102,14 @@ export function DecisionWorkspace() { fetch("/api/decisions", { signal: ctrl.signal }) .then((r) => r.ok ? r.json() : Promise.reject(r.status)) .then((data) => { + if (ctrl.signal.aborted) return; setDecisions(data); if (data.length > 0) void loadChain(data[0]); }) .catch((e) => { if (e?.name !== "AbortError") console.error(e); }) - .finally(() => setListLoading(false)); + .finally(() => { + if (!ctrl.signal.aborted) setListLoading(false); + }); return () => ctrl.abort(); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); diff --git a/explorer/src/workspaces/OntologyWorkspace/AlignmentsTab.tsx b/explorer/src/workspaces/OntologyWorkspace/AlignmentsTab.tsx index 94f02c13..8034705d 100644 --- a/explorer/src/workspaces/OntologyWorkspace/AlignmentsTab.tsx +++ b/explorer/src/workspaces/OntologyWorkspace/AlignmentsTab.tsx @@ -286,7 +286,7 @@ export function AlignmentsTab() { diff --git a/explorer/src/workspaces/OntologyWorkspace/HealthTab.tsx b/explorer/src/workspaces/OntologyWorkspace/HealthTab.tsx index eb384925..44d2ffed 100644 --- a/explorer/src/workspaces/OntologyWorkspace/HealthTab.tsx +++ b/explorer/src/workspaces/OntologyWorkspace/HealthTab.tsx @@ -82,7 +82,7 @@ export function HealthTab({ onFixInEditor }: HealthTabProps) { {error ?
{error}
: null} {loading ? ( -
Computing health dashboard...
+
Computing health dashboard...
) : health ? ( <>
diff --git a/explorer/src/workspaces/OntologyWorkspace/OntologyManager.tsx b/explorer/src/workspaces/OntologyWorkspace/OntologyManager.tsx index 979fe4ee..363de1bc 100644 --- a/explorer/src/workspaces/OntologyWorkspace/OntologyManager.tsx +++ b/explorer/src/workspaces/OntologyWorkspace/OntologyManager.tsx @@ -5,7 +5,6 @@ import { BookOpen, CheckCircle2, ExternalLink, - GitMerge, Layers, Loader2, Plus, diff --git a/explorer/src/workspaces/OntologyWorkspace/ShaclStudio.tsx b/explorer/src/workspaces/OntologyWorkspace/ShaclStudio.tsx index 288fc231..5a64ee9b 100644 --- a/explorer/src/workspaces/OntologyWorkspace/ShaclStudio.tsx +++ b/explorer/src/workspaces/OntologyWorkspace/ShaclStudio.tsx @@ -254,7 +254,7 @@ export function ShaclStudio({ onJumpToNode }: ShaclStudioProps) {
diff --git a/explorer/tests/graphSceneState.display.test.ts b/explorer/tests/graphSceneState.display.test.ts index 76039d4d..6794cafc 100644 --- a/explorer/tests/graphSceneState.display.test.ts +++ b/explorer/tests/graphSceneState.display.test.ts @@ -160,7 +160,7 @@ test("summarizeDistanceBuckets reports local rings and outside count", () => { anchor: 1, oneHop: 1, twoHop: 1, - threeHop: 1, + threeHopPlus: 1, outside: 2, }); }); @@ -193,11 +193,11 @@ test("buildHeatmapRenderSnapshot caps and deterministically samples large rings" assert.equal(firstSnapshot.ringCounts.anchor, 1); assert.equal(firstSnapshot.ringCounts.oneHop, 130); assert.equal(firstSnapshot.ringCounts.twoHop, 700); - assert.equal(firstSnapshot.ringCounts.threeHop, 950); + assert.equal(firstSnapshot.ringCounts.threeHopPlus, 950); assert.equal(firstSnapshot.renderedRingCounts.anchor, 1); assert.equal(firstSnapshot.renderedRingCounts.oneHop, 120); assert.equal(firstSnapshot.renderedRingCounts.twoHop, 650); - assert.equal(firstSnapshot.renderedRingCounts.threeHop, 900); + assert.equal(firstSnapshot.renderedRingCounts.threeHopPlus, 900); assert.equal(firstSnapshot.saturationMode, "sampled"); assert.deepEqual(firstSnapshot.visibleNodeIds, secondSnapshot.visibleNodeIds); assert.ok(firstSnapshot.visibleNodeIds.includes("anchor")); @@ -233,7 +233,7 @@ test("resolveDistanceNodeStyle applies readable heatmap rings only when ready", anchor: 1, oneHop: 1, twoHop: 1, - threeHop: 1, + threeHopPlus: 1, outside: 1, }, }); @@ -268,7 +268,7 @@ test("resolveDistanceNodeStyle compresses saturated heatmap far rings", () => { anchor: 1, oneHop: 32, twoHop: 3350, - threeHop: 7412, + threeHopPlus: 7412, outside: 3280, }, }); @@ -295,14 +295,14 @@ test("resolveDistanceNodeStyle mutes unsampled heatmap nodes instead of coloring anchor: 1, oneHop: 0, twoHop: 2, - threeHop: 0, + threeHopPlus: 0, outside: 0, }, heatmapRenderedRingCounts: { anchor: 1, oneHop: 0, twoHop: 1, - threeHop: 0, + threeHopPlus: 0, outside: 0, }, heatmapSaturationMode: "sampled",