diff options
author | Thomas F. K. Jorna <[email protected]> | 2021-10-11 01:46:29 +0200 |
---|---|---|
committer | Thomas F. K. Jorna <[email protected]> | 2021-10-11 01:46:29 +0200 |
commit | ca8adb497460e39654069ef583d851dd05078cb4 (patch) | |
tree | ef194bebfe1154823450daa708396782109dfe82 /components/Tweaks/ThemeSelect.tsx | |
parent | bb6fe7325dfe76c0618d34455e56122c3204a3b3 (diff) | |
parent | f495a9499c549d92d64ee3a2e50a239ea769c609 (diff) |
chore(preview): merge branches
Diffstat (limited to 'components/Tweaks/ThemeSelect.tsx')
-rw-r--r-- | components/Tweaks/ThemeSelect.tsx | 57 |
1 files changed, 57 insertions, 0 deletions
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> + ) +} |