summaryrefslogtreecommitdiff
path: root/web/js/keyboard.js
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-01 15:57:13 +0300
committerPaul Buetow <paul@buetow.org>2026-05-01 15:57:13 +0300
commit65ee2e4d7f2be8036457e3cdca0e26e09eb56e0b (patch)
treecbd8143db9e81baed51239a628dfedae2dbf375f /web/js/keyboard.js
parent56666ca87f11e72521dcda00de72438e13899b95 (diff)
add readme and so on
Diffstat (limited to 'web/js/keyboard.js')
-rw-r--r--web/js/keyboard.js31
1 files changed, 27 insertions, 4 deletions
diff --git a/web/js/keyboard.js b/web/js/keyboard.js
index 9294623..de67208 100644
--- a/web/js/keyboard.js
+++ b/web/js/keyboard.js
@@ -9,6 +9,32 @@ export function initKeyboard(handlers) {
}
return;
}
+
+ // Tab / Shift+Tab set navigation when sidebar is open
+ if (e.key === 'Tab') {
+ if (handlers.isSidebarOpen?.()) {
+ e.preventDefault();
+ if (e.shiftKey) {
+ handlers.prevSet?.(e);
+ } else {
+ handlers.nextSet?.(e);
+ }
+ }
+ return;
+ }
+
+ // Space toggles focused set selection when sidebar is focused/open
+ if (e.key === ' ') {
+ if (handlers.isSidebarFocused?.()) {
+ e.preventDefault();
+ handlers.toggleSetSelect?.(e);
+ return;
+ }
+ e.preventDefault();
+ handlers.playPause?.(e);
+ return;
+ }
+
switch (e.key) {
// Navigation
case 'ArrowUp':
@@ -41,11 +67,8 @@ export function initKeyboard(handlers) {
handlers.navRight?.(e);
break;
case 'Enter': handlers.enter?.(e); break;
- case ' ':
- e.preventDefault();
- handlers.playPause?.(e);
- break;
case 'p': handlers.playPause?.(e); break;
+ case 'c': handlers.toggleStage?.(e); break;
case 'f': handlers.fullscreen?.(e); break;
case 'Escape': handlers.escape?.(e); break;
case 'r': handlers.shuffle?.(e); break;