Skip to content

Commit

Permalink
Prepare for merge to master
Browse files Browse the repository at this point in the history
  • Loading branch information
ColinT committed Feb 21, 2020
1 parent 3f80571 commit e240f01
Show file tree
Hide file tree
Showing 5 changed files with 146 additions and 149 deletions.
1 change: 1 addition & 0 deletions src/main/Connector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ export class Connector {
{ username: string, characterId: number }
) {
// This relies on a mock unconsumed event to pass through the same workflow so we cast as any
// eslint-disable-next-line @typescript-eslint/no-explicit-any
this.onPlayerUpdate({} as any, { username, characterId })
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/HotkeyManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export class HotkeyManager {

private _hotkeyBindings: { [shortcut: string]: string[] } = {}

public hotkeyIsButton(hotkey: string): boolean {
public hotkeyIsButton (hotkey: string): boolean {
return new RegExp(/^button\d+$/).test(hotkey)
}

Expand Down
2 changes: 1 addition & 1 deletion src/renderer/Request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class Request {
baseURL: 'https://smmdb.net/api/',
responseType: 'json'
})
const githubApiKey = false // process.env.NODE_ENV === 'development' // TODO re-enable dev mode
const githubApiKey = process.env.NODE_ENV === 'development'
? JSON.parse(fs.readFileSync(path.join(__dirname, '../../../.credentials'), {
encoding: 'utf8'
})).github
Expand Down
288 changes: 142 additions & 146 deletions src/renderer/components/buttons/HotkeyButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -142,192 +142,188 @@ export class HotkeyButton extends React.PureComponent<HotkeyButtonProps, HotkeyB
)
}

/**
/**
* Converts a KeyboardEvent.key pre-defined value into an Electron accelerator value
* @param key - A KeyboardEvent.key value
* @returns An Electron accelerator value
*
* @param {string} [key] - A KeyboardEvent.key value
* @returns {string | undefined} An Electron accelerator value
* @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values
* @see https://www.electronjs.org/docs/api/accelerator
*/
public static keyToAccelerator(key?: string): string | undefined {
public static keyToAccelerator (key?: string): string | undefined {
if (key === undefined) {
return undefined;
return undefined
}

// If key is single alphanumeric then just use its value
if (key.length === 1 && new RegExp(/^[a-zA-Z0-9]+$/).test(key)) {
return key;
return key
}

// If key is a function key, use its value
if (new RegExp(/^F\d+$/).test(key)) {
return key;
return key
}

switch (key) {

// Other Electron supported keys
case "Add":
return "Plus"

case " ":
return "Space"

case "CapsLock":
return "Capslock"

case "NumLock":
return "Numlock"

case "ScrollLock":
return "Scrolllock"

case "ArrowDown":
return "Down"

case "ArrowLeft":
return "Left"

case "ArrowRight":
return "Right"

case "ArrowUp":
return "Up"

case "AudioVolumeUp":
return "VolumeUp"

case "AudioVolumeDown":
return "VolumeDown"

case "AudioVolumeMute":
return "VolumeMute"

case "MediaTrackNext":
return "MediaNextTrack"

case "MediaTrackPrevious":
return "MediaPreviousTrack"

case "Separator":
case "Decimal":
return "numdec"

case "Add":
return "numadd"

case "Subtract":
return "numsub"

case "Multiply":
return "nummult"

case "Divide":
return "numdiv"

case "Tab":
case "Backspace":
case "Delete":
case "Insert":
case "Enter":
case "Home":
case "End":
case "PageUp":
case "PageDown":
case "Escape":
case "PrintScreen":
case "MediaStop":
case "MediaPlayPause":
case "[":
case "{":
case "]":
case "}":
case "\\":
case "|":
case ";":
case ":":
case ' ':
return 'Space'

case 'CapsLock':
return 'Capslock'

case 'NumLock':
return 'Numlock'

case 'ScrollLock':
return 'Scrolllock'

case 'ArrowDown':
return 'Down'

case 'ArrowLeft':
return 'Left'

case 'ArrowRight':
return 'Right'

case 'ArrowUp':
return 'Up'

case 'AudioVolumeUp':
return 'VolumeUp'

case 'AudioVolumeDown':
return 'VolumeDown'

case 'AudioVolumeMute':
return 'VolumeMute'

case 'MediaTrackNext':
return 'MediaNextTrack'

case 'MediaTrackPrevious':
return 'MediaPreviousTrack'

case 'Separator':
case 'Decimal':
return 'numdec'

case 'Add':
return 'numadd'

case 'Subtract':
return 'numsub'

case 'Multiply':
return 'nummult'

case 'Divide':
return 'numdiv'

case 'Tab':
case 'Backspace':
case 'Delete':
case 'Insert':
case 'Enter':
case 'Home':
case 'End':
case 'PageUp':
case 'PageDown':
case 'Escape':
case 'PrintScreen':
case 'MediaStop':
case 'MediaPlayPause':
case '[':
case '{':
case ']':
case '}':
case '\\':
case '|':
case ';':
case ':':
case "'":
case "\"":
case ",":
case "<":
case ".":
case ">":
case "/":
case "?":
case "`":
case "!":
case "@":
case "#":
case "$":
case "%":
case "^":
case "&":
case "*":
case "(":
case ")":
case "-":
case "_":
case "=":
case "+":
case '"':
case ',':
case '<':
case '.':
case '>':
case '/':
case '?':
case '`':
case '!':
case '@':
case '#':
case '$':
case '%':
case '^':
case '&':
case '*':
case '(':
case ')':
case '-':
case '_':
case '=':
case '+':
return key

// 'Alt' modifiers
case "AltGraph":
case "Fn":
case "FnLock":
case "Alt":
case 'AltGraph':
case 'Fn':
case 'FnLock':
case 'Alt':
// key = "Alt" // Modifiers are not available in this release
return undefined

// 'Control' modifiers
case "Hyper":
case "Meta":
case "Symbol":
case "SymbolLock":
case "Control":
case 'Hyper':
case 'Meta':
case 'Symbol':
case 'SymbolLock':
case 'Control':
// key = "Control" // Modifiers are not available in this release
return undefined

// 'Shift' modifiers
case "Super":
case "Shift":
case 'Super':
case 'Shift':
// key = "Shift" // Modifiers are not available in this release
return undefined

// Uncommon keys
case "Clear":
case "Cut":
case "Undo":
return "Delete"
case 'Clear':
case 'Cut':
case 'Undo':
return 'Delete'

case "Copy":
case "CrSel":
case "Paste":
case "Redo":
return "Insert"
case 'Copy':
case 'CrSel':
case 'Paste':
case 'Redo':
return 'Insert'

// Convert all UI keys to the escape key
case "Accept":
case "Again":
case "Attn":
case "Cancel":
case "ContextMenu":
case "Execute":
case "Find":
case "Finish":
case "Help":
case "Pause":
case "Play":
case "Props":
case "Select":
case "ZoomIn":
case "ZoomOut":
return "Escape"
case 'Accept':
case 'Again':
case 'Attn':
case 'Cancel':
case 'ContextMenu':
case 'Execute':
case 'Find':
case 'Finish':
case 'Help':
case 'Pause':
case 'Play':
case 'Props':
case 'Select':
case 'ZoomIn':
case 'ZoomOut':
return 'Escape'

// There are too many possible keys so I am not going to produce an exhaustive list
default:
return undefined
}
}

}
2 changes: 1 addition & 1 deletion src/renderer/components/views/SettingsView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ class View extends React.PureComponent<SettingsViewProps, SettingsViewState> {

onHotkeyBindingChange (shortcut: string, hotkey?: string) {
const { hotkeyBindings } = this.state
hotkeyBindings[shortcut] = !!hotkey ? [hotkey] : []
hotkeyBindings[shortcut] = hotkey ? [hotkey] : []
this.setState({ hotkeyBindings })
}

Expand Down

0 comments on commit e240f01

Please sign in to comment.