From: Michal Klobukowski Date: Wed, 13 Jun 2018 07:10:11 +0000 (+0200) Subject: Clean up main app bar and breadcrumbs code X-Git-Tag: 1.2.0~78^2~8 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/488c558be1f9b4a9aa48a06d43b97db0d8ff9101 Clean up main app bar and breadcrumbs code Feature #13590 Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski --- diff --git a/src/components/breadcrumbs/breadcrumbs.tsx b/src/components/breadcrumbs/breadcrumbs.tsx index a3f9462e..7fa85ca0 100644 --- a/src/components/breadcrumbs/breadcrumbs.tsx +++ b/src/components/breadcrumbs/breadcrumbs.tsx @@ -11,17 +11,12 @@ export interface Breadcrumb { label: string; } -interface BreadcrumbsDataProps { +interface BreadcrumbsProps { items: Breadcrumb[]; -} - -interface BreadcrumbsActionProps { onClick: (breadcrumb: Breadcrumb) => any; } -type BreadcrumbsProps = BreadcrumbsDataProps & BreadcrumbsActionProps & WithStyles; - -class Breadcrumbs extends React.Component { +class Breadcrumbs extends React.Component> { render() { const { classes, onClick } = this.props; diff --git a/src/components/main-app-bar/dropdown-menu/dropdown-menu.tsx b/src/components/main-app-bar/dropdown-menu/dropdown-menu.tsx index 4ce2f596..4f2b83af 100644 --- a/src/components/main-app-bar/dropdown-menu/dropdown-menu.tsx +++ b/src/components/main-app-bar/dropdown-menu/dropdown-menu.tsx @@ -3,18 +3,15 @@ // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; -import { Button, Grid, StyleRulesCallback, WithStyles, Menu, MenuItem, IconButton } from '@material-ui/core'; +import { Menu, IconButton } from '@material-ui/core'; import { PopoverOrigin } from '@material-ui/core/Popover'; -interface DropdownMenuDataProps { +interface DropdownMenuProps { id: string; icon: React.ComponentType; } - -type DropdownMenuProps = DropdownMenuDataProps; - class DropdownMenu extends React.Component { state = { diff --git a/src/components/main-app-bar/main-app-bar.tsx b/src/components/main-app-bar/main-app-bar.tsx index eb18fd12..4beea605 100644 --- a/src/components/main-app-bar/main-app-bar.tsx +++ b/src/components/main-app-bar/main-app-bar.tsx @@ -3,7 +3,7 @@ // SPDX-License-Identifier: AGPL-3.0 import * as React from "react"; -import { AppBar, Toolbar, Typography, Grid, IconButton, Badge, Paper, Input, StyleRulesCallback, withStyles, WithStyles, Button, MenuItem } from "@material-ui/core"; +import { AppBar, Toolbar, Typography, Grid, IconButton, Badge, StyleRulesCallback, withStyles, WithStyles, Button, MenuItem } from "@material-ui/core"; import NotificationsIcon from "@material-ui/icons/Notifications"; import PersonIcon from "@material-ui/icons/Person"; import HelpIcon from "@material-ui/icons/Help"; diff --git a/src/components/main-app-bar/search-bar/search-bar.tsx b/src/components/main-app-bar/search-bar/search-bar.tsx index f9e93d67..62c8cc3c 100644 --- a/src/components/main-app-bar/search-bar/search-bar.tsx +++ b/src/components/main-app-bar/search-bar/search-bar.tsx @@ -29,7 +29,7 @@ class SearchBar extends React.Component { value: "" }; - timeout: NodeJS.Timer; + timeout: number; render() { const { classes } = this.props; @@ -71,7 +71,7 @@ class SearchBar extends React.Component { handleChange = (event: React.ChangeEvent) => { clearTimeout(this.timeout); this.setState({ value: event.target.value }); - this.timeout = setTimeout( + this.timeout = window.setTimeout( () => this.props.onSearch(this.state.value), this.props.debounce || DEFAULT_SEARCH_DEBOUNCE ); @@ -83,7 +83,6 @@ class SearchBar extends React.Component { type CssRules = 'container' | 'input' | 'button'; const styles: StyleRulesCallback = theme => { - const { unit } = theme.spacing; return { container: { position: 'relative', @@ -91,18 +90,18 @@ const styles: StyleRulesCallback = theme => { }, input: { border: 'none', - borderRadius: unit / 4, + borderRadius: theme.spacing.unit / 4, boxSizing: 'border-box', - padding: unit, - paddingRight: unit * 4, + padding: theme.spacing.unit, + paddingRight: theme.spacing.unit * 4, width: '100%', }, button: { position: 'absolute', - top: unit / 2, - right: unit / 2, - width: unit * 3, - height: unit * 3 + top: theme.spacing.unit / 2, + right: theme.spacing.unit / 2, + width: theme.spacing.unit * 3, + height: theme.spacing.unit * 3 } }; };