Skip to content

Commit

Permalink
Remove keycode in favour of event.key (mui#859)
Browse files Browse the repository at this point in the history
* Remove keycode in favour of event.key

Ref https://twitter.com/olivtassinari/status/1084819202412818432

We can already see size improvement (which will be visible for end user
only after material-ui upgrade) in 1.5kB.

* Fix test
  • Loading branch information
TrySound authored and dmtrKovalenko committed Jan 15, 2019
1 parent 25571bf commit 659f981
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 31 deletions.
24 changes: 12 additions & 12 deletions lib/.size-snapshot.json
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
{
"build/dist/material-ui-pickers.esm.js": {
"bundled": 105990,
"minified": 61649,
"gzipped": 14542,
"bundled": 105952,
"minified": 61625,
"gzipped": 14531,
"treeshaked": {
"rollup": {
"code": 48352,
"import_statements": 1317
"code": 48350,
"import_statements": 1294
},
"webpack": {
"code": 55348
"code": 55301
}
}
},
"build/dist/material-ui-pickers.umd.js": {
"bundled": 219234,
"minified": 94953,
"gzipped": 25382
"bundled": 214636,
"minified": 93497,
"gzipped": 24654
},
"build/dist/material-ui-pickers.umd.min.js": {
"bundled": 199462,
"minified": 89267,
"gzipped": 24165
"bundled": 194864,
"minified": 87812,
"gzipped": 23434
}
}
3 changes: 2 additions & 1 deletion lib/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion lib/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
"dependencies": {
"@types/react-text-mask": "^5.4.3",
"clsx": "^1.0.1",
"keycode": "^2.2.0",
"react-event-listener": "^0.6.5",
"react-text-mask": "=5.4.1",
"react-transition-group": "^2.5.2",
Expand Down
13 changes: 6 additions & 7 deletions lib/src/DatePicker/components/Calendar.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import withStyles, { WithStyles } from '@material-ui/core/styles/withStyles';
import keycode from 'keycode';
import * as PropTypes from 'prop-types';
import * as React from 'react';
import EventListener from 'react-event-listener';
Expand Down Expand Up @@ -156,25 +155,25 @@ export class Calendar extends React.Component<CalendarProps, CalendarState> {
public handleKeyDown = (event: KeyboardEvent) => {
const { theme, date, utils } = this.props;

switch (keycode(event)) {
case 'up':
switch (event.key) {
case 'ArrowUp':
this.moveToDay(utils.addDays(date, -7));
break;
case 'down':
case 'ArrowDown':
this.moveToDay(utils.addDays(date, 7));
break;
case 'left':
case 'ArrowLeft':
theme.direction === 'ltr'
? this.moveToDay(utils.addDays(date, -1))
: this.moveToDay(utils.addDays(date, 1));
break;
case 'right':
case 'ArrowRight':
theme.direction === 'ltr'
? this.moveToDay(utils.addDays(date, 1))
: this.moveToDay(utils.addDays(date, -1));
break;
default:
// if keycode is not handled, stop execution
// if key is not handled, stop execution
return;
}

Expand Down
2 changes: 1 addition & 1 deletion lib/src/__tests__/e2e/DateTimePickerModal.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ describe('e2e - DateTimePickerModal', () => {
}

onKeyDown({
keyCode: 13, // enter
key: 'Enter',
preventDefault: jest.fn(),
} as any);

Expand Down
9 changes: 4 additions & 5 deletions lib/src/wrappers/InlineWrapper.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { Omit } from '@material-ui/core';
import Popover, { PopoverProps as PopoverPropsType } from '@material-ui/core/Popover';
import withStyles, { WithStyles } from '@material-ui/core/styles/withStyles';
import keycode from 'keycode';
import * as PropTypes from 'prop-types';
import * as React from 'react';
import EventListener from 'react-event-listener';
Expand Down Expand Up @@ -78,15 +77,15 @@ export class InlineWrapper extends React.PureComponent<
}
};

public handleKeyDown = (event: Event) => {
switch (keycode(event)) {
case 'enter': {
public handleKeyDown = (event: KeyboardEvent) => {
switch (event.key) {
case 'Enter': {
this.props.handleAccept();
this.close();
break;
}
default:
// if keycode is not handled, stop execution
// if key is not handled, stop execution
return;
}

Expand Down
7 changes: 3 additions & 4 deletions lib/src/wrappers/ModalWrapper.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Omit } from '@material-ui/core';
import { DialogProps as DialogPropsType } from '@material-ui/core/Dialog';
import keycode from 'keycode';
import * as PropTypes from 'prop-types';
import * as React from 'react';
import DateTextField, { DateTextFieldProps } from '../_shared/DateTextField';
Expand Down Expand Up @@ -78,12 +77,12 @@ export default class ModalWrapper extends React.PureComponent<ModalWrapperProps>
};

public handleKeyDown = (event: KeyboardEvent) => {
switch (keycode(event)) {
case 'enter':
switch (event.key) {
case 'Enter':
this.handleAccept();
break;
default:
// if keycode is not handled, stop execution
// if key is not handled, stop execution
return;
}

Expand Down

0 comments on commit 659f981

Please sign in to comment.