wordle-clone/assets/scripts/controllers/keyboard.js

42 lines
1.1 KiB
JavaScript
Raw Normal View History

2025-01-22 10:29:50 +00:00
import { Controller } from "https://unpkg.com/@hotwired/stimulus@v3.2.2/dist/stimulus.js";
import { MARKERS, GameController } from "../models/gamecontroller.js";
export default class extends Controller {
static targets = [ "key" ];
static outlets = [ "playfield" ];
tappedKey(ev) {
ev.preventDefault();
let key = ev.target.dataset["key"];
this.playfieldOutlet.tappedKey(key);
}
colorizeKeys(ev) {
let hits = ev.detail.hits;
for (let k in hits) {
let thisKey = k.toLowerCase();
let marker = hits[k];
let keyElement = this.keyTargets.filter((e) => e.dataset.key == thisKey)[0];
switch (marker) {
case MARKERS.RIGHT_POS:
keyElement.classList.value = "right-pos";
break;
case MARKERS.RIGHT_CHAR:
if (!keyElement.classList.contains("right-pos")) {
keyElement.classList.add("right-char");
}
break;
case MARKERS.MISS:
if (keyElement.classList.length == 0) {
keyElement.classList.add("miss");
}
break;
}
}
}
}