From 075d3831ffae63f128bcaabf9fc5e70ade41ad33 Mon Sep 17 00:00:00 2001
From: "Thomas F. K. Jorna" <thomas@thomass-air.kpn>
Date: Tue, 21 Sep 2021 21:00:21 +0200
Subject: chore: separated out all tweak panels

---
 components/VisualsPanel.tsx | 117 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 117 insertions(+)
 create mode 100644 components/VisualsPanel.tsx

(limited to 'components/VisualsPanel.tsx')

diff --git a/components/VisualsPanel.tsx b/components/VisualsPanel.tsx
new file mode 100644
index 0000000..1b6fceb
--- /dev/null
+++ b/components/VisualsPanel.tsx
@@ -0,0 +1,117 @@
+import { ArrowRightIcon, ChevronDownIcon } from '@chakra-ui/icons'
+import {
+  Text,
+  Accordion,
+  AccordionButton,
+  AccordionItem,
+  Box,
+  Flex,
+  IconButton,
+  Menu,
+  MenuButton,
+  MenuItemOption,
+  MenuList,
+  MenuOptionGroup,
+  Portal,
+  Tooltip,
+  VStack,
+  AccordionIcon,
+  AccordionPanel,
+  MenuItem,
+  Collapse,
+  StackDivider,
+  Button,
+} from '@chakra-ui/react'
+import React, { useCallback } from 'react'
+import { ColorMenu } from './ColorMenu'
+import { EnableSection } from './EnableSection'
+import { SliderWithInfo } from './SliderWithInfo'
+import { HighlightingPanel } from './HighlightingPanel'
+import { ColorsPanel } from './ColorsPanel'
+import { colorList, initialVisuals } from './config'
+import { NodesNLinksPanel } from './NodesNLinksPanel'
+import { LabelsPanel } from './LabelsPanel'
+import { CitationsPanel } from './CitationsPanel'
+
+export interface VisualsPanelProps {
+  visuals: typeof initialVisuals
+  setVisuals: any
+  highlightColor: string
+  setHighlightColor: any
+  threeDim: boolean
+}
+
+export const VisualsPanel = (props: VisualsPanelProps) => {
+  const { visuals, setVisuals, highlightColor, setHighlightColor, threeDim } = props
+  const setVisualsCallback = useCallback((val) => setVisuals(val), [])
+  return (
+    <VStack justifyContent="flex-start" align="stretch">
+      <Accordion allowToggle defaultIndex={[0]} paddingLeft={3}>
+        <AccordionItem>
+          <AccordionButton>
+            <Flex justifyContent="space-between" w="100%">
+              <Text>Colors</Text>
+              <AccordionIcon marginRight={2} />
+            </Flex>
+          </AccordionButton>
+          <AccordionPanel>
+            <ColorsPanel
+              visuals={visuals}
+              setVisualsCallback={setVisualsCallback}
+              highlightColor={highlightColor}
+              setHighlightColor={setHighlightColor}
+            />
+          </AccordionPanel>
+        </AccordionItem>
+        <AccordionItem>
+          <AccordionButton>
+            <Flex justifyContent="space-between" w="100%">
+              <Text>Nodes & Links</Text>
+              <AccordionIcon marginRight={2} />
+            </Flex>
+          </AccordionButton>
+          <AccordionPanel>
+            <NodesNLinksPanel
+              visuals={visuals}
+              setVisuals={setVisualsCallback}
+              threeDim={threeDim}
+            />
+          </AccordionPanel>
+        </AccordionItem>
+        <AccordionItem>
+          <AccordionButton>
+            <Flex justifyContent="space-between" w="100%">
+              <Text>Labels</Text>
+              <AccordionIcon marginRight={2} />
+            </Flex>
+          </AccordionButton>
+          <AccordionPanel>
+            <LabelsPanel visuals={visuals} setVisuals={setVisualsCallback} />
+          </AccordionPanel>
+        </AccordionItem>
+        <AccordionItem>
+          <AccordionButton>
+            <Flex justifyContent="space-between" w="100%">
+              <Text>Highlighting</Text>
+              <AccordionIcon marginRight={2} />
+            </Flex>
+          </AccordionButton>
+          <AccordionPanel>
+            <HighlightingPanel visuals={visuals} setVisuals={setVisualsCallback} />
+          </AccordionPanel>
+        </AccordionItem>
+        <AccordionItem>
+          <AccordionButton>
+            <Flex justifyContent="space-between" w="100%">
+              <Text>Citations</Text>
+              <AccordionIcon marginRight={2} />
+            </Flex>
+          </AccordionButton>
+          <AccordionPanel>
+            <CitationsPanel visuals={visuals} setVisuals={setVisualsCallback} />
+          </AccordionPanel>
+        </AccordionItem>
+      </Accordion>
+    </VStack>
+  )
+}
-- 
cgit v1.2.3

