mirror of
https://github.com/Dvorinka/swingmusic-extended.git
synced 2026-06-04 12:33:03 +00:00
a14f35b0e5
- rename keyboard.ts -> useKeyboard.ts
85 lines
1.5 KiB
TypeScript
85 lines
1.5 KiB
TypeScript
import { Store } from "pinia";
|
|
|
|
let key_down_fired = false;
|
|
|
|
function focusSearchBox() {
|
|
const elem = document.getElementById("search");
|
|
|
|
elem.focus();
|
|
}
|
|
|
|
export default function (queue: any) {
|
|
window.addEventListener("keydown", (e: any) => {
|
|
let target = e.target;
|
|
let ctrlKey = e.ctrlKey;
|
|
|
|
function FocusedOnInput(target: any) {
|
|
return target.tagName === "INPUT" || target.tagName === "TEXTAREA";
|
|
}
|
|
|
|
if (FocusedOnInput(target)) return;
|
|
|
|
switch (e.key) {
|
|
case "ArrowRight":
|
|
{
|
|
if (!key_down_fired) {
|
|
key_down_fired = true;
|
|
|
|
setTimeout(() => {
|
|
key_down_fired = false;
|
|
}, 1000);
|
|
|
|
queue.playNext();
|
|
}
|
|
}
|
|
break;
|
|
|
|
case "ArrowLeft":
|
|
{
|
|
if (!key_down_fired) {
|
|
key_down_fired = true;
|
|
|
|
queue.playPrev();
|
|
|
|
setTimeout(() => {
|
|
key_down_fired = false;
|
|
}, 1000);
|
|
}
|
|
}
|
|
|
|
break;
|
|
|
|
case " ":
|
|
{
|
|
if (!key_down_fired) {
|
|
e.preventDefault();
|
|
key_down_fired = true;
|
|
|
|
queue.playPause();
|
|
}
|
|
}
|
|
|
|
break;
|
|
|
|
case "f": {
|
|
if (!key_down_fired) {
|
|
if (!ctrlKey) return;
|
|
e.preventDefault();
|
|
|
|
key_down_fired = true;
|
|
}
|
|
}
|
|
case "/": {
|
|
{
|
|
e.preventDefault();
|
|
focusSearchBox();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
window.addEventListener("keyup", () => {
|
|
key_down_fired = false;
|
|
});
|