Fixed hotkeys not being reactive

This commit is contained in:
thepaperpilot 2022-12-21 22:32:28 -06:00
parent 0e93cc9401
commit 54510cefa4

View file

@ -13,22 +13,34 @@
<script setup lang="ts"> <script setup lang="ts">
import { GenericHotkey } from "features/hotkey"; import { GenericHotkey } from "features/hotkey";
import { reactive } from "vue"; import { watchEffect } from "vue";
const props = defineProps<{ const props = defineProps<{
hotkey: GenericHotkey; hotkey: GenericHotkey;
}>(); }>();
let key = reactive(props.hotkey).key; let key = "";
let isCtrl = false;
let isShift = false;
let isAlpha = false;
watchEffect(() => {
key = props.hotkey.key;
let isCtrl = key.startsWith("ctrl+"); isCtrl = key.startsWith("ctrl+");
if (isCtrl) key = key.slice(5); if (isCtrl) {
key = key.slice(5);
}
let isShift = key.startsWith("shift+"); isShift = key.startsWith("shift+");
if (isShift) key = key.slice(6); if (isShift) {
key = key.slice(6);
}
let isAlpha = key.length == 1 && key.toLowerCase() != key.toUpperCase(); isAlpha = key.length == 1 && key.toLowerCase() != key.toUpperCase();
if (isAlpha) key = key.toUpperCase(); if (isAlpha) {
key = key.toUpperCase();
}
});
</script> </script>
<style scoped> <style scoped>