From 53c0324bf91f69ad5b38fe48956020b5279934c4 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Sun, 18 Jul 2021 23:38:38 +0200 Subject: prettier buttons etc --- app/components/graph/graph.tsx | 57 ++- app/components/tweaks/tweaks.tsx | 1001 ++++++++++++++++++++++++-------------- 2 files changed, 686 insertions(+), 372 deletions(-) (limited to 'app/components') diff --git a/app/components/graph/graph.tsx b/app/components/graph/graph.tsx index b11eb9b..8b041b5 100644 --- a/app/components/graph/graph.tsx +++ b/app/components/graph/graph.tsx @@ -285,7 +285,7 @@ onLinkHover={handleLinkHover} if (highlightNodes.size === 0) { return "rgb(100, 100, 100, 1)" } else { - return highlightNodes.has(node) ? "purple" : "rgb(50, 50, 50, 0.5)" + return highlightNodes.has(node) ? "#a991f1" : "rgb(50, 50, 50, 0.5)" } } : (node) => { @@ -327,7 +327,7 @@ onLinkHover={handleLinkHover} if (highlightLinks.size === 0) { return "rgb(50, 50, 50, 0.8)" } else { - return highlightLinks.has(link) ? "purple" : "rgb(50, 50, 50, 0.2)" + return highlightLinks.has(link) ? "#a991f1" : "rgb(50, 50, 50, 0.2)" } } : (link) => @@ -407,13 +407,13 @@ onLinkHover={handleLinkHover} d3AlphaMin={physics.alphaTarget} d3VelocityDecay={physics.velocityDecay} onBackgroundClick={handleBackgroundClick} + backgroundColor={"#242730"} /> ) : ( { @@ -423,10 +423,39 @@ onLinkHover={handleLinkHover} return highlightNodes.has(node) ? "purple" : "rgb(50, 50, 50, 0.5)" } } - : undefined + : (node) => { + if (node.neighbors.length === 1 || node.neighbors.length === 2) { + return [ + "#ff665c", + "#e69055", + "#7bc275", + "#4db5bd", + "#FCCE7B", + "#51afef", + "#1f5582", + "#C57BDB", + "#a991f1", + "#5cEfFF", + "#6A8FBF", + ][node.neighbors[0].index % 11] + } else { + return [ + "#ff665c", + "#e69055", + "#7bc275", + "#4db5bd", + "#FCCE7B", + "#51afef", + "#1f5582", + "#C57BDB", + "#a991f1", + "#5cEfFF", + "#6A8FBF", + ][node.index % 11] + } + } } - linkAutoColorBy={physics.colorful ? "target" : undefined} - //linkAutoColorBy={(d) => gData.nodes[d.source].id % GROUPS} + //linkAutoColorBy={physics.colorful ? ((d) => gData.nodes[d.sourceIndex].id % GROUPS) : undefined} linkColor={ !physics.colorful ? (link) => { @@ -436,7 +465,20 @@ onLinkHover={handleLinkHover} return highlightLinks.has(link) ? "purple" : "rgb(50, 50, 50, 0.2)" } } - : undefined + : (link) => + [ + "#ff665c", + "#e69055", + "#7bc275", + "#4db5bd", + "#FCCE7B", + "#51afef", + "#1f5582", + "#C57BDB", + "#a991f1", + "#5cEfFF", + "#6A8FBF", + ][gData.nodes[link.sourceIndex].index % 11] } linkDirectionalParticles={physics.particles} nodeLabel={(node) => node.title} @@ -472,6 +514,7 @@ onLinkHover={handleLinkHover} nodeThreeObjectExtend={true} onNodeClick={selectClick} onBackgroundClick={handleBackgroundClick} + backgroundColor={"#242730"} /> )} diff --git a/app/components/tweaks/tweaks.tsx b/app/components/tweaks/tweaks.tsx index 9e23afb..3bfeb6e 100644 --- a/app/components/tweaks/tweaks.tsx +++ b/app/components/tweaks/tweaks.tsx @@ -1,397 +1,668 @@ import * as React from "react" -import { ScrollView, StyleProp, Switch, TextStyle, TouchableOpacity, View, ViewStyle, StyleSheet, Button } from "react-native" +import { + ScrollView, + StyleProp, + TextStyle, + TouchableOpacity, + View, + ViewStyle, + StyleSheet, + Button, +} from "react-native" import { observer } from "mobx-react-lite" import { color, typography } from "../../theme" import { Text } from "../" import { flatten } from "ramda" import Slider from "@react-native-community/slider" import { useState } from "react" -import Accordion from 'react-native-collapsible/Accordion' -import * as Animatable from 'react-native-animatable' -import Icon from 'react-native-vector-icons/MaterialCommunityIcons' +import Accordion from "react-native-collapsible/Accordion" +import * as Animatable from "react-native-animatable" +import Icon from "react-native-vector-icons/MaterialCommunityIcons" +import {Switch} from "react-native-elements" const CONTAINER: ViewStyle = { - justifyContent: "center", + justifyContent: "center", } const TEXT: TextStyle = { - fontFamily: typography.primary, - fontSize: 14, - color: color.primary, + fontFamily: typography.primary, + fontSize: 14, + color: color.primary, } export interface TweaksProps { - /** - * An optional style override useful for padding & margin. - */ - style?: StyleProp - physics - setPhysics + /** + * An optional style override useful for padding & margin. + */ + style?: StyleProp + physics + setPhysics } /** * Describe your component here */ export const Tweaks = observer(function Tweaks(props: TweaksProps): JSX.Element { - const { style, physics, setPhysics } = props - // const styles = flatten([CONTAINER, style]) + const { style, physics, setPhysics } = props + // const styles = flatten([CONTAINER, style]) - const content = [ - { - title: "Physics", - content: - - - { setPhysics({ ...physics, gravityOn: !physics.gravityOn }) }} - /> - - { setPhysics({ ...physics, gravity: value }) }} - value={physics.gravity} - step={0.01} /> - - { setPhysics({ ...physics, charge: value }) }} - value={physics.charge} - step={1} /> - - { setPhysics({ ...physics, linkStrength: value }) }} - value={physics.linkStrength} - step={0.01} - /> - - { setPhysics({ ...physics, linkIts: value }) }} - value={physics.linkIts} - step={1} /> - - { setPhysics({ ...physics, collision: !physics.collision }) }} - /> - - { setPhysics({ ...physics, alphaDecay: value }) }} - value={physics.alphaDecay} - step={.01} /> - - { setPhysics({ ...physics, alphaTarget: value }) }} - value={physics.alphaTarget} - step={0.1} - /> - - { setPhysics({ ...physics, velocityDecay: value }) }} - value={physics.velocityDecay} - step={0.01} /> - - { setPhysics({ ...physics, galaxy: !physics.galaxy }) }} - /> - , - }, - { - title: 'Visual', - content: - - - { setPhysics({ ...physics, colorful: !physics.colorful }) }} - /> - - { setPhysics({ ...physics, hover: !physics.hover }) }} - /> - - { setPhysics({ ...physics, linkOpacity: value }) }} - value={physics.linkOpacity} - step={.01} /> - - { setPhysics({ ...physics, linkWidth: value }) }} - value={physics.linkWidth} - step={0.1} /> - - { setPhysics({ ...physics, nodeRel: value }) }} - value={physics.nodeRel} - step={.01} /> - - { setPhysics({ ...physics, particles: value }) }} - value={physics.particles} - step={1} /> - - { setPhysics({ ...physics, particleWidth: value }) }} - value={physics.particleWidth} - step={.1} /> - - { setPhysics({ ...physics, labels: !physics.labels }) }} - /> - - { setPhysics({ ...physics, labelScale: value }) }} - value={physics.labelScale} - step={.1} /> - , - }, - { - title: 'Modes', - content: - - - { setPhysics({ ...physics, collapse: !physics.collapse }) }} - /> - - { setPhysics({ ...physics, rootId: value }) }} - value={physics.rootId} - step={1} /> - - { setPhysics({ ...physics, threedim: !physics.threedim }) }} - /> - { setPhysics({ ...physics, local: !physics.local }) }} - /> - - }, - ]; + const content = [ + { + title: "Physics", + content: ( + + + { + setPhysics({ ...physics, gravityOn: !physics.gravityOn }) + }} + /> + + { + setPhysics({ ...physics, gravity: value }) + }} + value={physics.gravity} + step={0.01} + /> + + { + setPhysics({ ...physics, charge: value }) + }} + value={physics.charge} + step={1} + /> + + { + setPhysics({ ...physics, linkStrength: value }) + }} + value={physics.linkStrength} + step={0.01} + /> + + { + setPhysics({ ...physics, linkIts: value }) + }} + value={physics.linkIts} + step={1} + /> + + { + setPhysics({ ...physics, collision: !physics.collision }) + }} + /> + + { + setPhysics({ ...physics, alphaDecay: value }) + }} + value={physics.alphaDecay} + step={0.01} + /> + + { + setPhysics({ ...physics, alphaTarget: value }) + }} + value={physics.alphaTarget} + step={0.1} + /> + + { + setPhysics({ ...physics, velocityDecay: value }) + }} + value={physics.velocityDecay} + step={0.01} + /> + + { + setPhysics({ ...physics, galaxy: !physics.galaxy }) + }} + /> + + ), + }, + { + title: "Visual", + content: ( + + + { + setPhysics({ ...physics, colorful: !physics.colorful }) + }} + /> + + { + setPhysics({ ...physics, hover: !physics.hover }) + }} + /> + + { + setPhysics({ ...physics, linkOpacity: value }) + }} + value={physics.linkOpacity} + step={0.01} + /> + + { + setPhysics({ ...physics, linkWidth: value }) + }} + value={physics.linkWidth} + step={0.1} + /> + + { + setPhysics({ ...physics, nodeRel: value }) + }} + value={physics.nodeRel} + step={0.01} + /> + + { + setPhysics({ ...physics, particles: value }) + }} + value={physics.particles} + step={1} + /> + + { + setPhysics({ ...physics, particleWidth: value }) + }} + value={physics.particleWidth} + step={0.1} + /> + + { + setPhysics({ ...physics, labels: !physics.labels }) + }} + /> + + { + setPhysics({ ...physics, labelScale: value }) + }} + value={physics.labelScale} + step={0.1} + /> + + ), + }, + { + title: "Modes", + content: ( + + + { + setPhysics({ ...physics, collapse: !physics.collapse }) + }} + /> + + { + setPhysics({ ...physics, rootId: value }) + }} + value={physics.rootId} + step={1} + /> + + { + setPhysics({ ...physics, threedim: !physics.threedim }) + }} + /> + { + setPhysics({ ...physics, local: !physics.local }) + }} + /> + + ), + }, + ] - const [activeSections, setActiveSections] = useState([]); + const [activeSections, setActiveSections] = useState([]) - const setSections = (sections) => { - setActiveSections( - sections.includes(undefined) ? [] : sections - ); - }; + const setSections = (sections) => { + setActiveSections(sections.includes(undefined) ? [] : sections) + } - const renderHeader = (section, _, isActive) => { - return ( - - {section.title} - - ); - }; + const renderHeader = (section, _, isActive) => { + return ( + + {section.title} + + ) + } - const renderContent = (section, _, isActive) => { - return ( - { + return ( + + {section.content} + + ) + } + const [tweaks, setTweaks] = useState(true) + if (true) { + if (tweaks) { + return ( + + + { + setTweaks(false) + }} > - {section.content} - - ); - } - const [tweaks, setTweaks] = useState(true); - if (true) { - if (tweaks) { - return ( - - - { setTweaks(false) }}> - - - - - - - - ); - } else { - return ( - { setTweaks(true) }} - style={{ position: "absolute", top: 50, left: 50, width: 30, color: "#ffffff", zIndex: 100 }}> - - - ) - } + + + + + + + + ) } else { - return ( - - - - { setPhysics({ ...physics, charge: value }) }} - value={physics.charge} - step={1} /> - - { setPhysics({ ...physics, linkStrength: value }) }} - value={physics.linkStrength} - step={0.1} - /> - - { setPhysics({ ...physics, linkIts: value }) }} - value={physics.linkIts} - step={1} /> - - { setPhysics({ ...physics, collision: !physics.collision }) }} - /> - - - { setPhysics({ ...physics, particles: value }) }} - value={physics.particles} - step={1} /> - - - { setPhysics({ ...physics, collapse: !physics.collapse }) }} - /> - - { setPhysics({ ...physics, threedim: !physics.threedim }) }} - /> - - ); + return ( + { + setTweaks(true) + }} + style={{ + position: "absolute", + top: 50, + left: 50, + width: 30, + color: "#ffffff", + zIndex: 100, + }} + > + + + ) } + } else { + return ( + + + + { + setPhysics({ ...physics, charge: value }) + }} + value={physics.charge} + step={1} + /> + + { + setPhysics({ ...physics, linkStrength: value }) + }} + value={physics.linkStrength} + step={0.1} + /> + + { + setPhysics({ ...physics, linkIts: value }) + }} + value={physics.linkIts} + step={1} + /> + + { + setPhysics({ ...physics, collision: !physics.collision }) + }} + /> + + + { + setPhysics({ ...physics, particles: value }) + }} + value={physics.particles} + step={1} + /> + + + { + setPhysics({ ...physics, collapse: !physics.collapse }) + }} + /> + + { + setPhysics({ ...physics, threedim: !physics.threedim }) + }} + /> + + ) + } }) const styles = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: 'rgb(20,20,20)', - position: "absolute", - zIndex: 100, - left: 50, - top: 50, - width: 250, - borderRadius: 5, - borderStyle: "solid", - maxHeight: "70%", - paddingBottom: 20, - }, - title: { - textAlign: 'left', - fontSize: 22, - fontWeight: '300', - marginBottom: 20, - paddingLeft: 20, - }, - header: { - backgroundColor: '#111111', - padding: 10, - paddingBottom: 20, - textAlign: "left", - }, - headerText: { - textAlign: 'left', - paddingLeft: 30, - fontSize: 16, - fontWeight: '500', - }, - content: { - padding: 20, - paddingLeft: 60, - backgroundColor: '#000000', - }, - active: { - backgroundColor: 'rgba(0,0,0,1)', - }, - inactive: { - backgroundColor: 'rgba(20,20,20,1)', - }, - selectors: { - marginBottom: 10, - flexDirection: 'row', - justifyContent: 'center', - }, - selector: { - backgroundColor: '#111111', - padding: 10, - }, - activeSelector: { - fontWeight: 'bold', - }, - selectTitle: { - fontSize: 14, - fontWeight: '500', - padding: 10, - }, - multipleToggle: { - flexDirection: 'row', - justifyContent: 'center', - marginVertical: 30, - alignItems: 'center', - }, - multipleToggle__title: { - fontSize: 16, - marginRight: 8, - }, -}); + container: { + flex: 1, + backgroundColor: "#2a2e38", + position: "absolute", + zIndex: 100, + left: 50, + top: 50, + width: 250, + borderRadius: 5, + borderStyle: "solid", + maxHeight: "70%", + paddingBottom: 20, + }, + title: { + textAlign: "left", + fontSize: 22, + fontWeight: "300", + marginBottom: 20, + paddingLeft: 20, + }, + header: { + backgroundColor: "#2a2e38", + padding: 10, + paddingBottom: 20, + textAlign: "left", + }, + headerText: { + textAlign: "left", + paddingLeft: 30, + fontSize: 16, + fontWeight: "500", + }, + content: { + padding: 20, + paddingLeft: 60, + backgroundColor: "#000000", + }, + active: { + backgroundColor: "#2a2e38", + }, + inactive: { + backgroundColor: "#2a2e38", + }, + selectors: { + marginBottom: 10, + flexDirection: "row", + justifyContent: "center", + }, + selector: { + backgroundColor: "#2a2e38", + padding: 10, + }, + activeSelector: { + fontWeight: "bold", + }, + selectTitle: { + fontSize: 14, + fontWeight: "500", + padding: 10, + }, + multipleToggle: { + flexDirection: "row", + justifyContent: "center", + marginVertical: 30, + alignItems: "center", + }, + multipleToggle__title: { + fontSize: 16, + marginRight: 8, + }, + slider: { + minimumTrackTintColor: "#a991f1", + thumbTintColor: "#a991f1", + height: 40, + width: "90%", + }, + switch: { + width: "5", + height: 20, + marginVertical: 10, + }, +}) -- cgit v1.2.3