From 65ee2e4d7f2be8036457e3cdca0e26e09eb56e0b Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 1 May 2026 15:57:13 +0300 Subject: add readme and so on --- web/js/keyboard.js | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'web/js/keyboard.js') 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; -- cgit v1.2.3