summaryrefslogtreecommitdiff
path: root/components/Tweaks
diff options
context:
space:
mode:
Diffstat (limited to 'components/Tweaks')
-rw-r--r--components/Tweaks/FilterPanel.tsx23
-rw-r--r--components/Tweaks/ThemeSelect.tsx57
-rw-r--r--components/Tweaks/VisualsPanel.tsx13
3 files changed, 90 insertions, 3 deletions
diff --git a/components/Tweaks/FilterPanel.tsx b/components/Tweaks/FilterPanel.tsx
index df1dd81..39233f9 100644
--- a/components/Tweaks/FilterPanel.tsx
+++ b/components/Tweaks/FilterPanel.tsx
@@ -46,9 +46,15 @@ const FilterPanel = (props: FilterPanelProps) => {
color="gray.800"
>
<Flex alignItems="center" justifyContent="space-between">
- <Text>Link children to...</Text>
+ <Text>Link children to</Text>
<Menu isLazy placement="right">
- <MenuButton as={Button} rightIcon={<ChevronDownIcon />} colorScheme="" color="black">
+ <MenuButton
+ as={Button}
+ rightIcon={<ChevronDownIcon />}
+ colorScheme=""
+ color="black"
+ size="sm"
+ >
{(() => {
switch (filter.parent) {
case 'parent':
@@ -106,6 +112,17 @@ const FilterPanel = (props: FilterPanelProps) => {
></Switch>
</Flex>
<Flex justifyContent="space-between">
+ <Text>Dailies</Text>
+ <Switch
+ onChange={() => {
+ setFilter((curr: typeof initialFilter) => {
+ return { ...curr, dailies: !curr.dailies }
+ })
+ }}
+ isChecked={filter.dailies}
+ ></Switch>
+ </Flex>
+ <Flex justifyContent="space-between">
<Text>Citations without note files</Text>
<Switch
onChange={() => {
@@ -150,7 +167,7 @@ const FilterPanel = (props: FilterPanelProps) => {
</AccordionItem>
<AccordionItem>
<AccordionButton>
- Tag Colors
+ Tag colors
<AccordionIcon />
</AccordionButton>
<AccordionPanel pr={0} mr={0}>
diff --git a/components/Tweaks/ThemeSelect.tsx b/components/Tweaks/ThemeSelect.tsx
new file mode 100644
index 0000000..6a6b5d8
--- /dev/null
+++ b/components/Tweaks/ThemeSelect.tsx
@@ -0,0 +1,57 @@
+import React, { useContext } from 'react'
+import {
+ Box,
+ Button,
+ Flex,
+ Menu,
+ MenuButton,
+ MenuItem,
+ MenuList,
+ Portal,
+ Text,
+} from '@chakra-ui/react'
+
+import { themes } from '../themes'
+import { ChevronDownIcon } from '@chakra-ui/icons'
+import { ThemeContext } from '../../util/themecontext'
+
+export const ThemeSelect = () => {
+ type Theme = { [key: string]: string }
+ const { emacsTheme, setEmacsTheme, highlightColor } = useContext(ThemeContext)
+ return (
+ <Flex alignItems="center" justifyContent="space-between" pl={7} pr={2}>
+ <Text>Theme</Text>
+ <Menu isLazy placement="bottom" closeOnSelect={false}>
+ <MenuButton as={Button} colorScheme="" color="black" rightIcon={<ChevronDownIcon />}>
+ {emacsTheme[0]}
+ </MenuButton>
+ <MenuList minW={10} zIndex="popover" bgColor="gray.200">
+ <MenuItem
+ onClick={() => ''}
+ justifyContent="space-between"
+ alignItems="center"
+ display="flex"
+ >
+ <Box height={6} width={6}></Box>
+ </MenuItem>
+ {Object.keys(themes).map((theme: string, i: number) => (
+ <MenuItem
+ key={theme}
+ onClick={() => setEmacsTheme([theme, themes[theme]])}
+ justifyContent="space-between"
+ alignItems="center"
+ display="flex"
+ >
+ <Text>{theme}</Text>
+ <Flex height={6} width={20} flexDirection="column" flexWrap="wrap">
+ {Object.values(themes[theme as string]).map((color: string) => {
+ return <Box key={color} bgColor={color} flex="1 1 8px"></Box>
+ })}
+ </Flex>
+ </MenuItem>
+ ))}
+ </MenuList>
+ </Menu>
+ </Flex>
+ )
+}
diff --git a/components/Tweaks/VisualsPanel.tsx b/components/Tweaks/VisualsPanel.tsx
index 559975d..d3c8415 100644
--- a/components/Tweaks/VisualsPanel.tsx
+++ b/components/Tweaks/VisualsPanel.tsx
@@ -7,6 +7,13 @@ import {
VStack,
AccordionIcon,
AccordionPanel,
+ MenuButton,
+ Menu,
+ Button,
+ Box,
+ Portal,
+ MenuList,
+ MenuItem,
} from '@chakra-ui/react'
import React, { useCallback } from 'react'
import { HighlightingPanel } from './HighlightingPanel'
@@ -15,6 +22,8 @@ import { initialVisuals } from '../config'
import { NodesNLinksPanel } from './NodesNLinksPanel'
import { LabelsPanel } from './LabelsPanel'
import { CitationsPanel } from './CitationsPanel'
+import { ColorMenu } from './ColorMenu'
+import { ThemeSelect } from './ThemeSelect'
export interface VisualsPanelProps {
visuals: typeof initialVisuals
@@ -29,6 +38,7 @@ export const VisualsPanel = (props: VisualsPanelProps) => {
const setVisualsCallback = useCallback((val) => setVisuals(val), [])
return (
<VStack justifyContent="flex-start" align="stretch">
+ <ThemeSelect />
<Accordion allowToggle defaultIndex={[0]} paddingLeft={3}>
<AccordionItem>
<AccordionButton>
@@ -98,3 +108,6 @@ export const VisualsPanel = (props: VisualsPanelProps) => {
</VStack>
)
}
+function clickCallback(color: string): void {
+ throw new Error('Function not implemented.')
+}