11import { kanaList } from './jpChars.js' ;
2+
23let hiraganaButton = document . getElementById ( "hiragana" ) ;
34let katakanaButton = document . getElementById ( "katakana" ) ;
45let romajiButton = document . getElementById ( "romaji" ) ;
5-
66const blockquote = document . getElementById ( 'letter' ) ;
7-
87const answer = document . getElementById ( 'answer' ) ;
8+ let main = document . getElementById ( 'main' ) ;
99
1010let ind = Math . floor ( Math . random ( ) * kanaList . length ) ;
11+
1112document . addEventListener ( "DOMContentLoaded" , ( ) => {
1213 blockquote . textContent = kanaList [ ind ] [ 0 ] ;
13- answer . textContent = kanaList [ ind ] [ 2 ] ;
14+ answer . textContent = kanaList [ ind ] [ 2 ] ;
1415 hiraganaButton . classList . toggle ( 'clicked' ) ;
1516} ) ;
1617
1718hiraganaButton . addEventListener ( "click" , ( ) => {
1819 if ( ! hiraganaButton . classList . contains ( 'clicked' ) ) {
19- answer . textContent = kanaList [ ind ] [ 2 ] ;
20+ answer . textContent = kanaList [ ind ] [ 2 ] ;
2021 answer . classList . remove ( 'shown' ) ;
2122 hiraganaButton . classList . toggle ( 'clicked' ) ;
2223 blockquote . textContent = kanaList [ ind ] [ 0 ] ;
2324 }
2425 katakanaButton . classList . remove ( 'clicked' ) ;
2526 romajiButton . classList . remove ( 'clicked' ) ;
2627} )
28+
2729katakanaButton . addEventListener ( "click" , ( ) => {
2830 if ( ! katakanaButton . classList . contains ( 'clicked' ) ) {
29- answer . textContent = kanaList [ ind ] [ 2 ] ;
31+ answer . textContent = kanaList [ ind ] [ 2 ] ;
3032 answer . classList . remove ( 'shown' ) ;
3133 katakanaButton . classList . toggle ( 'clicked' ) ;
3234 blockquote . textContent = kanaList [ ind ] [ 1 ] ;
@@ -37,7 +39,7 @@ katakanaButton.addEventListener("click", () => {
3739
3840romajiButton . addEventListener ( "click" , ( ) => {
3941 if ( ! romajiButton . classList . contains ( 'clicked' ) ) {
40- answer . textContent = kanaList [ ind ] [ 0 ] + " " + kanaList [ ind ] [ 1 ] ;
42+ answer . textContent = kanaList [ ind ] [ 0 ] + " " + kanaList [ ind ] [ 1 ] ;
4143 answer . classList . remove ( 'shown' ) ;
4244 romajiButton . classList . toggle ( 'clicked' ) ;
4345 blockquote . textContent = kanaList [ ind ] [ 2 ] ;
@@ -46,25 +48,41 @@ romajiButton.addEventListener("click", () => {
4648 katakanaButton . classList . remove ( 'clicked' ) ;
4749} )
4850
49- let main = document . getElementById ( 'main' ) ;
5051main . addEventListener ( "click" , ( ) => {
5152 if ( ! answer . classList . contains ( 'shown' ) ) {
5253 answer . classList . add ( 'shown' ) ;
5354 }
5455 else {
5556 answer . classList . remove ( 'shown' ) ;
5657 ind = Math . floor ( Math . random ( ) * kanaList . length ) ;
57- if ( hiraganaButton . classList . contains ( 'clicked' ) ) {
58+
59+ if ( hiraganaButton . classList . contains ( 'clicked' ) ) {
5860 blockquote . textContent = kanaList [ ind ] [ 0 ] ;
59- answer . textContent = kanaList [ ind ] [ 2 ] ;
61+ answer . textContent = kanaList [ ind ] [ 2 ] ;
6062 }
61- else if ( katakanaButton . classList . contains ( 'clicked' ) ) {
63+ else if ( katakanaButton . classList . contains ( 'clicked' ) ) {
6264 blockquote . textContent = kanaList [ ind ] [ 1 ] ;
63- answer . textContent = kanaList [ ind ] [ 2 ] ;
65+ answer . textContent = kanaList [ ind ] [ 2 ] ;
6466 }
6567 else {
6668 blockquote . textContent = kanaList [ ind ] [ 2 ] ;
67- answer . textContent = kanaList [ ind ] [ 0 ] + " " + kanaList [ ind ] [ 1 ] ;
69+ answer . textContent = kanaList [ ind ] [ 0 ] + " " + kanaList [ ind ] [ 1 ] ;
6870 }
6971 }
7072} )
73+
74+ document . addEventListener ( 'keydown' , ( e ) => {
75+ if ( e . code === 'Space' || e . code === 'Enter' ) {
76+ e . preventDefault ( ) ;
77+ main . click ( ) ;
78+ }
79+ if ( e . key . toLowerCase ( ) === 'h' ) {
80+ hiraganaButton . click ( ) ;
81+ }
82+ if ( e . key . toLowerCase ( ) === 'k' ) {
83+ katakanaButton . click ( ) ;
84+ }
85+ if ( e . key . toLowerCase ( ) === 'r' ) {
86+ romajiButton . click ( ) ;
87+ }
88+ } ) ;
0 commit comments