From f6f6b2ef441e918195feda49312e1bc84582ea48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com> Date: Mon, 31 Oct 2022 09:54:24 +0000 Subject: [PATCH] fix: chip8 keyboard --- .../keyboard-chip8/keyboard-chip8.css | 2 +- .../keyboard-chip8/keyboard-chip8.tsx | 33 +++++++++---------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/examples/web/react/components/keyboard-chip8/keyboard-chip8.css b/examples/web/react/components/keyboard-chip8/keyboard-chip8.css index 1c1d2f2b..002e1321 100644 --- a/examples/web/react/components/keyboard-chip8/keyboard-chip8.css +++ b/examples/web/react/components/keyboard-chip8/keyboard-chip8.css @@ -50,6 +50,6 @@ background-color: #50cb93; } -.keyboard-chip8-chip8 .key:active { +.keyboard-chip8 .key:active { background-color: #2a9d8f; } diff --git a/examples/web/react/components/keyboard-chip8/keyboard-chip8.tsx b/examples/web/react/components/keyboard-chip8/keyboard-chip8.tsx index 1025610a..09823ed6 100644 --- a/examples/web/react/components/keyboard-chip8/keyboard-chip8.tsx +++ b/examples/web/react/components/keyboard-chip8/keyboard-chip8.tsx @@ -4,35 +4,34 @@ import "./keyboard-chip8.css"; type KeyboardChip8Props = { style?: string[]; + onKeyDown?: (key: string) => void; }; -export const KeyboardChip8: FC<KeyboardChip8Props> = ({ style = [] }) => { +export const KeyboardChip8: FC<KeyboardChip8Props> = ({ + style = [], + onKeyDown +}) => { const classes = () => ["keyboard", "keyboard-chip8", ...style].join(" "); + const renderKey = (key: string) => { + return ( + <span className="key" onKeyDown={() => onKeyDown && onKeyDown(key)}> + {key} + </span> + ); + }; return ( <div className={classes()}> <div className="keyboard-line"> - <span className="key">1</span> - <span className="key">2</span> - <span className="key">3</span> - <span className="key">4</span> + {["1", "2", "3", "4"].map((k) => renderKey(k))} </div> <div className="keyboard-line"> - <span className="key">Q</span> - <span className="key">W</span> - <span className="key">E</span> - <span className="key">R</span> + {["Q", "W", "E", "R"].map((k) => renderKey(k))} </div> <div className="keyboard-line"> - <span className="key">A</span> - <span className="key">S</span> - <span className="key">D</span> - <span className="key">F</span> + {["A", "S", "D", "F"].map((k) => renderKey(k))} </div> <div className="keyboard-line"> - <span className="key">Z</span> - <span className="key">X</span> - <span className="key">C</span> - <span className="key">V</span> + {["Z", "X", "C", "V"].map((k) => renderKey(k))} </div> </div> ); -- GitLab