瀏覽代碼

Segundo commit: Quiz funcional, despliega si aserto o no la respuesta y total de asertadas

ryanbarreto1 2 年之前
父節點
當前提交
e6552393de
共有 7 個文件被更改,包括 546 次插入275 次删除
  1. 1
    1
      src/App.tsx
  2. 0
    196
      src/components/QuizForm.tsx
  3. 27
    0
      src/data/QuizInfo.ts
  4. 50
    60
      src/data/Quizzes.json
  5. 3
    3
      src/pages/Biography.tsx
  6. 3
    3
      src/pages/ListBiographies.tsx
  7. 462
    12
      src/pages/Questions.tsx

+ 1
- 1
src/App.tsx 查看文件

@@ -54,7 +54,7 @@ const App: React.FC = () => (
54 54
         <Route path="/Capsule">
55 55
           <Capsule />
56 56
         </Route>
57
-        <Route path="/Question">
57
+        <Route path="/Question/:id">
58 58
           <Questions />
59 59
         </Route>
60 60
         <Route path="/About">

+ 0
- 196
src/components/QuizForm.tsx 查看文件

@@ -1,196 +0,0 @@
1
-import React, {useState} from 'react';
2
-import { IonPage,
3
-    IonContent,
4
-    IonHeader,
5
-    IonTitle,
6
-    IonToolbar,
7
-    IonFooter,
8
-    IonNavLink,
9
-    IonTabButton,
10
-    IonIcon,
11
-    IonImg,
12
-    IonItem,
13
-    IonLabel,
14
-    IonList,
15
-    IonCard,
16
-    IonCardContent,
17
-    IonCardHeader,
18
-    IonCardSubtitle,
19
-    IonCardTitle,
20
-    IonButton,
21
-    IonGrid,
22
-    IonRow,
23
-    IonCol,
24
-    IonRadioGroup,
25
-    IonRadio } from '@ionic/react';
26
-import RobertoClemente from '../assets/RobertoClemente.jpg';
27
-import Quizzes from '../data/Quizzes.json';
28
-
29
-function QuizForm(bio_id: number) {
30
-
31
-    const [res1, setRes1] = useState();
32
-    const [res2, setRes2] = useState();
33
-    const [res3, setRes3] = useState();
34
-    const [res4, setRes4] = useState();
35
-
36
-    const verificarRes = () => {
37
-        return console.log([res1, res2, res3, res4])
38
-    };
39
-
40
-  //const handleSubmit = (event) => {
41
-    //event.preventDefault();
42
-    // Perform form submission here
43
-  //};
44
-
45
-  return (
46
-    <IonContent fullscreen className="ion-padding">
47
-        <IonImg style={{ height: 300, width: 600 }} src={RobertoClemente} alt='Logo'></IonImg>
48
-
49
-        {
50
-            Quizzes && Quizzes.map(quizzes => {
51
-                return (
52
-                quizzes.id == bio_id ? <>
53
-                <h1>Quiz sobre la biografia de {quizzes.title}</h1>
54
-
55
-                <p>Marque una respuesta por pregunta</p>
56
-
57
-                <IonCard>
58
-                    <IonCardHeader>
59
-                        <IonCardTitle>{quizzes['pregunta-1']}</IonCardTitle>
60
-                        <IonCardSubtitle></IonCardSubtitle>
61
-                    </IonCardHeader>
62
-                    <IonCardContent>
63
-                        <IonList>
64
-                            <IonRadioGroup value={res1} onIonChange={(e) => setRes1(e.detail.value)}>
65
-                                <IonItem>
66
-                                    <IonLabel>{quizzes['res-1-1']}</IonLabel>
67
-                                    <IonRadio slot="end" value={quizzes['res-1-1']}></IonRadio>
68
-                                </IonItem>
69
-
70
-                                <IonItem>
71
-                                    <IonLabel>{quizzes['res-1-2']}</IonLabel>
72
-                                    <IonRadio slot="end" value={quizzes['res-1-2']}></IonRadio>
73
-                                </IonItem>
74
-
75
-                                <IonItem>
76
-                                    <IonLabel>{quizzes['res-1-3']}</IonLabel>
77
-                                    <IonRadio slot="end" value={quizzes['res-1-3']}></IonRadio>
78
-                                </IonItem>
79
-
80
-                                <IonItem>
81
-                                    <IonLabel>{quizzes['res-1-4']}</IonLabel>
82
-                                    <IonRadio slot="end" value={quizzes['res-1-4']}></IonRadio>
83
-                                </IonItem>
84
-                            </IonRadioGroup>
85
-                        </IonList>
86
-                    </IonCardContent>
87
-                </IonCard>
88
-
89
-                <IonCard>
90
-                    <IonCardHeader>
91
-                        <IonCardTitle>{quizzes['pregunta-2']}</IonCardTitle>
92
-                        <IonCardSubtitle></IonCardSubtitle>
93
-                    </IonCardHeader>
94
-                    <IonCardContent>
95
-                        <IonList>
96
-                            <IonRadioGroup value={res2} onIonChange={(e) => setRes2(e.detail.value)}>
97
-                                <IonItem>
98
-                                    <IonLabel>{quizzes['res-2-1']}</IonLabel>
99
-                                    <IonRadio slot="end" value={quizzes['res-2-1']}></IonRadio>
100
-                                </IonItem>
101
-
102
-                                <IonItem>
103
-                                    <IonLabel>{quizzes['res-2-2']}</IonLabel>
104
-                                    <IonRadio slot="end" value={quizzes['res-2-2']}></IonRadio>
105
-                                </IonItem>
106
-
107
-                                <IonItem>
108
-                                    <IonLabel>{quizzes['res-2-3']}</IonLabel>
109
-                                    <IonRadio slot="end" value={quizzes['res-2-3']}></IonRadio>
110
-                                </IonItem>
111
-
112
-                                <IonItem>
113
-                                    <IonLabel>{quizzes['res-2-4']}</IonLabel>
114
-                                    <IonRadio slot="end" value={quizzes['res-2-4']}></IonRadio>
115
-                                </IonItem>
116
-                            </IonRadioGroup>
117
-                        </IonList>
118
-                    </IonCardContent>
119
-                </IonCard>
120
-
121
-                <IonCard>
122
-                    <IonCardHeader>
123
-                        <IonCardTitle>{quizzes['pregunta-3']}</IonCardTitle>
124
-                        <IonCardSubtitle></IonCardSubtitle>
125
-                    </IonCardHeader>
126
-                    <IonCardContent>
127
-                        <IonList>
128
-                            <IonRadioGroup value={res3} onIonChange={(e) => setRes3(e.detail.value)}>
129
-                                <IonItem>
130
-                                    <IonLabel>{quizzes['res-3-1']}</IonLabel>
131
-                                    <IonRadio slot="end" value={quizzes['res-3-1']}></IonRadio>
132
-                                </IonItem>
133
-
134
-                                <IonItem>
135
-                                    <IonLabel>{quizzes['res-3-2']}</IonLabel>
136
-                                    <IonRadio slot="end" value={quizzes['res-3-2']}></IonRadio>
137
-                                </IonItem>
138
-
139
-                                <IonItem>
140
-                                    <IonLabel>{quizzes['res-3-3']}</IonLabel>
141
-                                    <IonRadio slot="end" value={quizzes['res-3-3']}></IonRadio>
142
-                                </IonItem>
143
-
144
-                                <IonItem>
145
-                                    <IonLabel>{quizzes['res-3-4']}</IonLabel>
146
-                                    <IonRadio slot="end" value={quizzes['res-3-4']}></IonRadio>
147
-                                </IonItem>
148
-                            </IonRadioGroup>
149
-                        </IonList>
150
-                    </IonCardContent>
151
-                </IonCard>
152
-
153
-                <IonCard>
154
-                    <IonCardHeader>
155
-                        <IonCardTitle>{quizzes['pregunta-4']}</IonCardTitle>
156
-                        <IonCardSubtitle></IonCardSubtitle>
157
-                    </IonCardHeader>
158
-                    <IonCardContent>
159
-                        <IonList>
160
-                            <IonRadioGroup value={res4} onIonChange={(e) => setRes4(e.detail.value)}>
161
-                                <IonItem>
162
-                                    <IonLabel>{quizzes['res-4-1']}</IonLabel>
163
-                                    <IonRadio slot="end" value={quizzes['res-4-1']}></IonRadio>
164
-                                </IonItem>
165
-
166
-                                <IonItem>
167
-                                    <IonLabel>{quizzes['res-4-2']}</IonLabel>
168
-                                    <IonRadio slot="end" value={quizzes['res-4-2']}></IonRadio>
169
-                                </IonItem>
170
-
171
-                                <IonItem>
172
-                                    <IonLabel>{quizzes['res-4-3']}</IonLabel>
173
-                                    <IonRadio slot="end" value={quizzes['res-4-3']}></IonRadio>
174
-                                </IonItem>
175
-
176
-                                <IonItem>
177
-                                    <IonLabel>{quizzes['res-4-4']}</IonLabel>
178
-                                    <IonRadio slot="end" value={quizzes['res-4-4']}></IonRadio>
179
-                                </IonItem>
180
-                            </IonRadioGroup>
181
-                        </IonList>
182
-                    </IonCardContent>
183
-                </IonCard>
184
-            </> : null
185
-                )
186
-            })
187
-        }
188
-
189
-
190
-        <IonButton onClick={verificarRes}>Verificar respuestas</IonButton>
191
-
192
-    </IonContent>
193
-  );
194
-};
195
-
196
-export default QuizForm;

+ 27
- 0
src/data/QuizInfo.ts 查看文件

@@ -0,0 +1,27 @@
1
+import Quizzes from '../data/Quizzes.json';
2
+
3
+export interface QuizInfo {
4
+    id: number;
5
+    title: string;
6
+
7
+    pregunta1: string;
8
+    res1: string[];
9
+    correcta1: string;
10
+
11
+    pregunta2: string;
12
+    res2: string[];
13
+    correcta2: string;
14
+
15
+    pregunta3: string;
16
+    res3: string[];
17
+    correcta3: string;
18
+
19
+    pregunta4: string;
20
+    res4: string[];
21
+    correcta4: string;
22
+
23
+}
24
+
25
+export const getQuizzes = () => Quizzes;
26
+
27
+export const getQuiz = (id: number) => Quizzes.find(m => m.id === id);

+ 50
- 60
src/data/Quizzes.json 查看文件

@@ -2,74 +2,64 @@
2 2
     {
3 3
         "id": 1,
4 4
         "title": "Roberto Clemente",
5
-        "pregunta-1": "¿En que año nació Roberto Clemente?",
6
-        "res-1-1":"1934",
7
-        "res-1-2":"1950",
8
-        "res-1-3":"1943",
9
-        "res-1-4":"2022",
10
-        "pregunta-2": "¿En que pueblo se crió?",
11
-        "res-2-1":"Caguas",
12
-        "res-2-2":"Cabo Rojo",
13
-        "res-2-3":"Luquillo",
14
-        "res-2-4":"Carolina",
15
-        "pregunta-3": "¿Para qué equipo de la liga de beisbol profesional de Puerto Rico jugó?",
16
-        "res-3-1":"Bacalaos de Fajardo",
17
-        "res-3-2":"Alcapurrias de Loiza",
18
-        "res-3-3":"Cangrejeros de Santurce",
19
-        "res-3-4":"Brujos de Guayama",
20
-        "pregunta-4": "¿Para que equipo de la MLB jugó?",
21
-        "res-4-1":"New York Yankees",
22
-        "res-4-2":"Houston Astros",
23
-        "res-4-3":"Chicago Cubs",
24
-        "res-4-4":"Pittsburgh Pirates"
5
+
6
+        "pregunta1": "¿En que año nació Roberto Clemente?",
7
+        "res1":["1934","1950","1943","2022"],
8
+        "correcta1":"1934",
9
+
10
+        "pregunta2": "¿En que pueblo se crió?",
11
+        "res2": ["Caguas","Cabo Rojo","Luquillo","Carolina"],
12
+        "correcta2":"Carolina",
13
+
14
+        "pregunta3": "¿Para qué equipo de la liga de beisbol profesional de Puerto Rico jugó?",
15
+        "res3": ["Bacalaos de Fajardo","Alcapurrias de Loiza","Cangrejeros de Santurce","Brujos de Guayama"],
16
+        "correcta3":"Cangrejeros de Santurce",
17
+
18
+        "pregunta4": "¿Para que equipo de la MLB jugó?",
19
+        "res4": ["New York Yankees","Houston Astros","Chicago Cubs","Pittsburgh Pirates"],
20
+        "correcta4":"Pittsburgh Pirates"
21
+
25 22
     },
26 23
     {
27 24
         "id":2,
28 25
         "title": "Marian Villaronga Toro",
29
-        "pregunta-1": "¿En que año nació Marian Villaronga Toro1?",
30
-        "res-1-1":"11",
31
-        "res-1-2":"12",
32
-        "res-1-3":"13",
33
-        "res-1-4":"14",
34
-        "pregunta-2": "¿En que año nació Marian Villaronga Toro2?",
35
-        "res-2-1":"21",
36
-        "res-2-2":"22",
37
-        "res-2-3":"23",
38
-        "res-2-4":"24",
39
-        "pregunta-3": "¿En que año nació Marian Villaronga Toro3",
40
-        "res-3-1":"31",
41
-        "res-3-2":"32",
42
-        "res-3-3":"33",
43
-        "res-3-4":"34",
44
-        "pregunta-4": "¿En que año nació Marian Villaronga Toro4",
45
-        "res-4-1":"41",
46
-        "res-4-2":"42",
47
-        "res-4-3":"43",
48
-        "res-4-4":"44"
26
+        
27
+        "pregunta1": "¿En que año nació Marian Villaronga Toro1?",
28
+        "res1": ["11","12","13","14"],
29
+        "correcta1":"11",
30
+
31
+        "pregunta2": "¿En que año nació Marian Villaronga Toro2?",
32
+        "res2": ["21","22","23","24"],
33
+        "correcta2":"22",
34
+
35
+        "pregunta3": "¿En que año nació Marian Villaronga Toro3",
36
+        "res3": ["31","32","33","34"],
37
+        "correcta3":"33",
38
+
39
+        "pregunta4": "¿En que año nació Marian Villaronga Toro4",
40
+        "res4": ["41","42","43","44"],
41
+        "correcta4":"44"
42
+
49 43
     }
50 44
     ,
51 45
     {
52 46
         "id":3,
53 47
         "title": "German Rieckhoff Sampoyo",
54
-        "pregunta-1": "¿En que año nació German Rieckhoff Sampoyo1?",
55
-        "res-1-1":"11",
56
-        "res-1-2":"12",
57
-        "res-1-3":"13",
58
-        "res-1-4":"14",
59
-        "pregunta-2": "¿En que año nació German Rieckhoff Sampoyo2?",
60
-        "res-2-1":"21",
61
-        "res-2-2":"22",
62
-        "res-2-3":"23",
63
-        "res-2-4":"24",
64
-        "pregunta-3": "¿En que año nació German Rieckhoff Sampoyo3?",
65
-        "res-3-1":"31",
66
-        "res-3-2":"32",
67
-        "res-3-3":"33",
68
-        "res-3-4":"34",
69
-        "pregunta-4": "¿En que año nació German Rieckhoff Sampoyo4?",
70
-        "res-4-1":"41",
71
-        "res-4-2":"42",
72
-        "res-4-3":"43",
73
-        "res-4-4":"44"
48
+
49
+        "pregunta1": "¿En que año nació German Rieckhoff Sampoyo1?",
50
+        "res1": ["11","12","13","14"],
51
+        "correcta1":"11",
52
+
53
+        "pregunta2": "¿En que año nació German Rieckhoff Sampoyo2?",
54
+        "res2": ["21","22","23","24"],
55
+        "correcta2":"22",
56
+
57
+        "pregunta3": "¿En que año nació German Rieckhoff Sampoyo3",
58
+        "res3": ["31","32","33","34"],
59
+        "correcta3":"33",
60
+
61
+        "pregunta4": "¿En que año nació German Rieckhoff Sampoyo4",
62
+        "res4": ["41","42","43","44"],
63
+        "correcta4":"44"
74 64
     }
75 65
 ]

+ 3
- 3
src/pages/Biography.tsx 查看文件

@@ -21,7 +21,7 @@ import { BioInfo, getMessage } from '../data/BioInfo';
21 21
 import './Biography.css';
22 22
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
23 23
 import RobertoClemente from '../assets/RobertoClemente.jpg';
24
-import { square } from 'ionicons/icons';
24
+import { clipboardOutline } from 'ionicons/icons';
25 25
 
26 26
 const Biography: React.FC = () => {
27 27
     const [bioinfo, setMessage] = useState<BioInfo>();
@@ -57,8 +57,8 @@ const Biography: React.FC = () => {
57 57
                         <p>{bioinfo.tags}</p>
58 58
                         <p>{bioinfo.Text1}</p>
59 59
                         <p>{bioinfo.Text2}</p>
60
-                        <IonItem routerLink={`/Question`} detail={true}>
61
-                            <IonIcon icon={square} />Tomar quiz
60
+                        <IonItem routerLink={`/Question/${bioinfo.id}`} detail={true}>
61
+                            <IonIcon icon={clipboardOutline} />Tomar quiz
62 62
                         </IonItem>
63 63
                     </>
64 64
                 ) : (

+ 3
- 3
src/pages/ListBiographies.tsx 查看文件

@@ -21,7 +21,7 @@ import {
21 21
   IonIcon
22 22
 } from '@ionic/react';
23 23
 import './ListBiographies.css';
24
-import { square } from 'ionicons/icons';
24
+import { clipboardOutline } from 'ionicons/icons';
25 25
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
26 26
 import RobertoClemente from '../assets/RobertoClemente.jpg';
27 27
 import ListBio from '../data/Biograph.json';
@@ -59,8 +59,8 @@ const ListBiographies: React.FC = () => {
59 59
                       {listbio.content}
60 60
                     </IonCardContent>
61 61
                   </IonItem>
62
-                  <IonItem routerLink={`/Question`} detail={true}>
63
-                    <IonIcon icon={square} />Tomar quiz
62
+                  <IonItem routerLink={`/Question/${listbio.id}`} detail={true}>
63
+                    <IonIcon icon={clipboardOutline} />Tomar quiz
64 64
                   </IonItem>
65 65
                 </IonCard>
66 66
               </>

+ 462
- 12
src/pages/Questions.tsx 查看文件

@@ -19,28 +19,309 @@ import {
19 19
     IonRow,
20 20
     IonCol,
21 21
     IonButtons,
22
-    IonBackButton
22
+    IonBackButton,
23
+    useIonViewWillEnter,
24
+    IonRadioGroup,
25
+    IonRadio,
26
+    IonIcon,
27
+    IonChip
23 28
 } from '@ionic/react';
24
-import React, {useState} from 'react';
25
-//import { Form } from 'react-bootstrap';
29
+import { useParams } from 'react-router';
30
+import React, { useState } from 'react';
26 31
 import './Questions.css';
27 32
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
28
-//import RobertoClemente from '../assets/RobertoClemente.jpg';
29
-//import Quizzes from '../data/Quizzes.json';
30
-import QuizForm from '../components/QuizForm';
33
+import RobertoClemente from '../assets/RobertoClemente.jpg';
34
+import { QuizInfo, getQuiz } from '../data/QuizInfo';
35
+import { thumbsDown, thumbsUp } from 'ionicons/icons';
31 36
 
32 37
 
33 38
 const Questions: React.FC = () => {
39
+    // Estados para respuestas seleccionadas
40
+    const [qres1, setQRes1] = useState();
41
+    const [qres2, setQRes2] = useState();
42
+    const [qres3, setQRes3] = useState();
43
+    const [qres4, setQRes4] = useState();
34 44
 
35
-    const [res1, setRes1] = useState();
36
-    const [res2, setRes2] = useState();
37
-    const [res3, setRes3] = useState();
38
-    const [res4, setRes4] = useState();
45
+    // Arreglos para saber cual radio se selecciono en cada pregunta
46
+    const selected1:boolean[] = [false, false, false, false];
47
+    const selected2:boolean[] = [false, false, false, false];
48
+    const selected3:boolean[] = [false, false, false, false];
49
+    const selected4:boolean[] = [false, false, false, false];
39 50
 
51
+    // Estados para seleccionar iconos de las respuestas seleccionadas
52
+    const [icon11, setIcon11] = useState<any>();
53
+    const [icon12, setIcon12] = useState<any>();
54
+    const [icon13, setIcon13] = useState<any>();
55
+    const [icon14, setIcon14] = useState<any>();
56
+
57
+    const [icon21, setIcon21] = useState<any>();
58
+    const [icon22, setIcon22] = useState<any>();
59
+    const [icon23, setIcon23] = useState<any>();
60
+    const [icon24, setIcon24] = useState<any>();
61
+
62
+    const [icon31, setIcon31] = useState<any>();
63
+    const [icon32, setIcon32] = useState<any>();
64
+    const [icon33, setIcon33] = useState<any>();
65
+    const [icon34, setIcon34] = useState<any>();
66
+
67
+    const [icon41, setIcon41] = useState<any>();
68
+    const [icon42, setIcon42] = useState<any>();
69
+    const [icon43, setIcon43] = useState<any>();
70
+    const [icon44, setIcon44] = useState<any>();
71
+
72
+    // Estado para contar cuantas preguntas correctas se obtuvieron
73
+    const [countres, setCountRes] = useState<number>(0);
74
+
75
+    const [verResPresionado, setVerResPresionado] = useState<boolean>(false);
76
+
77
+    /* verificarRes()
78
+        Funcion se encarga de verificar si las respuestas seleccionadas
79
+        son correctas. Despliega ThumbsUp para seleccion correcta,
80
+        ThumbsDowmn para seleccion incorrecta.
81
+    */
40 82
     const verificarRes = () => {
41
-        return console.log([res1, res2, res3, res4])
83
+        // borrar console logs para el release
84
+        console.log([qres1, qres2, qres3, qres4]);
85
+        console.log(countres);
86
+
87
+        // reset a los icons, count y acertadas por si hubo seleccion anterior
88
+        let count = 0;
89
+        setCountRes(count);
90
+        setVerResPresionado(true);
91
+
92
+        setIcon11(null);
93
+        setIcon12(null);
94
+        setIcon13(null);
95
+        setIcon14(null);
96
+
97
+        setIcon21(null);
98
+        setIcon22(null);
99
+        setIcon23(null);
100
+        setIcon24(null);
101
+
102
+        setIcon31(null);
103
+        setIcon32(null);
104
+        setIcon33(null);
105
+        setIcon34(null);
106
+
107
+        setIcon41(null);
108
+        setIcon42(null);
109
+        setIcon43(null);
110
+        setIcon44(null);
111
+
112
+
113
+        // loop para saber que radio escogio el usuario en cada pregunta
114
+        let num: number = 0;
115
+        let i: number;
116
+        for(i = num; i<4; i++){
117
+            if(qres1 === quizInfo?.res1[i]){
118
+                selected1[i] = true;
119
+            }
120
+
121
+            if(qres2 === quizInfo?.res2[i]){
122
+                selected2[i] = true;
123
+            }
124
+
125
+            if(qres3 === quizInfo?.res3[i]){
126
+                selected3[i] = true;
127
+            }
128
+
129
+            if(qres4 === quizInfo?.res4[i]){
130
+                selected4[i] = true;
131
+            }
132
+
133
+        }
134
+
135
+        // Para seleccionar si sale icono correccto o incorrecto en seleccion
136
+        // de radio.
137
+
138
+        // ======================= PREGUNTA 1 =========================================
139
+        // SI usuario seleccionio el primer radio en la pregunta 1
140
+        if(selected1[0] && quizInfo?.res1[0] === quizInfo?.correcta1){
141
+            setIcon11(<IonIcon icon={thumbsUp} />);
142
+            //setCountRes(countres + 1);
143
+            count++;
144
+        }
145
+        else if (selected1[0] && quizInfo?.res1[0] !== quizInfo?.correcta1){
146
+            setIcon11(<IonIcon icon={thumbsDown} />)
147
+        }
148
+
149
+        // SI usuario seleccionio el segundo radio en la pregunta 1
150
+        if(selected1[1] && quizInfo?.res1[1] === quizInfo?.correcta1){
151
+            setIcon12(<IonIcon icon={thumbsUp} />);
152
+            //setCountRes(countres + 1);
153
+            count++;
154
+        }
155
+        else if (selected1[1] && quizInfo?.res1[1] !== quizInfo?.correcta1){
156
+            setIcon12(<IonIcon icon={thumbsDown} />)
157
+        }
158
+
159
+        // SI usuario seleccionio el tercer radio en la pregunta 1
160
+        if(selected1[2] && quizInfo?.res1[2] === quizInfo?.correcta1){
161
+            setIcon13(<IonIcon icon={thumbsUp} />);
162
+            //setCountRes(countres + 1);
163
+            count++;
164
+        }
165
+        else if (selected1[2] && quizInfo?.res1[2] !== quizInfo?.correcta1){
166
+            setIcon13(<IonIcon icon={thumbsDown} />)
167
+        }
168
+
169
+        // SI usuario seleccionio el cuarto radio en la pregunta 1
170
+        if(selected1[3] && quizInfo?.res1[3] === quizInfo?.correcta1){
171
+            setIcon14(<IonIcon icon={thumbsUp} />);
172
+            //setCountRes(countres + 1);
173
+            count++;
174
+        }
175
+        else if (selected1[3] && quizInfo?.res1[3] !== quizInfo?.correcta1){
176
+            setIcon14(<IonIcon icon={thumbsDown} />)
177
+        }
178
+        // ======================= PREGUNTA 1 =========================================
179
+
180
+        // ======================= PREGUNTA 2 =========================================
181
+
182
+        // SI usuario seleccionio el primer radio en la pregunta 2
183
+        if(selected2[0] && quizInfo?.res2[0] === quizInfo?.correcta2){
184
+            setIcon21(<IonIcon icon={thumbsUp} />);
185
+            //setCountRes(countres + 1);
186
+            count++;
187
+        }
188
+        else if (selected2[0] && quizInfo?.res2[0] !== quizInfo?.correcta2){
189
+            setIcon21(<IonIcon icon={thumbsDown} />)
190
+        }
191
+
192
+        // SI usuario seleccionio el segundo radio en la pregunta 2
193
+        if(selected2[1] && quizInfo?.res2[1] === quizInfo?.correcta2){
194
+            setIcon22(<IonIcon icon={thumbsUp} />);
195
+            //setCountRes(countres + 1);
196
+            count++;
197
+        }
198
+        else if (selected2[1] && quizInfo?.res2[1] !== quizInfo?.correcta2){
199
+            setIcon22(<IonIcon icon={thumbsDown} />)
200
+        }
201
+
202
+        // SI usuario seleccionio el tercer radio en la pregunta 2
203
+        if(selected2[2] && quizInfo?.res2[2] === quizInfo?.correcta2){
204
+            setIcon23(<IonIcon icon={thumbsUp} />);
205
+            //setCountRes(countres + 1);
206
+            count++;
207
+        }
208
+        else if (selected2[2] && quizInfo?.res2[2] !== quizInfo?.correcta2){
209
+            setIcon23(<IonIcon icon={thumbsDown} />)
210
+        }
211
+
212
+        // SI usuario seleccionio el cuarto radio en la pregunta 2
213
+        if(selected2[3] && quizInfo?.res2[3] === quizInfo?.correcta2){
214
+            setIcon24(<IonIcon icon={thumbsUp} />);
215
+            //setCountRes(countres + 1);
216
+            count++;
217
+        }
218
+        else if (selected2[3] && quizInfo?.res2[3] !== quizInfo?.correcta2){
219
+            setIcon24(<IonIcon icon={thumbsDown} />)
220
+        }
221
+
222
+        // ======================= PREGUNTA 2 =========================================
223
+
224
+        // ======================= PREGUNTA 3 =========================================
225
+
226
+        // SI usuario seleccionio el primer radio en la pregunta 3
227
+        if(selected3[0] && quizInfo?.res3[0] === quizInfo?.correcta3){
228
+            setIcon31(<IonIcon icon={thumbsUp} />);
229
+            //setCountRes(countres + 1);
230
+            count++;
231
+        }
232
+        else if (selected3[0] && quizInfo?.res3[0] !== quizInfo?.correcta3){
233
+            setIcon31(<IonIcon icon={thumbsDown} />)
234
+        }
235
+
236
+        // SI usuario seleccionio el segundo radio en la pregunta 3
237
+        if(selected3[1] && quizInfo?.res3[1] === quizInfo?.correcta3){
238
+            setIcon32(<IonIcon icon={thumbsUp} />);
239
+            //setCountRes(countres + 1);
240
+            count++;
241
+        }
242
+        else if (selected3[1] && quizInfo?.res3[1] !== quizInfo?.correcta3){
243
+            setIcon32(<IonIcon icon={thumbsDown} />)
244
+        }
245
+
246
+        // SI usuario seleccionio el tercer radio en la pregunta 3
247
+        if(selected3[2] && quizInfo?.res3[2] === quizInfo?.correcta3){
248
+            setIcon33(<IonIcon icon={thumbsUp} />);
249
+            //setCountRes(countres + 1);
250
+            count++;
251
+        }
252
+        else if (selected3[2] && quizInfo?.res3[2] !== quizInfo?.correcta3){
253
+            setIcon33(<IonIcon icon={thumbsDown} />)
254
+        }
255
+
256
+        // SI usuario seleccionio el cuerto radio en la pregunta 3
257
+        if(selected3[3] && quizInfo?.res3[3] === quizInfo?.correcta3){
258
+            setIcon34(<IonIcon icon={thumbsUp} />);
259
+            //setCountRes(countres + 1);
260
+            count++;
261
+        }
262
+        else if (selected3[3] && quizInfo?.res3[3] !== quizInfo?.correcta3){
263
+            setIcon34(<IonIcon icon={thumbsDown} />)
264
+        }
265
+
266
+        // ======================= PREGUNTA 3 =========================================
267
+
268
+        // ======================= PREGUNTA 4 =========================================
269
+
270
+        // SI usuario seleccionio el primer radio en la pregunta 4
271
+        if(selected4[0] && quizInfo?.res4[0] === quizInfo?.correcta4){
272
+            setIcon41(<IonIcon icon={thumbsUp} />);
273
+            //setCountRes(countres + 1);
274
+            count++;
275
+        }
276
+        else if (selected4[0] && quizInfo?.res4[0] !== quizInfo?.correcta4){
277
+            setIcon41(<IonIcon icon={thumbsDown} />)
278
+        }
279
+
280
+        // SI usuario seleccionio el segundo radio en la pregunta 4
281
+        if(selected4[1] && quizInfo?.res4[1] === quizInfo?.correcta4){
282
+            setIcon42(<IonIcon icon={thumbsUp} />);
283
+            //setCountRes(countres + 1);
284
+            count++;
285
+        }
286
+        else if (selected4[1] && quizInfo?.res4[1] !== quizInfo?.correcta4){
287
+            setIcon42(<IonIcon icon={thumbsDown} />)
288
+        }
289
+
290
+        // SI usuario seleccionio el tercer radio en la pregunta 4
291
+        if(selected4[2] && quizInfo?.res4[2] === quizInfo?.correcta4){
292
+            setIcon43(<IonIcon icon={thumbsUp} />);
293
+            //setCountRes(countres + 1);
294
+            count++;
295
+        }
296
+        else if (selected4[2] && quizInfo?.res4[2] !== quizInfo?.correcta4){
297
+            setIcon43(<IonIcon icon={thumbsDown} />)
298
+        }
299
+
300
+        // SI usuario seleccionio el cuarto radio en la pregunta 4
301
+        if(selected4[3] && quizInfo?.res4[3] === quizInfo?.correcta4){
302
+            setIcon44(<IonIcon icon={thumbsUp} />);
303
+            //setCountRes(countres + 1);
304
+            count++;
305
+        }
306
+        else if (selected4[3] && quizInfo?.res4[3] !== quizInfo?.correcta4){
307
+            setIcon44(<IonIcon icon={thumbsDown} />)
308
+        }
309
+
310
+        // ======================= PREGUNTA 4 =========================================
311
+
312
+        // Para saber cueantas resspuestas acertó el usuario
313
+        setCountRes(count);
42 314
     };
315
+    
316
+    // State para desplegar la info del quiz
317
+    const [quizInfo, setQuiz] = useState<QuizInfo>();
318
+    const params = useParams<{ id: string }>();
43 319
 
320
+    useIonViewWillEnter(() => {
321
+        const quiz = getQuiz(parseInt(params.id, 10));
322
+        setQuiz(quiz);
323
+    });
324
+    
44 325
     return (
45 326
         <IonPage>
46 327
             <IonHeader>
@@ -57,8 +338,177 @@ const Questions: React.FC = () => {
57 338
                     </IonGrid>
58 339
                 </IonToolbar>
59 340
             </IonHeader>
341
+            
342
+            <IonContent fullscreen className="ion-padding">
343
+                <IonImg style={{ height: 300, width: 600 }} src={RobertoClemente} alt='Logo'></IonImg>
344
+
345
+                {
346
+                    quizInfo ?
347
+                    <>
348
+                        <h1>Quiz sobre la biografia de {quizInfo.title}</h1>
349
+
350
+                        <p>Marque una respuesta por pregunta</p>
351
+
352
+                        <IonCard>
353
+                            <IonCardHeader>
354
+                                <IonCardTitle>{quizInfo.pregunta1}</IonCardTitle>
355
+                                <IonCardSubtitle></IonCardSubtitle>
356
+                            </IonCardHeader>
357
+                            <IonCardContent>
358
+                                <IonList>
359
+                                    <IonRadioGroup value={qres1} onIonChange={(e) => setQRes1(e.detail.value)}>
360
+                                        <IonItem>
361
+                                            <IonLabel>{quizInfo.res1[0]}</IonLabel>
362
+                                            <IonRadio slot="end" value={quizInfo.res1[0]}></IonRadio>
363
+                                            {icon11}
364
+                                        </IonItem>
365
+
366
+                                        <IonItem>
367
+                                            <IonLabel>{quizInfo.res1[1]}</IonLabel>
368
+                                            <IonRadio slot="end" value={quizInfo.res1[1]}></IonRadio>
369
+                                            {icon12}
370
+                                        </IonItem>
371
+
372
+                                        <IonItem>
373
+                                            <IonLabel>{quizInfo.res1[2]}</IonLabel>
374
+                                            <IonRadio slot="end" value={quizInfo.res1[2]}></IonRadio>
375
+                                            {icon13}
376
+                                        </IonItem>
377
+
378
+                                        <IonItem>
379
+                                            <IonLabel>{quizInfo.res1[3]}</IonLabel>
380
+                                            <IonRadio slot="end" value={quizInfo.res1[3]}></IonRadio>
381
+                                            {icon14}
382
+                                        </IonItem>
383
+                                    </IonRadioGroup>
384
+                                </IonList>
385
+                            </IonCardContent>
386
+                        </IonCard>
387
+
388
+                        <IonCard>
389
+                            <IonCardHeader>
390
+                                <IonCardTitle>{quizInfo.pregunta2}</IonCardTitle>
391
+                                <IonCardSubtitle></IonCardSubtitle>
392
+                            </IonCardHeader>
393
+                            <IonCardContent>
394
+                                <IonList>
395
+                                    <IonRadioGroup value={qres2} onIonChange={(e) => setQRes2(e.detail.value)}>
396
+                                        <IonItem>
397
+                                            <IonLabel>{quizInfo.res2[0]}</IonLabel>
398
+                                            <IonRadio slot="end" value={quizInfo.res2[0]}></IonRadio>
399
+                                            {icon21}
400
+                                        </IonItem>
401
+
402
+                                        <IonItem>
403
+                                            <IonLabel>{quizInfo.res2[1]}</IonLabel>
404
+                                            <IonRadio slot="end" value={quizInfo.res2[1]}></IonRadio>
405
+                                            {icon22}
406
+                                        </IonItem>
407
+
408
+                                        <IonItem>
409
+                                            <IonLabel>{quizInfo.res2[2]}</IonLabel>
410
+                                            <IonRadio slot="end" value={quizInfo.res2[2]}></IonRadio>
411
+                                            {icon23}
412
+                                        </IonItem>
413
+
414
+                                        <IonItem>
415
+                                            <IonLabel>{quizInfo.res2[3]}</IonLabel>
416
+                                            <IonRadio slot="end" value={quizInfo.res2[3]}></IonRadio>
417
+                                            {icon24}
418
+                                        </IonItem>
419
+                                    </IonRadioGroup>
420
+                                </IonList>
421
+                            </IonCardContent>
422
+                        </IonCard>
423
+
424
+                        <IonCard>
425
+                            <IonCardHeader>
426
+                                <IonCardTitle>{quizInfo.pregunta3}</IonCardTitle>
427
+                                <IonCardSubtitle></IonCardSubtitle>
428
+                            </IonCardHeader>
429
+                            <IonCardContent>
430
+                                <IonList>
431
+                                    <IonRadioGroup value={qres3} onIonChange={(e) => setQRes3(e.detail.value)}>
432
+                                        <IonItem>
433
+                                            <IonLabel>{quizInfo.res3[0]}</IonLabel>
434
+                                            <IonRadio slot="end" value={quizInfo.res3[0]}></IonRadio>
435
+                                            {icon31}
436
+                                        </IonItem>
437
+
438
+                                        <IonItem>
439
+                                            <IonLabel>{quizInfo.res3[1]}</IonLabel>
440
+                                            <IonRadio slot="end" value={quizInfo.res3[1]}></IonRadio>
441
+                                            {icon32}
442
+                                        </IonItem>
443
+
444
+                                        <IonItem>
445
+                                            <IonLabel>{quizInfo.res3[2]}</IonLabel>
446
+                                            <IonRadio slot="end" value={quizInfo.res3[2]}></IonRadio>
447
+                                            {icon33}
448
+                                        </IonItem>
449
+
450
+                                        <IonItem>
451
+                                            <IonLabel>{quizInfo.res3[3]}</IonLabel>
452
+                                            <IonRadio slot="end" value={quizInfo.res3[3]}></IonRadio>
453
+                                            {icon34}
454
+                                        </IonItem>
455
+                                    </IonRadioGroup>
456
+                                </IonList>
457
+                            </IonCardContent>
458
+                        </IonCard>
459
+
460
+                        <IonCard>
461
+                            <IonCardHeader>
462
+                                <IonCardTitle>{quizInfo.pregunta4}</IonCardTitle>
463
+                                <IonCardSubtitle></IonCardSubtitle>
464
+                            </IonCardHeader>
465
+                            <IonCardContent>
466
+                                <IonList>
467
+                                    <IonRadioGroup value={qres4} onIonChange={(e) => setQRes4(e.detail.value)}>
468
+                                        <IonItem>
469
+                                            <IonLabel>{quizInfo.res4[0]}</IonLabel>
470
+                                            <IonRadio slot="end" value={quizInfo.res4[0]}></IonRadio>
471
+                                            {icon41}
472
+                                        </IonItem>
473
+
474
+                                        <IonItem>
475
+                                            <IonLabel>{quizInfo.res4[1]}</IonLabel>
476
+                                            <IonRadio slot="end" value={quizInfo.res4[1]}></IonRadio>
477
+                                            {icon42}
478
+                                        </IonItem>
479
+
480
+                                        <IonItem>
481
+                                            <IonLabel>{quizInfo.res4[2]}</IonLabel>
482
+                                            <IonRadio slot="end" value={quizInfo.res4[2]}></IonRadio>
483
+                                            {icon43}
484
+                                        </IonItem>
485
+
486
+                                        <IonItem>
487
+                                            <IonLabel>{quizInfo.res4[3]}</IonLabel>
488
+                                            <IonRadio slot="end" value={quizInfo.res4[3]}></IonRadio>
489
+                                            {icon44}
490
+                                        </IonItem>
491
+                                    </IonRadioGroup>
492
+                                </IonList>
493
+                            </IonCardContent>
494
+                        </IonCard>
495
+
496
+                        <IonItem lines="none">
497
+                            {verResPresionado ? (
498
+                                <>
499
+                                    <IonChip>{countres} / 4 respuestas correctas</IonChip>
500
+                                </>
501
+                            ) : null } 
502
+                        </IonItem>
503
+                        
504
+                    </> : <div>Quiz not found</div>
505
+                        
506
+                }
507
+
508
+
509
+                <IonButton onClick={verificarRes}>Verificar respuestas</IonButton>
60 510
 
61
-            {QuizForm(1)}
511
+            </IonContent>
62 512
 
63 513
             <IonFooter>
64 514
                 <IonToolbar className="Footer-Color">