Doodle3D-Transform/src/js/actions/hotkeys.js

41 lines
1.2 KiB
JavaScript

import * as actions from './index.js';
import bowser from 'bowser';
import keycode from 'keycode';
// import createDebug from 'debug';
// const debug = createDebug('d3d:actions:hotkeys');
export const keyPress = (event, pathname) => {
return (dispatch) => {
const { metaKey, ctrlKey } = event;
const key = keycode(event);
const commandKey = bowser.mac ? metaKey : ctrlKey;
// ignore key events from input fields by checking event target
// https://developer.mozilla.org/en-US/docs/Web/API/Event/target
const targetTag = event.target.tagName.toLowerCase();
if (targetTag === 'input' || targetTag === 'textarea') return;
if (pathname === '/') {
switch (key) {
case 's':
if (commandKey) {
event.preventDefault(); // pevent default browser saving behaviour
dispatch(actions.router.push('/save'));
}
break;
case 'o':
if (commandKey) {
event.preventDefault(); // pevent default browser opening behaviour
dispatch(actions.router.push('/my-doodles'));
}
break;
default:
break;
}
}
};
};