mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-14 02:06:29 +00:00
added shortcut manager and allow user to customize toggle mode shortcut
This commit is contained in:
40
browser/main/lib/shortcutManager.js
Normal file
40
browser/main/lib/shortcutManager.js
Normal file
@@ -0,0 +1,40 @@
|
||||
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')
|
||||
const functions = require('./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
|
||||
Reference in New Issue
Block a user