From bf90b255e06dbe28e7f44e90b069f7f54f9dc262 Mon Sep 17 00:00:00 2001 From: Christopher Hanna Johnson <chjohnson39@gmail.com> Date: Sun, 17 Mar 2019 10:40:13 +0100 Subject: [PATCH] optimizes and corrects dense variant WindowTopBar and button styling removes conflicting CSS button class bindings and duplicate default declarations part of #2214 --- .../mirador/window_actions.test.js | 2 +- __tests__/src/components/WindowTopBar.test.js | 7 ------- .../components/WorkspaceMenuButton.test.js | 3 +-- src/components/WindowTopBar.js | 21 +++++++++---------- src/components/WindowTopMenuButton.js | 3 +-- src/components/WorkspaceFullScreenButton.js | 4 +--- src/components/WorkspaceMenuButton.js | 2 +- src/containers/WindowTopMenuButton.js | 3 --- src/containers/WorkspaceFullScreenButton.js | 12 ----------- src/containers/WorkspaceMenuButton.js | 3 --- 10 files changed, 15 insertions(+), 45 deletions(-) diff --git a/__tests__/integration/mirador/window_actions.test.js b/__tests__/integration/mirador/window_actions.test.js index d7c892b22..538b80174 100644 --- a/__tests__/integration/mirador/window_actions.test.js +++ b/__tests__/integration/mirador/window_actions.test.js @@ -13,7 +13,7 @@ describe('Window actions', () => { await expect(page).toMatchElement('.mirador-window'); await page.waitFor(1000); - await expect(page).toClick('.mirador-window-close'); + await expect(page).toClick('button[aria-label="Close window"]'); const numWindows = await page.evaluate(page => ( document.querySelectorAll('.mirador-window').length )); // only default configed windows found diff --git a/__tests__/src/components/WindowTopBar.test.js b/__tests__/src/components/WindowTopBar.test.js index 51ad72784..e79197344 100644 --- a/__tests__/src/components/WindowTopBar.test.js +++ b/__tests__/src/components/WindowTopBar.test.js @@ -6,7 +6,6 @@ import Toolbar from '@material-ui/core/Toolbar'; import AppBar from '@material-ui/core/AppBar'; import WindowTopMenuButton from '../../../src/containers/WindowTopMenuButton'; -import WindowTopBarButtons from '../../../src/containers/WindowTopBarButtons'; import { MiradorMenuButton } from '../../../src/components/MiradorMenuButton'; import { WindowTopBar } from '../../../src/components/WindowTopBar'; @@ -35,7 +34,6 @@ describe('WindowTopBar', () => { expect(wrapper.find(Toolbar).length).toBe(1); expect(wrapper.find(MiradorMenuButton).length).toBe(3); expect(wrapper.find(Typography).length).toBe(1); - expect(wrapper.find(WindowTopBarButtons).length).toBe(1); expect(wrapper.find(WindowTopMenuButton).length).toBe(1); }); @@ -50,11 +48,6 @@ describe('WindowTopBar', () => { expect(wrapper.find(Typography).first().render().text()).toBe('awesome manifest'); }); - it('passes correct props to <WindowTopBarButtons/>', () => { - const wrapper = createWrapper(); - expect(wrapper.find(WindowTopBarButtons).first().props().windowId).toBe('xyz'); - }); - it('passe correct props to <WindowTopMenuButton', () => { const wrapper = createWrapper(); expect(wrapper.find(WindowTopMenuButton).first().props().windowId).toBe('xyz'); diff --git a/__tests__/src/components/WorkspaceMenuButton.test.js b/__tests__/src/components/WorkspaceMenuButton.test.js index 879ffd878..97b064ca7 100644 --- a/__tests__/src/components/WorkspaceMenuButton.test.js +++ b/__tests__/src/components/WorkspaceMenuButton.test.js @@ -17,10 +17,9 @@ describe('WorkspaceMenuButton', () => { it('the button has a class indicating that it is "selected" once it is clicked', () => { const menuButton = wrapper.find('MiradorMenuButton').first(); - expect(wrapper.find('MiradorMenuButton').first().props().className).toEqual(''); menuButton.props().onClick({ currentTarget: 'anElement' }); expect(wrapper.find('MiradorMenuButton').first().props().className).toEqual('ctrlBtnSelected'); menuButton.props().onClick({}); - expect(wrapper.find('MiradorMenuButton').first().props().className).toEqual(''); + expect(wrapper.find('MiradorMenuButton').first().props().className).toEqual(null); }); }); diff --git a/src/components/WindowTopBar.js b/src/components/WindowTopBar.js index 3a25435d4..7b38013bb 100644 --- a/src/components/WindowTopBar.js +++ b/src/components/WindowTopBar.js @@ -9,7 +9,6 @@ import Toolbar from '@material-ui/core/Toolbar'; import AppBar from '@material-ui/core/AppBar'; import classNames from 'classnames'; import WindowTopMenuButton from '../containers/WindowTopMenuButton'; -import WindowTopBarButtons from '../containers/WindowTopBarButtons'; import { MiradorMenuButton } from './MiradorMenuButton'; import ns from '../config/css-ns'; @@ -28,32 +27,32 @@ export class WindowTopBar extends Component { maximizeWindow, maximized, minimizeWindow, focused, } = this.props; return ( - <AppBar position="relative"> - <Toolbar disableGutters className={classNames(classes.windowTopBarStyle, focused ? classes.focused : null, ns('window-top-bar'))} variant="dense"> + <AppBar + className={classNames(classes.windowTopBarStyle, focused ? classes.focused : null, ns('window-top-bar'))} + color="secondary" + position="static" + > + <Toolbar disableGutters variant="dense"> <MiradorMenuButton aria-label={t('toggleWindowSideBar')} - color="inherit" onClick={toggleWindowSideBar} > <MenuIcon /> </MiradorMenuButton> - <Typography variant="h2" noWrap color="inherit" className={classes.title}> + <Typography variant="h2" noWrap className={classes.title}> {manifestTitle} </Typography> - <WindowTopBarButtons windowId={windowId} /> - <WindowTopMenuButton className={ns('window-menu-btn')} windowId={windowId} /> + <WindowTopMenuButton + windowId={windowId} + /> <MiradorMenuButton aria-label={(maximized ? t('minimizeWindow') : t('maximizeWindow'))} - className={ns('window-maximize')} - color="inherit" onClick={(maximized ? minimizeWindow : maximizeWindow)} > {(maximized ? <FullscreenExitIcon /> : <FullscreenIcon />)} </MiradorMenuButton> <MiradorMenuButton aria-label={t('closeWindow')} - className={ns('window-close')} - color="inherit" onClick={removeWindow} > <CloseIcon /> diff --git a/src/components/WindowTopMenuButton.js b/src/components/WindowTopMenuButton.js index 61dd7091f..06b653f49 100644 --- a/src/components/WindowTopMenuButton.js +++ b/src/components/WindowTopMenuButton.js @@ -52,8 +52,7 @@ export class WindowTopMenuButton extends Component { aria-haspopup="true" aria-label={t('windowMenu')} aria-owns={anchorEl ? `window-menu_${windowId}` : undefined} - className={classNames(classes.ctrlBtn, (anchorEl ? classes.ctrlBtnSelected : null))} - color="inherit" + className={classNames(anchorEl ? classes.ctrlBtnSelected : null)} onClick={this.handleMenuClick} > <MoreVertIcon /> diff --git a/src/components/WorkspaceFullScreenButton.js b/src/components/WorkspaceFullScreenButton.js index 09fd55281..f990a4b48 100644 --- a/src/components/WorkspaceFullScreenButton.js +++ b/src/components/WorkspaceFullScreenButton.js @@ -12,12 +12,11 @@ export class WorkspaceFullScreenButton extends Component { */ render() { const { - classes, isFullscreenEnabled, setWorkspaceFullscreen, t, + isFullscreenEnabled, setWorkspaceFullscreen, t, } = this.props; return ( <MiradorMenuButton aria-label={isFullscreenEnabled ? t('exitFullScreen') : t('workspaceFullScreen')} - className={classes.ctrlBtn} onClick={() => setWorkspaceFullscreen(!isFullscreenEnabled)} > {isFullscreenEnabled ? <FullscreenExitIcon /> : <FullscreenIcon />} @@ -29,7 +28,6 @@ export class WorkspaceFullScreenButton extends Component { WorkspaceFullScreenButton.propTypes = { isFullscreenEnabled: PropTypes.bool, setWorkspaceFullscreen: PropTypes.func.isRequired, - classes: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types t: PropTypes.func, }; diff --git a/src/components/WorkspaceMenuButton.js b/src/components/WorkspaceMenuButton.js index 18980d48b..9b5eebc16 100644 --- a/src/components/WorkspaceMenuButton.js +++ b/src/components/WorkspaceMenuButton.js @@ -52,7 +52,7 @@ export class WorkspaceMenuButton extends Component { aria-haspopup="true" aria-label={t('workspaceMenu')} aria-owns={anchorEl ? 'workspace-menu' : undefined} - className={classNames(classes.ctrlBtn, (anchorEl ? classes.ctrlBtnSelected : null))} + className={anchorEl ? classes.ctrlBtnSelected : null} id="menuBtn" onClick={this.handleMenuClick} > diff --git a/src/containers/WindowTopMenuButton.js b/src/containers/WindowTopMenuButton.js index bcef8e986..24e4922cd 100644 --- a/src/containers/WindowTopMenuButton.js +++ b/src/containers/WindowTopMenuButton.js @@ -9,9 +9,6 @@ import { WindowTopMenuButton } from '../components/WindowTopMenuButton'; * @returns {{ctrlBtn: {margin: (number|string)}}} */ const styles = theme => ({ - ctrlBtn: { - margin: theme.spacing.unit, - }, ctrlBtnSelected: { backgroundColor: theme.palette.action.selected, }, diff --git a/src/containers/WorkspaceFullScreenButton.js b/src/containers/WorkspaceFullScreenButton.js index adb534737..46f8cf9c0 100644 --- a/src/containers/WorkspaceFullScreenButton.js +++ b/src/containers/WorkspaceFullScreenButton.js @@ -22,20 +22,8 @@ const mapStateToProps = state => ({ */ const mapDispatchToProps = { setWorkspaceFullscreen: actions.setWorkspaceFullscreen }; -/** - * - * @param theme - * @returns {{ctrlBtn: {margin: (number|string)}}} - */ -const styles = theme => ({ - ctrlBtn: { - margin: theme.spacing.unit, - }, -}); - const enhance = compose( withTranslation(), - withStyles(styles), connect(mapStateToProps, mapDispatchToProps), ); diff --git a/src/containers/WorkspaceMenuButton.js b/src/containers/WorkspaceMenuButton.js index a7f928e67..e42ec015b 100644 --- a/src/containers/WorkspaceMenuButton.js +++ b/src/containers/WorkspaceMenuButton.js @@ -9,9 +9,6 @@ import { WorkspaceMenuButton } from '../components/WorkspaceMenuButton'; * @returns {{ctrlBtn: {margin: (number|string)}}} */ const styles = theme => ({ - ctrlBtn: { - margin: theme.spacing.unit, - }, ctrlBtnSelected: { backgroundColor: theme.palette.action.selected, }, -- GitLab