From 5bad12bed24d5602f39b02ad39cac63facfa4cfd Mon Sep 17 00:00:00 2001 From: Sascha Date: Tue, 30 Mar 2021 17:05:12 +0200 Subject: [PATCH] Remove console.logs --- webui/src/pages/bug/labels/FilterDropdown.tsx | 144 ++++++++++++++++++ webui/src/pages/bug/labels/LabelMenu.tsx | 11 -- 2 files changed, 144 insertions(+), 11 deletions(-) create mode 100644 webui/src/pages/bug/labels/FilterDropdown.tsx diff --git a/webui/src/pages/bug/labels/FilterDropdown.tsx b/webui/src/pages/bug/labels/FilterDropdown.tsx new file mode 100644 index 0000000000000000000000000000000000000000..44874aafb0af436a85b2bce0d6f6a0068f877e38 --- /dev/null +++ b/webui/src/pages/bug/labels/FilterDropdown.tsx @@ -0,0 +1,144 @@ +import React, { useEffect, useRef, useState } from 'react'; + +import { IconButton, MenuItem } from '@material-ui/core'; +import Menu from '@material-ui/core/Menu'; +import TextField from '@material-ui/core/TextField'; +import { makeStyles, withStyles } from '@material-ui/core/styles'; +import SettingsIcon from '@material-ui/icons/Settings'; + +const CustomTextField = withStyles((theme) => ({ + root: { + margin: '0 8px 12px 8px', + '& label.Mui-focused': { + margin: '0 2px', + color: theme.palette.text.secondary, + }, + '& .MuiInput-underline::before': { + borderBottomColor: theme.palette.divider, + }, + '& .MuiInput-underline::after': { + borderBottomColor: theme.palette.divider, + }, + }, +}))(TextField); + +const ITEM_HEIGHT = 48; + +const useStyles = makeStyles((theme) => ({ + element: { + ...theme.typography.body2, + color: theme.palette.text.secondary, + padding: theme.spacing(0, 1), + fontWeight: 400, + textDecoration: 'none', + display: 'flex', + background: 'none', + border: 'none', + }, + labelsheader: { + display: 'flex', + flexDirection: 'row', + }, +})); + +export type FilterMenuItem = { + render: (item: T) => React.ReactNode; +}; + +type FilterDropdownProps = { + items?: FilterMenuItem[]; + hasFilter?: boolean; + onFilterChange: (filter: string) => void; +} & React.ButtonHTMLAttributes; + +function FilterDropdown({ + items, + hasFilter, + onFilterChange, +}: FilterDropdownProps) { + const buttonRef = useRef(null); + const searchRef = useRef(null); + const classes = useStyles({ active: false }); + + const [open, setOpen] = useState(false); + const [filter, setFilter] = useState(''); + + useEffect(() => { + searchRef && searchRef.current && searchRef.current.focus(); + }, [filter]); + + /*function sortBySelection(x: FilterMenuItem, y: FilterMenuItem) { + if (x.isSelected() === y.isSelected()) { + return 0; + } else if (x.isSelected()) { + return -1; + } else { + return 1; + } + } + + const sortedItems = items.sort(sortBySelection);*/ + + return ( + <> +
+ Labels + setOpen(!open)} + className={classes.element} + > + + +
+ + { + setOpen(false); + //const selectedLabels = dropdown + // .map(([key]) => (itemActive(key) ? key : '')) + // .filter((entry) => entry !== ''); + //onClose(selectedLabels); + }} + onExited={() => setFilter('')} + anchorEl={buttonRef.current} + PaperProps={{ + style: { + maxHeight: ITEM_HEIGHT * 4.5, + width: '25ch', + }, + }} + > + {hasFilter && ( + { + const { value } = e.target; + setFilter(value); + onFilterChange(value); + }} + onKeyDown={(e) => e.stopPropagation()} + value={filter} + label={`Filter Labels`} + /> + )} + {items && + items.map((item, index) => { + return {item}; + })} + + + ); +} + +export default FilterDropdown; diff --git a/webui/src/pages/bug/labels/LabelMenu.tsx b/webui/src/pages/bug/labels/LabelMenu.tsx index 8834731686500176cb334f8842c136bd0ef0f428..5c5a3ae95fae679b13f265b704aabc1afef68ce9 100644 --- a/webui/src/pages/bug/labels/LabelMenu.tsx +++ b/webui/src/pages/bug/labels/LabelMenu.tsx @@ -224,8 +224,6 @@ function LabelMenu({ bug }: Props) { ? selectedLabels.filter((label) => label !== key) : selectedLabels.concat([key]); setSelectedLabels(labels); - console.log('toggle (selected)'); - console.log(labels); } function diff(oldState: string[], newState: string[]) { @@ -238,13 +236,7 @@ function LabelMenu({ bug }: Props) { } const changeBugLabels = (selectedLabels: string[]) => { - console.log('CBL'); - console.log('selected labels'); - console.log(selectedLabels); - console.log('buglabels'); - console.log(bugLabelNames); const labels = diff(bugLabelNames, selectedLabels); - console.log(labels); if (labels.added.length > 0 || labels.removed.length > 0) { setLabelMutation({ variables: { @@ -267,7 +259,6 @@ function LabelMenu({ bug }: Props) { awaitRefetchQueries: true, }) .then((res) => { - console.log(res); setSelectedLabels(selectedLabels); setBugLabelNames(selectedLabels); }) @@ -279,9 +270,7 @@ function LabelMenu({ bug }: Props) { return selectedLabels.includes(key); } - //TODO label wont removed, if a filter hides it! function createNewLabel(name: string) { - console.log('CREATE NEW LABEL: ' + name); changeBugLabels(selectedLabels.concat([name])); }