From cbe1ca72068ad1b279d1e78a4ae0e2fc8780ecc8 Mon Sep 17 00:00:00 2001
From: "Thomas F. K. Jorna" <thomasfkjorna@gmail.com>
Date: Wed, 14 Jul 2021 17:27:11 +0200
Subject: added random graph with colored edged

---
 app/components/graph/graph.tsx | 71 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)
 create mode 100644 app/components/graph/graph.tsx

(limited to 'app/components/graph/graph.tsx')

diff --git a/app/components/graph/graph.tsx b/app/components/graph/graph.tsx
new file mode 100644
index 0000000..d41cfc7
--- /dev/null
+++ b/app/components/graph/graph.tsx
@@ -0,0 +1,71 @@
+import * as React from "react"
+import { StyleProp, TextStyle, View, ViewStyle } from "react-native"
+import { observer } from "mobx-react-lite"
+import { color, typography } from "../../theme"
+import { Text } from "../"
+import { flatten } from "ramda"
+
+import data from "../../data/miserables.json"
+import genRandomTree from "../../data/randomdata";
+
+import { ForceGraph2D, ForceGraph3D, ForceGraphVR, ForceGraphAR } from 'react-force-graph';
+import  Slider  from '@react-native-community/slider';
+
+const CONTAINER: ViewStyle = {
+  justifyContent: "center",
+}
+
+const TEXT: TextStyle = {
+  fontFamily: typography.primary,
+  fontSize: 14,
+  color: color.primary,
+}
+
+export interface GraphProps {
+  /**
+   * An optional style override useful for padding & margin.
+   */
+  style?: StyleProp<ViewStyle>
+}
+
+/**
+ * Describe your component here
+ */
+export const Graph = observer(function Graph(props: GraphProps) {
+  const { style } = props
+  const styles = flatten([CONTAINER, style])
+
+  //  const fgRef= React.useRef();
+
+
+    const GROUPS=12;
+    const gData = genRandomTree();
+
+    const [visco, setVisco] = React.useState(0.4);
+
+ // React.useEffect(()=> {
+ //     const fg = fgRef.current;
+
+ //     fg.d3Force('center', visco);
+ // });
+
+    return (
+    <View>
+    <Slider style={{position: "absolute", zIndex: 100, width: "20%", height: 40}}
+        minimumValue={0}
+        maximumValue={1}
+        onValueChange={(value)=>{setVisco(value)}}
+        value={visco}
+    />
+    <ForceGraph2D
+   //   ref={fgRef}
+      graphData={gData}
+      nodeAutoColorBy={d => d.id%GROUPS}
+      linkAutoColorBy={d => gData.nodes[d.source].id%GROUPS}
+      linkColor={"#ffffff"}
+      linkWidth={2}
+      d3VelocityDecay={visco}
+      />
+    </View>
+  )
+})
-- 
cgit v1.2.3

