pixelplanet/src/controls/keypress.js

48 lines
913 B
JavaScript
Raw Normal View History

/*
* keypress actions
* @flow
*/
import keycode from 'keycode';
import store from '../ui/store';
import copy from '../utils/clipboard';
import {
toggleGrid,
togglePixelNotify,
toggleMute,
notify,
} from '../actions';
function onKeyPress(event: KeyboardEvent) {
// ignore key presses if modal is open or chat is used
if (event.target.nodeName === 'INPUT'
|| event.target.nodeName === 'TEXTAREA'
) {
return;
}
switch (keycode(event)) {
case 'g':
store.dispatch(toggleGrid());
break;
case 'x':
store.dispatch(togglePixelNotify());
break;
case 'm':
store.dispatch(toggleMute());
break;
2020-04-29 02:38:36 +00:00
case 'r': {
const state = store.getState();
const { hover } = state.gui;
const text = hover.join('_');
copy(text);
store.dispatch(notify('Copied!'));
break;
}
default:
}
}
export default onKeyPress;