Skip to content

Commit 7d112ce

Browse files
committed
#SDSV-30 - Fix tree interaction
1 parent 73db68f commit 7d112ce

2 files changed

Lines changed: 16 additions & 12 deletions

File tree

src/components/GraphViewer/GraphViewer.js

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,10 @@ const GraphViewer = (props) => {
7070

7171
const handleNodeLeftClick = (node, event) => {
7272
if ( node.type === rdfTypes.Subject.key || node.type === rdfTypes.Sample.key || node.type === rdfTypes.Collection.key ) {
73-
node.collapsed = !node.collapsed;
7473
collapseSubLevels(node, node.collapsed, { links : 0 });
74+
node.collapsed = !node.collapsed;
7575
let updatedData = getPrunedTree(props.graph_id, selectedLayout.layout);
7676
setData(updatedData);
77-
78-
collapseSubLevels(node, true, { links : 0 });
79-
updatedData = getPrunedTree(props.graph_id, selectedLayout.layout);
80-
setData(updatedData);
8177
}
8278
handleNodeHover(node);
8379

@@ -121,7 +117,7 @@ const GraphViewer = (props) => {
121117
setCollapsed(!collapsed)
122118
setTimeout( () => {
123119
resetCamera();
124-
},200)
120+
},10)
125121
}
126122

127123
/**
@@ -174,10 +170,7 @@ const GraphViewer = (props) => {
174170

175171
const onEngineStop = () => {
176172
setForce();
177-
if ( triggerCenter ) {
178-
graphRef?.current?.ggv?.current.centerAt(selectedNode.x, selectedNode.y, ONE_SECOND);
179-
triggerCenter = false;
180-
}
173+
graphRef?.current?.ggv?.current.centerAt(selectedNode.x, selectedNode.y, ONE_SECOND);
181174
}
182175

183176
useEffect(() => {
@@ -234,8 +227,10 @@ const GraphViewer = (props) => {
234227
}, [selectedNode]);
235228

236229
useEffect(() => {
237-
if ( nodeSelected && ( nodeSelected?.tree_reference?.dataset_id?.includes(props.graph_id) ||
238-
nodeSelected?.dataset_id?.includes(props.graph_id) )) {
230+
let sameDataset = nodeSelected?.tree_reference?.dataset_id?.includes(props.graph_id) ||
231+
nodeSelected?.dataset_id?.includes(props.graph_id)
232+
|| nodeSelected?.attributes?.dataset_id?.includes(props.graph_id);
233+
if ( nodeSelected && sameDataset) {
239234
if ( nodeSelected?.id !== selectedNode?.id ){
240235
let node = nodeSelected;
241236
let collapsed = node.collapsed

src/utils/Splinter.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -799,6 +799,7 @@ class Splinter {
799799
}
800800

801801
if (node.attributes?.relativePath !== undefined) {
802+
node.attributes.dataset_id = this.dataset_id;
802803
node.attributes.publishedURI =
803804
Array.from(this.nodes)[0][1].attributes.hasUriPublished[0] +
804805
"?datasetDetailsTab=files&path=files/" +
@@ -1097,6 +1098,14 @@ class Splinter {
10971098
if ( node.graph_reference === undefined ) {
10981099
node.graph_reference = this.findReference(node.uri_api);
10991100
}
1101+
if ( node.graph_reference === undefined ) {
1102+
const fn = (hashMap, str) => [...hashMap.keys()].find(k => k.includes(str))
1103+
const graph_reference = fn(this.nodes, node.id)
1104+
1105+
if ( graph_reference ) {
1106+
node.graph_reference = this.findReference(graph_reference);
1107+
}
1108+
}
11001109
this.tree_map.set(node.id, node);
11011110
const newNode = {
11021111
id: node.uri_api,

0 commit comments

Comments
 (0)