mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 17:56:25 +00:00
41 lines
1.0 KiB
JavaScript
41 lines
1.0 KiB
JavaScript
import Mousetrap from 'mousetrap'
|
|
import CM from 'browser/main/lib/ConfigManager'
|
|
import ee from 'browser/main/lib/eventEmitter'
|
|
import { isObjectEqual } from 'browser/lib/utils'
|
|
require('mousetrap-global-bind')
|
|
import functions from './shortcut'
|
|
|
|
let shortcuts = CM.get().hotkey
|
|
|
|
ee.on('config-renew', function() {
|
|
// only update if hotkey changed !
|
|
const newHotkey = CM.get().hotkey
|
|
if (!isObjectEqual(newHotkey, shortcuts)) {
|
|
updateShortcut(newHotkey)
|
|
}
|
|
})
|
|
|
|
function updateShortcut(newHotkey) {
|
|
Mousetrap.reset()
|
|
shortcuts = newHotkey
|
|
applyShortcuts(newHotkey)
|
|
}
|
|
|
|
function formatShortcut(shortcut) {
|
|
return shortcut.toLowerCase().replace(/ /g, '')
|
|
}
|
|
|
|
function applyShortcuts(shortcuts) {
|
|
for (const shortcut in shortcuts) {
|
|
const toggler = formatShortcut(shortcuts[shortcut])
|
|
// only bind if the function for that shortcut exists
|
|
if (functions[shortcut]) {
|
|
Mousetrap.bindGlobal(toggler, functions[shortcut])
|
|
}
|
|
}
|
|
}
|
|
|
|
applyShortcuts(CM.get().hotkey)
|
|
|
|
module.exports = applyShortcuts
|