fix(web): cursor focusing
This commit is contained in:
@@ -37,8 +37,9 @@
|
|||||||
|
|
||||||
if (event.key === "Backspace") {
|
if (event.key === "Backspace") {
|
||||||
if (letters[cursor] === "" && cursor > 0) {
|
if (letters[cursor] === "" && cursor > 0) {
|
||||||
cursor--;
|
const nc = cursor - 1;
|
||||||
inputs[cursor].focus();
|
inputs[nc].focus(); // Focusing / bluring resets cursor temporarily
|
||||||
|
cursor = nc;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (active) {
|
if (active) {
|
||||||
@@ -47,13 +48,15 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (event.key === "ArrowLeft") {
|
if (event.key === "ArrowLeft") {
|
||||||
cursor = Math.max(0, cursor - 1);
|
const nc = Math.max(0, cursor - 1);
|
||||||
inputs[cursor].focus();
|
inputs[nc].focus();
|
||||||
|
cursor = nc;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.key === "ArrowRight") {
|
if (event.key === "ArrowRight") {
|
||||||
cursor = Math.min(4, cursor + 1);
|
const nc = Math.min(4, cursor + 1);
|
||||||
inputs[cursor].focus();
|
inputs[nc].focus();
|
||||||
|
cursor = nc;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.key === " ") {
|
if (event.key === " ") {
|
||||||
@@ -83,6 +86,9 @@
|
|||||||
class:bg-green-600={colors[i] === Color.GREEN}
|
class:bg-green-600={colors[i] === Color.GREEN}
|
||||||
class:bg-yellow-600={colors[i] === Color.YELLOW}
|
class:bg-yellow-600={colors[i] === Color.YELLOW}
|
||||||
class:bg-grey-600={colors[i] === Color.GREY}
|
class:bg-grey-600={colors[i] === Color.GREY}
|
||||||
|
onblur={() => {
|
||||||
|
cursor = -1;
|
||||||
|
}}
|
||||||
onbeforeinput={(event) => {
|
onbeforeinput={(event) => {
|
||||||
if (event.inputType === "insertText") {
|
if (event.inputType === "insertText") {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
@@ -90,12 +96,14 @@
|
|||||||
|
|
||||||
if (/^[a-zA-Z]$/.test(key)) {
|
if (/^[a-zA-Z]$/.test(key)) {
|
||||||
letters[i] = key.toUpperCase();
|
letters[i] = key.toUpperCase();
|
||||||
if (cursor < 4) {
|
let nc = cursor;
|
||||||
cursor++;
|
if (nc < 4) {
|
||||||
|
nc++;
|
||||||
} else {
|
} else {
|
||||||
cursor = 0;
|
nc = 0;
|
||||||
}
|
}
|
||||||
inputs[cursor].focus();
|
inputs[nc].focus();
|
||||||
|
cursor = nc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|||||||
Reference in New Issue
Block a user