From 08124aa84fdbc48b1579c37e75cb7bc69c1feff8 Mon Sep 17 00:00:00 2001
From: "Thomas F. K. Jorna" <thomasfkjorna@gmail.com>
Date: Sun, 18 Jul 2021 01:42:47 +0200
Subject: first steps towards expand mode

---
 app/screens/graph/graph-screen.tsx | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

(limited to 'app/screens')

diff --git a/app/screens/graph/graph-screen.tsx b/app/screens/graph/graph-screen.tsx
index ebca953..b4ec1d9 100644
--- a/app/screens/graph/graph-screen.tsx
+++ b/app/screens/graph/graph-screen.tsx
@@ -56,6 +56,7 @@ export const GraphScreen = observer(function GraphScreen() {
     hover: true,
     colorful: true,
     galaxy: true,
+    rootId: 0,
   }
 
   const getData = async () => {
@@ -101,7 +102,7 @@ export const GraphScreen = observer(function GraphScreen() {
   // Get previous settings and the data from the org-roam-server
   const sanitizeGraph = (data, nodeIds: string[]) => {
     const cleanLinks = [];
-    data.links.forEach((link) => {
+    data.links.forEach((link, j) => {
       let target;
       let source;
       for (let i = 0; i < nodeIds.length; i++) {
@@ -114,7 +115,7 @@ export const GraphScreen = observer(function GraphScreen() {
           //a.neighbors.push(a);
           a.links.push(link);
           target = [a, i];
-          cleanLinks.push(link);
+          link.target===link.source ? null : cleanLinks.push(link);
         } else if (link.source === nodeIds[i]) {
           //let a = data.nodes[i];
           //!a.neighbors && (a.neighbors = []);
@@ -122,10 +123,12 @@ export const GraphScreen = observer(function GraphScreen() {
           a.links.push(link);
           source = [a, i];
         };
-      };
+        };
       if (target && source) {
         data.nodes[target[1]].neighbors.push(source[0]);
         data.nodes[source[1]].neighbors.push(target[0]);
+        link.sourceIndex=source[1];
+        link.targetIndex=target[1];
       }
     });
     console.log(cleanLinks);
@@ -135,8 +138,13 @@ export const GraphScreen = observer(function GraphScreen() {
 
   const getNodesById = (data) => {
     let temp = [];
-    data.nodes.forEach(node => temp.push(node.id));
+      data.nodes.forEach((node, i) => {
+          temp.push(node.id);
+          node.index=i;
+      }
+      );
     setNodeIds(temp);
+
     return temp;
   };
 
-- 
cgit v1.2.3