summaryrefslogtreecommitdiff
path: root/app/screens/graph
diff options
context:
space:
mode:
Diffstat (limited to 'app/screens/graph')
-rw-r--r--app/screens/graph/graph-screen.tsx84
1 files changed, 58 insertions, 26 deletions
diff --git a/app/screens/graph/graph-screen.tsx b/app/screens/graph/graph-screen.tsx
index 2ae956c..9f1f08c 100644
--- a/app/screens/graph/graph-screen.tsx
+++ b/app/screens/graph/graph-screen.tsx
@@ -15,6 +15,8 @@ import AsyncStorage from "@react-native-async-storage/async-storage"
import axios from "axios";
+import rando from "../../data/rando.json"
+
const ROOT: ViewStyle = {
backgroundColor: color.palette.black,
flex: 1,
@@ -27,7 +29,10 @@ export const GraphScreen = observer(function GraphScreen() {
// Pull in navigation via hook
// const navigation = useNavigation()
+
const [physics, setPhysics] = useState({})
+ const [graphData, setGraphData] = useState();
+ // { "nodes": [{ "id": 1 }, { "id": 2 }], "links": [{ "target": 1, "source": 2 }] });
const physicsInit = {
charge: -30,
collision: false,
@@ -45,10 +50,10 @@ export const GraphScreen = observer(function GraphScreen() {
const getData = async () => {
try {
const value: string = await AsyncStorage.getItem("@physics");
- if (value !== null ) {
- const valueJson = JSON.parse(value);
- if ( Object.keys(valueJson).length === Object.keys(physicsInit).length) {
- return valueJson;
+ if (value !== null) {
+ const valueJson = JSON.parse(value);
+ if (Object.keys(valueJson).length === Object.keys(physicsInit).length) {
+ return valueJson;
} else { return physicsInit };
} else {
return physicsInit
@@ -57,19 +62,6 @@ export const GraphScreen = observer(function GraphScreen() {
console.log(e)
}
}
-
- //"ComponentOnMount"
- // Get previous settings and the data from the org-roam-server
- useEffect(() => {
- getData().then((data) => setPhysics(data));
- // axios.get('/roamData')
- // .then(()=>console.log("Whoo got data"))
- //.catch((e)=>{
- // console.log(e);
- // console.log("Couldn't get data.");
- //});
- }, [])
-
const storeData = async (value) => {
try {
const jsonValue = JSON.stringify(value)
@@ -93,14 +85,54 @@ export const GraphScreen = observer(function GraphScreen() {
console.log(test)
}, 1000)
return () => clearTimeout(timer)
- }, [physics])
+ }, [physics]);
- const gData = genRandomTree()
+ //"ComponentOnMount"
+ // Get previous settings and the data from the org-roam-server
+ const sanitizeGraph = (data, nodeIds: string[]) => {
+ const cleanLinks = [];
+ data.links.forEach((link, i) => {
+ for (i=0; i<=nodeIds.length; i++){
+ if (link.target === nodeIds[i]) {
+ cleanLinks.push(link);
+ break;
+ };
+ };
+ });
+ console.log(cleanLinks);
+ data.links = cleanLinks;
+ return data;
+ };
- return (
- <Screen style={ROOT} preset="scroll">
- <Tweaks physics={physics} setPhysics={setPhysics} />
- <Graph physics={physics} gData={gData} />
- </Screen>
- )
-})
+ const getNodesById = (data) => {
+ const nodeIds: string[] = [];
+ data.nodes.forEach(node => nodeIds.push(node.id));
+ return nodeIds;
+ };
+
+ useEffect(() => {
+ getData().then((data) => setPhysics(data));
+ axios.get("http://localhost:35901/graph")
+ .then((dataa) => {
+ const nodeIds = getNodesById(dataa.data);
+ console.log(nodeIds);
+ const cleanData = sanitizeGraph(dataa.data, nodeIds);
+ console.log(cleanData)
+ setGraphData(cleanData);
+ })
+ .catch((e) => {
+ console.log(e);
+ console.log("Couldn't get data.");
+ //setGraphData(rando);
+ });
+ }, [])
+ if (!graphData) { return null }
+ else {
+ return (
+ <Screen style={ROOT} preset="scroll">
+ <Tweaks physics={physics} setPhysics={setPhysics} />
+ <Graph physics={physics} gData={graphData} />
+ </Screen>
+ )
+ }
+ })