Files
clash-verge-rev/src/utils/parse-hotkey.ts
T

42 lines
887 B
TypeScript

import { KeyboardEvent } from 'react'
import getSystem from './get-system'
const OS = getSystem()
export const parseHotkey = (keyEvent: KeyboardEvent) => {
const nativeEvent = keyEvent.nativeEvent
const key = nativeEvent.code
let temp = key.toUpperCase()
if (temp.startsWith('ARROW')) {
temp = temp.slice(5)
} else if (temp.startsWith('DIGIT')) {
temp = temp.slice(5)
} else if (temp.startsWith('KEY')) {
temp = temp.slice(3)
} else if (temp.endsWith('LEFT')) {
temp = temp.slice(0, -4)
} else if (temp.endsWith('RIGHT')) {
temp = temp.slice(0, -5)
}
switch (temp) {
case 'CONTROL':
return 'CTRL'
case 'ALT':
if (OS === 'macos') {
return 'OPTION'
} else {
return 'ALT'
}
case 'META':
case 'OS':
return 'CMD'
case ' ':
return 'SPACE'
default:
return temp
}
}