diff --git a/package-lock.json b/package-lock.json index 2298169..36b7608 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3716,14 +3716,6 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, - "deep-assign": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-2.0.0.tgz", - "integrity": "sha1-6+BrHwfwja5ZdiDj3RYi83GhxXI=", - "requires": { - "is-obj": "^1.0.0" - } - }, "deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", @@ -7525,7 +7517,8 @@ "is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true }, "is-obj-prop": { "version": "1.0.0", @@ -8201,7 +8194,8 @@ "keycode": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", - "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" + "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=", + "dev": true }, "killable": { "version": "1.0.0", diff --git a/package.json b/package.json index ce6b526..cc2b2f5 100644 --- a/package.json +++ b/package.json @@ -41,8 +41,6 @@ "dependencies": { "@babel/runtime": "7.0.0-rc.1", "classnames": "2.2.6", - "deep-assign": "2.0.0", - "keycode": "2.2.0", "material-design-icons": "3.0.1", "react-scrollbar-size": "2.1.0", "react-transition-group": "1.2.1", @@ -85,6 +83,7 @@ "karma-safari-launcher": "1.0.0", "karma-sourcemap-loader": "0.3.7", "karma-webpack": "3.0.0", + "keycode": "2.2.0", "lodash": "4.17.10", "mocha": "5.2.0", "npm-run-all": "4.1.3", diff --git a/src/Button/Button.js b/src/Button/Button.js index 7036417..b47e2ee 100644 --- a/src/Button/Button.js +++ b/src/Button/Button.js @@ -1,5 +1,4 @@ import {findDOMNode} from 'react-dom'; -import keycode from 'keycode'; import makeClass from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; @@ -54,9 +53,11 @@ class Button extends React.Component { onKeyDown = rippleMiddleware(this, 'keyDown', (e, ...args) => { this.setState({mouseFocused: false}); - const key = keycode(e.keyCode); + const {keyCode} = e; + const isEnter = (keyCode === 13); + const isSpace = (keyCode === 32); const isAnchorTag = findDOMNode(this).tagName === 'A'; - if (key === 'enter' || (!isAnchorTag && key === 'space')) { + if (isEnter || (!isAnchorTag && isSpace)) { e.persist(); this.ripple.remove(e, {}, () => ( this.ripple.add(e, {pulsate: true, centered: true}) diff --git a/src/Dialog/Dialog.spec.js b/src/Dialog/Dialog.spec.js index ad483f9..413b4b2 100644 --- a/src/Dialog/Dialog.spec.js +++ b/src/Dialog/Dialog.spec.js @@ -37,11 +37,13 @@ describe('Dialog', () => { assert(wrapper); }); - it('should mount in an open state, then close', () => { + it('should mount in an open state, then close', createTest(() => { const wrapper = mount(); wrapper.setProps({open: false}); - assert(wrapper); - }); + setTimeout(() => { + assert(wrapper); + }, 500); + })); it('should mount in an open state, then close', createTest(() => { const wrapper = mount( {React.Children.map(children, child => { const props = { - buttonProps: deepAssign({focusRippleDisabled: true}, child.props.buttonProps) + buttonProps: {...child.props.buttonProps, focusRippleDisabled: true} }; if (arrowNavigation) { props.onKeyDown = this.onKeyDown; diff --git a/src/Switch/Switch.js b/src/Switch/Switch.js index 832632c..4516fd0 100644 --- a/src/Switch/Switch.js +++ b/src/Switch/Switch.js @@ -1,4 +1,3 @@ -import keycode from 'keycode'; import makeClass from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; @@ -27,10 +26,12 @@ class Switch extends React.Component { this.input.click(); } - onKeyUp(e) { - const key = keycode(e.keyCode); + onKeyUp({keyCode}) { + const isTab = (keyCode === 9); + const isSpace = (keyCode === 32); + this.setState({ - keyboardFocused: (key === 'tab' || key === 'space') + keyboardFocused: (isTab || isSpace) }); }