summaryrefslogtreecommitdiff
path: root/components/Tweaks/FilterPanel.tsx
diff options
context:
space:
mode:
authorThomas F. K. Jorna <[email protected]>2022-01-03 17:21:18 +0100
committerGitHub <[email protected]>2022-01-03 17:21:18 +0100
commitdad03e3be5b0a7c1159e0207cce11540ca830359 (patch)
tree4ae4e0a40c578e12b6d4f11a3f785c8190865f8b /components/Tweaks/FilterPanel.tsx
parent9ed0c5705a302a91fab2b8bcc777a12dcf9b3682 (diff)
feat(filter): add option to filter by subdirectory (#190)
Diffstat (limited to 'components/Tweaks/FilterPanel.tsx')
-rw-r--r--components/Tweaks/FilterPanel.tsx220
1 files changed, 0 insertions, 220 deletions
diff --git a/components/Tweaks/FilterPanel.tsx b/components/Tweaks/FilterPanel.tsx
deleted file mode 100644
index ad0c5e4..0000000
--- a/components/Tweaks/FilterPanel.tsx
+++ /dev/null
@@ -1,220 +0,0 @@
-import { ChevronDownIcon } from '@chakra-ui/icons'
-import {
- Text,
- Box,
- Button,
- Flex,
- Menu,
- MenuButton,
- StackDivider,
- VStack,
- Portal,
- MenuList,
- MenuItem,
- Switch,
- Accordion,
- AccordionItem,
- AccordionButton,
- AccordionIcon,
- AccordionPanel,
-} from '@chakra-ui/react'
-import React from 'react'
-import { TagPanel } from './TagPanel'
-import { initialFilter, initialLocal, TagColors } from '../config'
-import { TagColorPanel } from './TagColorPanel'
-import { SliderWithInfo } from './SliderWithInfo'
-
-export interface FilterPanelProps {
- filter: typeof initialFilter
- setFilter: any
- tagColors: TagColors
- setTagColors: any
- highlightColor: string
- colorList: string[]
- tags: string[]
- local: typeof initialLocal
- setLocal: any
-}
-
-const FilterPanel = (props: FilterPanelProps) => {
- const {
- filter,
- setFilter,
- local,
- setLocal,
- tagColors,
- setTagColors,
- highlightColor,
- colorList,
- tags,
- } = props
- return (
- <Box>
- <VStack
- spacing={2}
- justifyContent="flex-start"
- divider={<StackDivider borderColor="gray.500" />}
- align="stretch"
- 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"
- size="sm"
- >
- {(() => {
- 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
- onChange={() => {
- setFilter((curr: typeof initialFilter) => {
- return { ...curr, orphans: !curr.orphans }
- })
- }}
- isChecked={filter.orphans}
- ></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>Org-noter pages</Text>
- <Switch
- onChange={() => {
- setFilter((curr: typeof initialFilter) => {
- return { ...curr, noter: !curr.noter }
- })
- }}
- isChecked={filter.noter}
- ></Switch>
- </Flex>
- <Flex justifyContent="space-between">
- <Text>Citations without note files</Text>
- <Switch
- onChange={() => {
- setFilter({ ...filter, filelessCites: !filter.filelessCites })
- }}
- isChecked={filter.filelessCites}
- ></Switch>
- </Flex>
- <Flex justifyContent="space-between">
- <Text>Non-existent nodes</Text>
- <Switch
- onChange={() => {
- setTagColors({ ...tagColors, bad: 'white' })
- setFilter({ ...filter, bad: !filter.bad })
- }}
- isChecked={filter.bad}
- ></Switch>
- </Flex>
- <SliderWithInfo
- label="Number of neighbors in local graph"
- value={local.neighbors}
- onChange={(v) => setLocal({ ...local, neighbors: v })}
- min={1}
- max={5}
- step={1}
- />
- </VStack>
- <Accordion padding={0} allowToggle allowMultiple paddingLeft={3}>
- <AccordionItem>
- <AccordionButton>
- Tag filters
- <AccordionIcon />
- </AccordionButton>
- <AccordionPanel pr={0} mr={0}>
- <TagPanel
- highlightColor={highlightColor}
- filter={filter}
- setFilter={setFilter}
- tags={tags}
- mode="blacklist"
- />
- <TagPanel
- highlightColor={highlightColor}
- filter={filter}
- setFilter={setFilter}
- tags={tags}
- mode="whitelist"
- />
- </AccordionPanel>
- </AccordionItem>
- <AccordionItem>
- <AccordionButton>
- Tag colors
- <AccordionIcon />
- </AccordionButton>
- <AccordionPanel pr={0} mr={0}>
- <TagColorPanel
- tags={tags}
- colorList={colorList}
- tagColors={tagColors}
- setTagColors={setTagColors}
- highlightColor={highlightColor}
- />
- </AccordionPanel>
- </AccordionItem>
- </Accordion>
- </Box>
- )
-}
-
-export default FilterPanel