16 |
{
19 | setShake(currentQuestion.name);
20 | await new Promise((resolve) => setTimeout(resolve, 1000));
21 | setShake(null);
22 | }}
23 | >
24 | {currentQuestion.description}
25 |
26 |
27 |
28 | {choices.map((emoji) => (
29 | {
34 | if (emoji.name === currentQuestion.name) {
35 | return setNewQuestion();
36 | }
37 | setShake(emoji.name);
38 | await new Promise((resolve) => setTimeout(resolve, 1000));
39 | setShake(null);
40 | }}
41 | />
42 | ))}
43 |
44 |
45 |
57 |
58 | );
59 | };
60 |
61 | export default EasyQuiz;
62 |
--------------------------------------------------------------------------------
/src/routes/hard.tsx:
--------------------------------------------------------------------------------
1 | import 'csshake';
2 | import { useState } from 'react';
3 | import MinimalEmojiCard from '../components/MinimalEmojiCard';
4 | import gitmojis from '../data/gitmojis';
5 | import useGitmojiQuiz from '../hooks/useGitmojiQuiz';
6 |
7 | const HardQuiz = () => {
8 | const { currentQuestion, setNewQuestion } = useGitmojiQuiz();
9 | const [shake, setShake] = useState