From 733cf88bbfb172fe9c2211d2432e2b1ff2ffcc2d Mon Sep 17 00:00:00 2001
From: "Thomas F. K. Jorna" <thomasfkjorna@gmail.com>
Date: Mon, 16 Aug 2021 16:43:31 +0200
Subject: feat: link children to parent heading #62 #53 #49

---
 components/tweaks.tsx | 65 +++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 55 insertions(+), 10 deletions(-)

(limited to 'components/tweaks.tsx')

diff --git a/components/tweaks.tsx b/components/tweaks.tsx
index 26f1b60..d0605cd 100644
--- a/components/tweaks.tsx
+++ b/components/tweaks.tsx
@@ -202,6 +202,60 @@ export const Tweaks = (props: TweakProps) => {
                 paddingLeft={7}
                 color="gray.800"
               >
+                <Flex alignItems="center" justifyContent="space-between">
+                  <Text>Link children to...</Text>
+                  <Menu isLazy placement="right">
+                    <MenuButton
+                      as={Button}
+                      rightIcon={<ChevronDownIcon />}
+                      colorScheme=""
+                      color="black"
+                    >
+                      {(() => {
+                        switch (filter.parent) {
+                          case 'parent':
+                            return <Text>File</Text>
+                          case 'heading':
+                            return <Text>Heading</Text>
+                          default:
+                            return <Text>Nothing</Text>
+                        }
+                      })()}
+                    </MenuButton>
+                    <Portal>
+                      {' '}
+                      <MenuList bgColor="gray.200" zIndex="popover">
+                        <MenuItem
+                          onClick={() =>
+                            setFilter((curr: typeof initialFilter) => ({ ...curr, parent: '' }))
+                          }
+                        >
+                          Nothing
+                        </MenuItem>
+                        <MenuItem
+                          onClick={() =>
+                            setFilter((curr: typeof initialFilter) => ({
+                              ...curr,
+                              parent: 'parent',
+                            }))
+                          }
+                        >
+                          Parent file node
+                        </MenuItem>
+                        <MenuItem
+                          onClick={() =>
+                            setFilter((curr: typeof initialFilter) => ({
+                              ...curr,
+                              parent: 'heading',
+                            }))
+                          }
+                        >
+                          Next highest heading node
+                        </MenuItem>
+                      </MenuList>
+                    </Portal>
+                  </Menu>
+                </Flex>
                 <Flex justifyContent="space-between">
                   <Text>Orphans</Text>
                   <Switch
@@ -213,15 +267,6 @@ export const Tweaks = (props: TweakProps) => {
                     isChecked={filter.orphans}
                   ></Switch>
                 </Flex>
-                <Flex justifyContent="space-between">
-                  <Text>Link nodes with parent file</Text>
-                  <Switch
-                    onChange={() => {
-                      setFilter({ ...filter, parents: !filter.parents })
-                    }}
-                    isChecked={filter.parents}
-                  ></Switch>
-                </Flex>
                 <Flex justifyContent="space-between">
                   <Text>Citations without note files</Text>
                   <Switch
@@ -328,7 +373,7 @@ export const Tweaks = (props: TweakProps) => {
                 </EnableSection>
                 <SliderWithInfo
                   value={-physics.charge / 100}
-                  onChange={(v) => setPhysicsCallback(v, 'gravity', -1 / 100)}
+                  onChange={(v) => setPhysicsCallback(v, 'charge', -1 / 100)}
                   label="Repulsive Force"
                 />
                 <EnableSection
-- 
cgit v1.2.3

