From 0774c130de72a61e5706f0d72b0651bf06bb0dc9 Mon Sep 17 00:00:00 2001 From: I Luk Kim Date: Wed, 22 Jul 2026 12:30:31 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20support=20Korean=20IME=20mode=20for=20k?= =?UTF-8?q?eyboard=20shortcuts=20via=20e.code=20(KeyF,=20KeyS,=20=E3=84=B9?= =?UTF-8?q?,=20=E3=84=B4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/MangaViewer.tsx | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/src/components/MangaViewer.tsx b/src/components/MangaViewer.tsx index 653c43c..6aded48 100644 --- a/src/components/MangaViewer.tsx +++ b/src/components/MangaViewer.tsx @@ -157,26 +157,18 @@ export function MangaViewer({ useEffect(() => { const handler = (e: KeyboardEvent) => { if (e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement) return; - switch (e.key) { - case 'ArrowRight': - e.preventDefault(); - goNext(); - break; - case 'ArrowLeft': - e.preventDefault(); - goPrev(); - break; - case 'f': - case 'F': - toggleFullscreen(); - break; - case 's': - case 'S': - setShowSettings((v) => !v); - break; - case 'Escape': - if (showSettings) setShowSettings(false); - break; + if (e.code === 'ArrowRight') { + e.preventDefault(); + goNext(); + } else if (e.code === 'ArrowLeft') { + e.preventDefault(); + goPrev(); + } else if (e.code === 'KeyF' || e.key === 'f' || e.key === 'F' || e.key === 'ㄹ') { + toggleFullscreen(); + } else if (e.code === 'KeyS' || e.key === 's' || e.key === 'S' || e.key === 'ㄴ') { + setShowSettings((v) => !v); + } else if (e.key === 'Escape') { + if (showSettings) setShowSettings(false); } }; window.addEventListener('keydown', handler);