snappymail/dev/View/Popup/KeyboardShortcutsHelp.js
djmaze eff92c3152 Cleanup AppUserStore
Simplify KeyState/Focused as Scope enum
2021-03-16 16:06:16 +01:00

38 lines
1 KiB
JavaScript

import { Scope } from 'Common/Enums';
import { AbstractViewPopup } from 'Knoin/AbstractViews';
class KeyboardShortcutsHelpPopupView extends AbstractViewPopup {
constructor() {
super('KeyboardShortcutsHelp');
}
onBuild(dom) {
dom.querySelectorAll('a[data-toggle="tab"]').forEach(node => node.Tab || new BSN.Tab(node));
// shortcuts.add('tab', 'shift',
shortcuts.add('tab,arrowleft,arrowright', '',
Scope.KeyboardShortcutsHelp,
((event, handler)=>{
if (event && handler) {
const tabs = dom.querySelectorAll('.nav.nav-tabs > li'),
last = tabs.length - 1;
let next = 0;
tabs.forEach((node, index) => {
if (node.matches('.active')) {
if (['tab','arrowright'].includes(handler.shortcut)) {
next = index < last ? index+1 : 0;
} else {
next = index ? index-1 : last;
}
}
});
tabs[next].querySelector('a[data-toggle="tab"]').Tab.show();
}
}).throttle(100)
);
}
}
export { KeyboardShortcutsHelpPopupView, KeyboardShortcutsHelpPopupView as default };