From cc7a2be286c9326b767b8d7a72394b3e5f8c8e45 Mon Sep 17 00:00:00 2001 From: Miodec Date: Mon, 4 Nov 2024 14:28:40 +0100 Subject: [PATCH] refactor(keymap): rework how space keys and layout indicator are handled --- frontend/src/styles/keymap.scss | 12 ++++++------ frontend/src/ts/elements/keymap.ts | 8 ++++---- frontend/src/ts/event-handlers/keymap.ts | 2 +- frontend/src/ts/test/shift-tracker.ts | 4 +--- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/frontend/src/styles/keymap.scss b/frontend/src/styles/keymap.scss index 191fab48a..d4148435a 100644 --- a/frontend/src/styles/keymap.scss +++ b/frontend/src/styles/keymap.scss @@ -49,7 +49,7 @@ } } - &.keySpace { + &.layoutIndicator { width: 100%; &:hover { cursor: pointer; @@ -57,7 +57,7 @@ } } - &.keySplitSpace { + &.keySpace.right { width: 100%; opacity: 0; } @@ -153,7 +153,7 @@ .r5 { grid-template-columns: 5fr 3fr 1fr 3fr 4.5fr; } - .keySplitSpace { + .keySpace.right { opacity: 1; } } @@ -181,7 +181,7 @@ .r5 { grid-template-columns: 1fr 2fr 3fr 1fr 3fr 2fr 1fr; } - .keySplitSpace { + .keySpace.right { opacity: 1; } } @@ -434,7 +434,7 @@ .r5 { grid-template-columns: 5fr 3fr 1fr 3fr 4.5fr; } - .keySplitSpace { + .keySpace.right { opacity: 1; } @@ -443,7 +443,7 @@ margin-left: -5%; margin-top: 21%; } - div.keySplitSpace { + div.keySpace.right { transform: rotate(-10deg); margin-left: -33%; margin-top: 20%; diff --git a/frontend/src/ts/elements/keymap.ts b/frontend/src/ts/elements/keymap.ts index e40bb536c..1c2c11e7f 100644 --- a/frontend/src/ts/elements/keymap.ts +++ b/frontend/src/ts/elements/keymap.ts @@ -33,7 +33,7 @@ function highlightKey(currentKey: string): void { currentKey = Hangul.disassemble(currentKey)[0] ?? currentKey; } if (currentKey === " ") { - highlightKey = "#keymap .keySpace, #keymap .keySplitSpace"; + highlightKey = "#keymap .keySpace"; } else if (currentKey === '"') { highlightKey = `#keymap .keymapKey[data-key*='${currentKey}']`; } else { @@ -54,7 +54,7 @@ async function flashKey(key: string, correct?: boolean): Promise { if (key === undefined) return; //console.log("key", key); if (key === " ") { - key = "#keymap .keySpace, #keymap .keySplitSpace"; + key = "#keymap .keySpace"; } else if (key === '"') { key = `#keymap .keymapKey[data-key*='${key}']`; } else { @@ -209,11 +209,11 @@ export async function refresh( letterStyle = `style="display: none;"`; } rowElement += "
"; - rowElement += `
+ rowElement += `
${layoutDisplay}
`; rowElement += `
`; - rowElement += `
+ rowElement += `
`; } else { diff --git a/frontend/src/ts/event-handlers/keymap.ts b/frontend/src/ts/event-handlers/keymap.ts index e88b2aa4c..96bb46747 100644 --- a/frontend/src/ts/event-handlers/keymap.ts +++ b/frontend/src/ts/event-handlers/keymap.ts @@ -1,6 +1,6 @@ import { getCommandline } from "../utils/async-modules"; -$("#keymap").on("click", ".r5 .keySpace", async () => { +$("#keymap").on("click", ".r5 .layoutIndicator", async () => { (await getCommandline()).show({ subgroupOverride: "keymapLayouts", }); diff --git a/frontend/src/ts/test/shift-tracker.ts b/frontend/src/ts/test/shift-tracker.ts index a73bce199..d6347c56b 100644 --- a/frontend/src/ts/test/shift-tracker.ts +++ b/frontend/src/ts/test/shift-tracker.ts @@ -44,9 +44,7 @@ async function updateKeymapLegendCasing(): Promise { const keymapKeys = [...document.getElementsByClassName("keymapKey")].filter( (el) => { const isKeymapKey = el.classList.contains("keymapKey"); - const isNotSpace = - !el.classList.contains("keySpace") && - !el.classList.contains("keySplitSpace"); + const isNotSpace = !el.classList.contains("keySpace"); return isKeymapKey && isNotSpace; }