fix: modifier keys triggering non modifier commands

This commit is contained in:
tglide
2023-07-21 12:46:35 +01:00
parent 791f55f81c
commit 2e13a568a4
6 changed files with 24 additions and 10 deletions
+2 -1
View File
@@ -14,6 +14,7 @@
};
export const toggleCommandCenter = () => {
console.log('toggleCommandCenter');
if (get(subPanels).length > 0) {
clearSubPanels();
} else {
@@ -88,8 +89,8 @@
}
const handleKeydown = (e) => {
if (isInputEvent(e)) return;
if (!$subPanels.length) {
if (isInputEvent(e)) return;
keys = [...keys, e.key].slice(-10);
resetKeys();
}
+7 -3
View File
@@ -174,9 +174,13 @@ export const commandCenterKeyDownHandler = derived(
const { keys, ctrl: meta, shift, alt } = command;
const isMetaPressed = meta ? (isMac() ? event.metaKey : event.ctrlKey) : true;
const isShiftPressed = shift ? event.shiftKey : true;
const isAltPressed = alt ? event.altKey : true;
const isMetaPressed = meta
? isMac()
? event.metaKey
: event.ctrlKey
: !(isMac() ? event.metaKey : event.ctrlKey);
const isShiftPressed = shift ? event.shiftKey : !event.shiftKey;
const isAltPressed = alt ? event.altKey : !event.altKey;
const commandKeyCodes = keys.map((key) => key.toUpperCase().charCodeAt(0));
const allKeysPressed = recentKeyCodes.join('').includes(commandKeyCodes.join(''));
+4 -1
View File
@@ -21,7 +21,10 @@
if (search) {
searchResults = [];
executeSearch(search);
} else searchResults = [];
} else {
searchResults = [];
executeSearch.cancel();
}
}
$: results = [
+3 -3
View File
@@ -114,7 +114,7 @@
type Group = { type: 'group'; name: string };
type IndexedOption = Option & { index: number };
function isGroup(item: Option | Group): item is Group {
return 'type' in item && item.type === 'group';
return !!item && 'type' in item && item.type === 'group';
}
const getGroupsAndOptions = (options: Option[]) => {
if (!options) return null;
@@ -210,7 +210,7 @@
if (isGroup(item)) return false;
if (!item.nested) return false;
return !isGroup(prevItem) && !prevItem.nested;
return !isGroup(prevItem) && !prevItem?.nested;
};
const isLastNested = (index: number) => {
@@ -219,7 +219,7 @@
if (isGroup(item)) return false;
if (!item.nested) return false;
return isGroup(nextItem) || !nextItem.nested;
return isGroup(nextItem) || !nextItem?.nested;
};
</script>
+5 -1
View File
@@ -5,12 +5,16 @@ export function debounce<F extends (...params: any[]) => void>(fn: F, delay: num
timeoutID = window.setTimeout(() => fn.apply(this, args), delay) as unknown as ReturnType<
typeof setTimeout
>;
} as F & { immediate: F };
} as F & { immediate: F; cancel: () => void };
debounceFn.immediate = ((...args: Parameters<F>) => {
clearTimeout(timeoutID);
return fn(args);
}) as F;
debounceFn.cancel = () => {
clearTimeout(timeoutID);
};
return debounceFn;
}
+3 -1
View File
@@ -21,7 +21,9 @@ const config = {
}
},
vitePlugin: {
inspector: true
inspector: {
toggleKeyCombo: 'meta-shift-i'
}
}
};