@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
30 lines (29 loc) • 999 B
JavaScript
import { getSession } from '@jbrowse/core/util';
import { addDisposer } from '@jbrowse/mobx-state-tree';
export function setupKeyboardHandler(self) {
function handler(e) {
const session = getSession(self);
if (session.focusedViewId === self.id && (e.ctrlKey || e.metaKey)) {
if (e.code === 'ArrowLeft') {
e.preventDefault();
self.slide(-0.9);
}
else if (e.code === 'ArrowRight') {
e.preventDefault();
self.slide(0.9);
}
else if (e.code === 'ArrowUp') {
e.preventDefault();
self.zoom(self.bpPerPx / 2);
}
else if (e.code === 'ArrowDown') {
e.preventDefault();
self.zoom(self.bpPerPx * 2);
}
}
}
document.addEventListener('keydown', handler);
addDisposer(self, () => {
document.removeEventListener('keydown', handler);
});
}