Browse Source

Merge branch 'master' into UserStory6

ryanbarreto1 1 year ago
parent
commit
00f67bfa7e

+ 1179
- 576
package-lock.json
File diff suppressed because it is too large
View File


+ 1
- 1
package.json View File

69
   "devDependencies": {
69
   "devDependencies": {
70
     "@capacitor/cli": "4.5.0",
70
     "@capacitor/cli": "4.5.0",
71
     "@ionic/lab": "3.2.15",
71
     "@ionic/lab": "3.2.15",
72
-    "react-scripts": "5.0.1"
72
+    "react-scripts": "^5.0.1"
73
   },
73
   },
74
   "description": "An Ionic project"
74
   "description": "An Ionic project"
75
 }
75
 }

+ 41
- 2
src/App.tsx View File

1
-import { IonNav, setupIonicReact } from '@ionic/react';
1
+import { IonApp, IonRouterOutlet, setupIonicReact } from '@ionic/react';
2
+import { Redirect, Route } from 'react-router-dom';
3
+import { IonReactRouter } from '@ionic/react-router';
2
 import HomePage from './pages/HomePage';
4
 import HomePage from './pages/HomePage';
5
+import ListBiographies from './pages/ListBiographies';
6
+import Biography from './pages/Biography';
7
+import ListCapsules from './pages/ListCapsules';
8
+import Capsule from './pages/Capsule';
9
+import Questions from './pages/Questions';
10
+import AboutUs from './pages/AboutUs';
3
 
11
 
4
 /* Core CSS required for Ionic components to work properly */
12
 /* Core CSS required for Ionic components to work properly */
5
 import '@ionic/react/css/core.css';
13
 import '@ionic/react/css/core.css';
22
 
30
 
23
 setupIonicReact();
31
 setupIonicReact();
24
 
32
 
33
+//<IonNav root={() => <HomePage />}></IonNav>
34
+
25
 const App: React.FC = () => (
35
 const App: React.FC = () => (
26
-  <IonNav root={() => <HomePage />}></IonNav>
36
+  <IonApp>
37
+    <IonReactRouter>
38
+      <IonRouterOutlet>
39
+        <Route path="/" exact={true}>
40
+          <Redirect to="/home" />
41
+        </Route>
42
+        <Route path="/home" exact={true}>
43
+          <HomePage />
44
+        </Route>
45
+        <Route path="/ListBiographie">
46
+          <ListBiographies />
47
+        </Route>
48
+        <Route path="/Biographie/:id">
49
+          <Biography />
50
+        </Route>
51
+        <Route path="/ListCapsules">
52
+          <ListCapsules />
53
+        </Route>
54
+        <Route path="/Capsule">
55
+          <Capsule />
56
+        </Route>
57
+        <Route path="/Question">
58
+          <Questions />
59
+        </Route>
60
+        <Route path="/About">
61
+          <AboutUs />
62
+        </Route>
63
+      </IonRouterOutlet>
64
+    </IonReactRouter>
65
+  </IonApp>
27
 );
66
 );
28
 
67
 
29
 export default App;
68
 export default App;

+ 8
- 0
src/data/About.json View File

1
+[
2
+    {
3
+        "title": "Enciclopedia PR",
4
+        "title2": "Más sobre nosotros:",
5
+        "content": "Para más información sobre EnciclopediaPR, visite la página ",
6
+        "url": "https://enciclopediapr.org/"
7
+    }
8
+]

+ 15
- 0
src/data/BioInfo.ts View File

1
+import ListBio from '../data/Biograph.json';
2
+
3
+export interface BioInfo {
4
+    id: number;
5
+    title: string;
6
+    content: string;
7
+    Text1: string;
8
+    Text2: string;
9
+    tags: string;
10
+    photo: string;
11
+}
12
+
13
+export const getMessages = () => ListBio;
14
+
15
+export const getMessage = (id: number) => ListBio.find(m => m.id === id);

+ 7
- 1
src/data/Biograph.json View File

3
         "id": 1,
3
         "id": 1,
4
         "title": "Roberto Clemente",
4
         "title": "Roberto Clemente",
5
         "content": "Pelotero, Filántropo Fue un afamado pelotero puertorriqueño que formó parte de las Grandes Ligas de Estados Unidos...",
5
         "content": "Pelotero, Filántropo Fue un afamado pelotero puertorriqueño que formó parte de las Grandes Ligas de Estados Unidos...",
6
+        "Text1": "Fue un afamado pelotero puertorriqueño que formó parte de las Grandes Ligas de Estados Unidos. El notable jardinero derecho y bateador fue el primer latinoamericano en formar parte del Salón de la Fama del Béisbol de Estados Unidos. También fue conocido por su labor filantrópica.",
7
+        "Text2": "Nació el 18 de agosto de 1934 en San Antón, Carolina. Sus padres fueron Melchor Clemente y Luisa Walker. Desde los ocho años mostró habilidades deportivas con su participación en programas de pequeñas ligas y atletismo infantil. Se destacó en pista y campo, deporte en el que ganó varias medallas, específicamente en tiro de jabalina y distancias cortas. Con apenas 14 años, ya formaba parte del equipo de softball de Sello Rojo, compañía procesadora de arroz. Más adelante, formó parte del equipo de pelota aficionado de Juncos. En 1952, con 18 años de edad, ingresó a la liga de beisbol profesional de Puerto Rico, cuando fue contratado por los Cangrejeros de Santurce. El tiempo que formó parte de este equipo fue crucial para su carrera, ya que pudo pulir sus destrezas deportivas.",
6
         "tags": "Deportista, Puertorriqueño",
8
         "tags": "Deportista, Puertorriqueño",
7
         "photo": "require('../assets/RobertoClemente.jpg')"
9
         "photo": "require('../assets/RobertoClemente.jpg')"
8
     },
10
     },
10
         "id": 2,
12
         "id": 2,
11
         "title": "Marian Villaronga Toro",
13
         "title": "Marian Villaronga Toro",
12
         "content": "Durante su incumbencia como secretario de Instrucción Pública se fundó la Editorial del Departamento, el servicio público de radio....",
14
         "content": "Durante su incumbencia como secretario de Instrucción Pública se fundó la Editorial del Departamento, el servicio público de radio....",
15
+        "Text1": "Durante su incumbencia como secretario de Instrucción Pública se fundó la Editorial del Departamento, el servicio público de radio y televisión educativa, la Escuela Libre de Música y se adoptó el español como lengua oficial de la enseñanza en todos los niveles del sistema de educación pública en Puerto Rico.",
16
+        "Text2": "Mariano Villaronga Toro nació el 9 de noviembre de 1906 en el pueblo sureño de Ponce. Realizó sus estudios universitarios en la Universidad de Puerto Rico en Río Piedras, donde en 1929 completó un bachillerato en ciencias. Luego, se desempeñó como maestro en el sistema público del país y más adelante, como principal de escuela.",
13
         "tags": "Educador, Funcionario público, Puertorriqueño",
17
         "tags": "Educador, Funcionario público, Puertorriqueño",
14
         "photo": "require('../assets/MarianoVillaronga.jpg')"
18
         "photo": "require('../assets/MarianoVillaronga.jpg')"
15
     },
19
     },
16
     {
20
     {
17
         "id": 3,
21
         "id": 3,
18
-        "title": "German Rieckhoff Sampoyo",
22
+        "title": "German Rieckhoff Sampayo",
19
         "content": "Germán Rieckehoff Sampayo fue un pilar del olimpismo y defensor de la soberanía deportiva puertorriqueña. Fue presidente del Comité Olímpico de Puerto Rico (COPUR)....",
23
         "content": "Germán Rieckehoff Sampayo fue un pilar del olimpismo y defensor de la soberanía deportiva puertorriqueña. Fue presidente del Comité Olímpico de Puerto Rico (COPUR)....",
24
+        "Text1": "Germán Rieckehoff Sampayo fue un pilar del olimpismo y defensor de la soberanía deportiva puertorriqueña. Fue presidente del Comité Olímpico de Puerto Rico (COPUR) de 1977 a 1989 y fue el primer puertorriqueño en ser miembro del Comité Olímpico Internacional. Durante su incumbencia, fundó el Albergue Olímpico ubicado en el pueblo de Salinas.",
25
+        "Text2": "Nació el 15 de febrero de 1915 en Vieques, hijo de la maestra Angelita Sampayo y del contador Germán Rieckehoff Morales, descendiente de emigrantes alemanes que fue electo a la Cámara de Representantes por el partido Alianza Puertorriqueña en el distrito electoral de Vieques, Fajardo y Culebra (1925-1928). Su educación primaria la realizó en su pueblo natal, en el Instituto Politécnico en San Germán y en la escuela Hawthorne en Río Piedras. Es para esta época que comienza su interés por los deportes; practicaba baloncesto, béisbol y formó parte de los niños escucha (boy scouts). Comenzó la escuela superior de la Universidad de Puerto Rico (UHS), en Río Piedras, pero abandonó los estudios en 1931.",
20
         "tags": "Líder deportivo, Abogado, Puertorriqueño",
26
         "tags": "Líder deportivo, Abogado, Puertorriqueño",
21
         "photo": "require('../assets/DonGermán.jpg')"
27
         "photo": "require('../assets/DonGermán.jpg')"
22
     }
28
     }

+ 15
- 0
src/pages/AboutUs.css View File

11
 ion-col {
11
 ion-col {
12
     text-align: center;
12
     text-align: center;
13
     align-items: center;
13
     align-items: center;
14
+}
15
+
16
+.Item-Center {
17
+    width: 100%;
18
+    display: flex;
19
+    align-items: center;
20
+    justify-content: center;
21
+}
22
+
23
+.Header-Color {
24
+    --background: #4de9d9;
25
+}
26
+
27
+.Footer-Color {
28
+    --background: #d3d3d3;
14
 }
29
 }

+ 22
- 16
src/pages/AboutUs.tsx View File

6
   IonPage,
6
   IonPage,
7
   IonToolbar,
7
   IonToolbar,
8
   IonFooter,
8
   IonFooter,
9
-  IonNavLink,
10
-  IonTabButton,
11
-  IonIcon,
12
   IonGrid,
9
   IonGrid,
13
   IonRow,
10
   IonRow,
14
-  IonCol
11
+  IonCol,
12
+  IonButtons,
13
+  IonBackButton
15
 } from '@ionic/react';
14
 } from '@ionic/react';
16
-import { arrowBack } from 'ionicons/icons';
17
 import React from 'react';
15
 import React from 'react';
18
 import './AboutUs.css';
16
 import './AboutUs.css';
19
-import HomePage from './HomePage';
20
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
17
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
18
+import About from '../data/About.json'
21
 
19
 
22
 const AboutUs: React.FC = () => {
20
 const AboutUs: React.FC = () => {
23
   return (
21
   return (
24
     <IonPage>
22
     <IonPage>
25
       <IonHeader>
23
       <IonHeader>
26
-        <IonToolbar>
24
+        <IonToolbar className="Header-Color">
27
           <IonGrid fixed={true}>
25
           <IonGrid fixed={true}>
28
             <IonRow>
26
             <IonRow>
29
               <IonCol></IonCol>
27
               <IonCol></IonCol>
37
         </IonToolbar>
35
         </IonToolbar>
38
       </IonHeader>
36
       </IonHeader>
39
       <IonContent fullscreen className="ion-padding">
37
       <IonContent fullscreen className="ion-padding">
40
-        <h1>Enciclopedia PR</h1>
41
-        <h2>Más sobre nosotros:</h2>
42
-        <p>Para más información sobre EnciclopediaPR, visite la página href='https://enciclopediapr.org/'</p>
38
+        {
39
+          About && About.map(infoAb => {
40
+            return (
41
+              <>
42
+                <h1>{infoAb.title}</h1>
43
+                <h2>{infoAb.title2}</h2>
44
+                <p>{infoAb.content} {infoAb.url}</p>
45
+              </>
46
+            )
47
+          })
48
+        }
43
       </IonContent>
49
       </IonContent>
44
       <IonFooter>
50
       <IonFooter>
45
-        <IonToolbar>
46
-          <IonNavLink routerDirection="forward" component={() => <HomePage />}>
47
-            <IonTabButton tab="HomePage" href="/HomePage">
48
-              <IonIcon icon={arrowBack} />
49
-            </IonTabButton>
50
-          </IonNavLink>
51
+        <IonToolbar className="Footer-Color">
52
+          <div className='Item-Center'>
53
+            <IonButtons slot="start">
54
+              <IonBackButton defaultHref="/home"></IonBackButton>
55
+            </IonButtons>
56
+          </div>
51
         </IonToolbar>
57
         </IonToolbar>
52
       </IonFooter>
58
       </IonFooter>
53
     </IonPage>
59
     </IonPage>

+ 15
- 0
src/pages/Biography.css View File

11
 ion-col {
11
 ion-col {
12
     text-align: center;
12
     text-align: center;
13
     align-items: center;
13
     align-items: center;
14
+}
15
+
16
+.Item-Center {
17
+    width: 100%;
18
+    display: flex;
19
+    align-items: center;
20
+    justify-content: center;
21
+}
22
+
23
+.Header-Color {
24
+    --background: #4de9d9;
25
+}
26
+
27
+.Footer-Color {
28
+    --background: #d3d3d3;
14
 }
29
 }

+ 39
- 25
src/pages/Biography.tsx View File

5
     IonTitle,
5
     IonTitle,
6
     IonToolbar,
6
     IonToolbar,
7
     IonFooter,
7
     IonFooter,
8
-    IonNavLink,
9
-    IonButton,
10
-    IonTabButton,
11
-    IonIcon,
12
     IonImg,
8
     IonImg,
13
     IonGrid,
9
     IonGrid,
14
     IonRow,
10
     IonRow,
15
-    IonCol
11
+    IonCol,
12
+    IonButtons,
13
+    IonBackButton,
14
+    useIonViewWillEnter,
15
+    IonItem,
16
+    IonIcon
16
 } from '@ionic/react';
17
 } from '@ionic/react';
17
-import { arrowBack } from 'ionicons/icons';
18
-import React from 'react';
18
+import { useParams } from 'react-router';
19
+import React, { useState } from 'react';
20
+import { BioInfo, getMessage } from '../data/BioInfo';
19
 import './Biography.css';
21
 import './Biography.css';
20
-import ListBiographies from './ListBiographies';
21
-import Questions from './Questions';
22
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
22
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
23
 import RobertoClemente from '../assets/RobertoClemente.jpg';
23
 import RobertoClemente from '../assets/RobertoClemente.jpg';
24
+import { square } from 'ionicons/icons';
24
 
25
 
25
 const Biography: React.FC = () => {
26
 const Biography: React.FC = () => {
27
+    const [bioinfo, setMessage] = useState<BioInfo>();
28
+    const params = useParams<{ id: string }>();
29
+
30
+    useIonViewWillEnter(() => {
31
+        const msg = getMessage(parseInt(params.id, 10));
32
+        setMessage(msg);
33
+    });
34
+
26
     return (
35
     return (
27
         <IonPage>
36
         <IonPage>
28
             <IonHeader>
37
             <IonHeader>
29
-                <IonToolbar>
38
+                <IonToolbar className="Header-Color">
30
                     <IonGrid fixed={true}>
39
                     <IonGrid fixed={true}>
31
                         <IonRow>
40
                         <IonRow>
32
                             <IonCol></IonCol>
41
                             <IonCol></IonCol>
40
                 </IonToolbar>
49
                 </IonToolbar>
41
             </IonHeader>
50
             </IonHeader>
42
             <IonContent fullscreen className="ion-padding">
51
             <IonContent fullscreen className="ion-padding">
43
-                <IonImg style={{ height: 300, width: 600 }} src={RobertoClemente} alt='Logo'></IonImg>
44
-                <h1>Roberto Clemente</h1>
45
-
46
-                <p>Pelotero, Filántropo</p>
47
-                <p>Fue un afamado pelotero puertorriqueño que formó parte de las Grandes Ligas de Estados Unidos. El notable jardinero derecho y bateador fue el primer latinoamericano en formar parte del Salón de la Fama del Béisbol de Estados Unidos. También fue conocido por su labor filantrópica.</p>
48
-                <p>Nació el 18 de agosto de 1934 en San Antón, Carolina. Sus padres fueron Melchor Clemente y Luisa Walker. Desde los ocho años mostró habilidades deportivas con su participación en programas de pequeñas ligas y atletismo infantil. Se destacó en pista y campo, deporte en el que ganó varias medallas, específicamente en tiro de jabalina y distancias cortas. Con apenas 14 años, ya formaba parte del equipo de softball de Sello Rojo, compañía procesadora de arroz. Más adelante, formó parte del equipo de pelota aficionado de Juncos. En 1952, con 18 años de edad, ingresó a la liga de beisbol profesional de Puerto Rico, cuando fue contratado por los Cangrejeros de Santurce. El tiempo que formó parte de este equipo fue crucial para su carrera, ya que pudo pulir sus destrezas deportivas.</p>
52
+                {bioinfo ? (
53
+                    <>
54
+                        <IonImg style={{ height: 300, width: 600 }} src={RobertoClemente} alt='Logo'></IonImg>
55
+                        <h1>{bioinfo.title}</h1>
49
 
56
 
50
-                <IonNavLink routerDirection="forward" component={() => <Questions />}>
51
-                    <IonButton>Tomar quiz</IonButton>
52
-                </IonNavLink>
57
+                        <p>{bioinfo.tags}</p>
58
+                        <p>{bioinfo.Text1}</p>
59
+                        <p>{bioinfo.Text2}</p>
60
+                        <IonItem routerLink={`/Question`} detail={true}>
61
+                            <IonIcon icon={square} />Tomar quiz
62
+                        </IonItem>
63
+                    </>
64
+                ) : (
65
+                    <div>Message not found</div>
66
+                )}
53
             </IonContent>
67
             </IonContent>
54
 
68
 
55
             <IonFooter>
69
             <IonFooter>
56
-                <IonToolbar>
57
-                    <IonNavLink routerDirection="forward" component={() => <ListBiographies />}>
58
-                        <IonTabButton tab="ListBiographies" href="/ListBiographies">
59
-                            <IonIcon icon={arrowBack} />
60
-                        </IonTabButton>
61
-                    </IonNavLink>
70
+                <IonToolbar className="Footer-Color">
71
+                    <div className='Item-Center'>
72
+                        <IonButtons slot="start">
73
+                            <IonBackButton defaultHref="/home"></IonBackButton>
74
+                        </IonButtons>
75
+                    </div>
62
                 </IonToolbar>
76
                 </IonToolbar>
63
             </IonFooter>
77
             </IonFooter>
64
         </IonPage>
78
         </IonPage>

+ 15
- 0
src/pages/Capsule.css View File

11
 ion-col {
11
 ion-col {
12
     text-align: center;
12
     text-align: center;
13
     align-items: center;
13
     align-items: center;
14
+}
15
+
16
+.Item-Center {
17
+    width: 100%;
18
+    display: flex;
19
+    align-items: center;
20
+    justify-content: center;
21
+}
22
+
23
+.Header-Color {
24
+    --background: #4de9d9;
25
+}
26
+
27
+.Footer-Color {
28
+    --background: #d3d3d3;
14
 }
29
 }

+ 24
- 12
src/pages/Capsule.tsx View File

6
     IonToolbar,
6
     IonToolbar,
7
     IonFooter,
7
     IonFooter,
8
     IonNavLink,
8
     IonNavLink,
9
-    IonTabButton,
10
-    IonIcon,
11
     IonImg,
9
     IonImg,
12
     IonGrid,
10
     IonGrid,
13
     IonRow,
11
     IonRow,
14
-    IonCol
12
+    IonCol,
13
+    IonButton,
14
+    IonButtons,
15
+    IonBackButton
15
 } from '@ionic/react';
16
 } from '@ionic/react';
16
-import { arrowBack } from 'ionicons/icons';
17
 import React from 'react';
17
 import React from 'react';
18
 import './Capsule.css';
18
 import './Capsule.css';
19
-import ListCapsules from './ListCapsules';
19
+import Biography from './Biography';
20
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
20
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
21
 import Bomba from '../assets/BombaPuertorriquena.jpg';
21
 import Bomba from '../assets/BombaPuertorriquena.jpg';
22
+import RobertoClemente from '../assets/RobertoClemente.jpg';
22
 
23
 
23
 const Capsule: React.FC = () => {
24
 const Capsule: React.FC = () => {
24
     return (
25
     return (
25
         <IonPage>
26
         <IonPage>
26
             <IonHeader>
27
             <IonHeader>
27
-                <IonToolbar>
28
+                <IonToolbar className="Header-Color">
28
                     <IonGrid fixed={true}>
29
                     <IonGrid fixed={true}>
29
                         <IonRow>
30
                         <IonRow>
30
                             <IonCol></IonCol>
31
                             <IonCol></IonCol>
44
                 <p>Han existido distintas formas de danzar o bailar desde la historia muy antigua de la humanidad. En Puerto Rico el primer baile documentado por los cronistas de Indias es el llamado areito, con las variantes de escritura areyto y areíto. Era un baile coreado y musicalizado, dirigido por un guía. Esta manifestación de movimiento corporal, que Gonzalo Fernández de Oviedo llamó “bailar cantando”, fue común en los grupos indígenas de la región caribeña.</p>
45
                 <p>Han existido distintas formas de danzar o bailar desde la historia muy antigua de la humanidad. En Puerto Rico el primer baile documentado por los cronistas de Indias es el llamado areito, con las variantes de escritura areyto y areíto. Era un baile coreado y musicalizado, dirigido por un guía. Esta manifestación de movimiento corporal, que Gonzalo Fernández de Oviedo llamó “bailar cantando”, fue común en los grupos indígenas de la región caribeña.</p>
45
                 <p>Se ejecutaba en hileras, con los participantes cogidos de las manos, de los brazos o, según Bartolomé de las Casas, “los brazos de los unos puestos sobre los hombros de los otros”. Según Pedro Mártir de Anglería, los participantes llevaban caracoles en los brazos y piernas, con los que producían “un ruido agradable”. Narraban una historia y el guía indicaba qué pasos y cantos se repetirían hasta que ésta culminara.</p>
46
                 <p>Se ejecutaba en hileras, con los participantes cogidos de las manos, de los brazos o, según Bartolomé de las Casas, “los brazos de los unos puestos sobre los hombros de los otros”. Según Pedro Mártir de Anglería, los participantes llevaban caracoles en los brazos y piernas, con los que producían “un ruido agradable”. Narraban una historia y el guía indicaba qué pasos y cantos se repetirían hasta que ésta culminara.</p>
46
                 <p>Aunque la llegada de los conquistadores españoles produjo una rápida desaparición de la población indígena y de cualquier expresión autóctona que las autoridades consideraran pagana, Fray Iñigo Abbad y Lasierra afirmaba en 1789 que “la diversión más apreciable para estos isleños son los bailes; los tienen sin más motivo que el de pasar el tiempo y rara vez faltan en una cosa u otra”.</p>
47
                 <p>Aunque la llegada de los conquistadores españoles produjo una rápida desaparición de la población indígena y de cualquier expresión autóctona que las autoridades consideraran pagana, Fray Iñigo Abbad y Lasierra afirmaba en 1789 que “la diversión más apreciable para estos isleños son los bailes; los tienen sin más motivo que el de pasar el tiempo y rara vez faltan en una cosa u otra”.</p>
48
+
49
+                <h2>Information about important figures</h2>
50
+                <IonGrid fixed={true}>
51
+                    <IonRow>
52
+                        <IonImg style={{ height: 150, width: 300 }} src={RobertoClemente} alt='Logo'></IonImg>
53
+                        <IonNavLink routerDirection="forward" component={() => <Biography />} >
54
+                            <IonButton color="light">Roberto Clemente</IonButton>
55
+                        </IonNavLink>
56
+                    </IonRow>
57
+                </IonGrid>
58
+
47
             </IonContent>
59
             </IonContent>
48
             <IonFooter>
60
             <IonFooter>
49
-                <IonToolbar>
50
-                    <IonNavLink routerDirection="forward" component={() => <ListCapsules />}>
51
-                        <IonTabButton tab="ListCapsules" href="/ListCapsules">
52
-                            <IonIcon icon={arrowBack} />
53
-                        </IonTabButton>
54
-                    </IonNavLink>
61
+                <IonToolbar className="Footer-Color">
62
+                    <div className='Item-Center'>
63
+                        <IonButtons slot="start">
64
+                            <IonBackButton defaultHref="/ListCapsules"></IonBackButton>
65
+                        </IonButtons>
66
+                    </div>
55
                 </IonToolbar>
67
                 </IonToolbar>
56
             </IonFooter>
68
             </IonFooter>
57
         </IonPage>
69
         </IonPage>

+ 15
- 0
src/pages/HomePage.css View File

16
 ion-col {
16
 ion-col {
17
     text-align: center;
17
     text-align: center;
18
     align-items: center;
18
     align-items: center;
19
+}
20
+
21
+.Header-Color {
22
+    --background: #4de9d9;
23
+}
24
+
25
+.Footer-Color {
26
+    --background: #d3d3d3;
27
+}
28
+
29
+.Item-Center {
30
+    width: 100%;
31
+    display: flex;
32
+    align-items: center;
33
+    justify-content: center;
19
 }
34
 }

+ 32
- 36
src/pages/HomePage.tsx View File

1
 import {
1
 import {
2
   IonContent,
2
   IonContent,
3
-  IonButton,
4
   IonHeader,
3
   IonHeader,
5
   IonPage,
4
   IonPage,
6
   IonTitle,
5
   IonTitle,
9
   IonCardHeader,
8
   IonCardHeader,
10
   IonCardSubtitle,
9
   IonCardSubtitle,
11
   IonCardTitle,
10
   IonCardTitle,
12
-  IonNavLink,
13
   IonFooter,
11
   IonFooter,
14
   IonTabButton,
12
   IonTabButton,
15
   IonIcon,
13
   IonIcon,
17
   IonImg,
15
   IonImg,
18
   IonCol,
16
   IonCol,
19
   IonGrid,
17
   IonGrid,
20
-  IonRow
18
+  IonRow,
19
+  IonItem
21
 } from '@ionic/react';
20
 } from '@ionic/react';
22
 import { square } from 'ionicons/icons';
21
 import { square } from 'ionicons/icons';
23
 import './HomePage.css';
22
 import './HomePage.css';
24
-import ListBiographies from './ListBiographies';
25
-import ListCapsules from './ListCapsules';
26
-import AboutUs from './AboutUs';
27
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
23
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
28
 
24
 
29
 const HomePage: React.FC = () => {
25
 const HomePage: React.FC = () => {
30
   return (
26
   return (
31
     <IonPage>
27
     <IonPage>
32
       <IonHeader>
28
       <IonHeader>
33
-        <IonToolbar>
29
+        <IonToolbar className="Header-Color">
34
           <IonGrid fixed={true}>
30
           <IonGrid fixed={true}>
35
             <IonRow>
31
             <IonRow>
36
               <IonCol></IonCol>
32
               <IonCol></IonCol>
44
         </IonToolbar>
40
         </IonToolbar>
45
       </IonHeader>
41
       </IonHeader>
46
       <IonContent fullscreen>
42
       <IonContent fullscreen>
47
-        <IonCard>
48
-          <IonCardHeader>
49
-            <IonCardTitle>Biografías</IonCardTitle>
50
-            <IonCardSubtitle>Lista de todas las biografías</IonCardSubtitle>
51
-          </IonCardHeader>
52
-          <IonNavLink routerDirection="forward" component={() => <ListBiographies />}>
53
-            <IonButton size="default" expand="block" shape="round">
54
-              Buscar
55
-            </IonButton>
56
-          </IonNavLink>
57
-        </IonCard>
58
-        <IonCard>
59
-          <IonCardHeader>
60
-            <IonCardTitle>Cápsulas</IonCardTitle>
61
-            <IonCardSubtitle>Lista de todas las cápsulas</IonCardSubtitle>
62
-          </IonCardHeader>
63
-          <IonNavLink routerDirection="forward" component={() => <ListCapsules />}>
64
-            <IonButton size="default" expand="block" shape="round">
65
-              Buscar
66
-            </IonButton>
67
-          </IonNavLink>
68
-        </IonCard>
43
+        <div className='Item-Center'>
44
+          <IonItem routerLink={`/ListBiographie`} detail={true}>
45
+            <IonCard>
46
+              <IonCardHeader>
47
+                <IonCardTitle>Biografías</IonCardTitle>
48
+                <IonCardSubtitle>Lista de todas las biografías</IonCardSubtitle>
49
+              </IonCardHeader>
50
+            </IonCard>
51
+          </IonItem>
52
+        </div>
53
+        <div className='Item-Center'>
54
+          <IonItem routerLink={`/ListCapsules`} detail={true}>
55
+            <IonCard>
56
+              <IonCardHeader>
57
+                <IonCardTitle>Cápsulas</IonCardTitle>
58
+                <IonCardSubtitle>Lista de todas las cápsulas</IonCardSubtitle>
59
+              </IonCardHeader>
60
+            </IonCard>
61
+          </IonItem>
62
+        </div>
69
       </IonContent>
63
       </IonContent>
70
       <IonFooter>
64
       <IonFooter>
71
-        <IonToolbar>
72
-          <IonNavLink routerDirection="forward" component={() => <AboutUs />}>
73
-            <IonTabButton tab="AboutUs" href="/AboutUs">
74
-              <IonIcon icon={square} />
75
-              <IonLabel>Sobre nosotros</IonLabel>
76
-            </IonTabButton>
77
-          </IonNavLink>
65
+        <IonToolbar className="Footer-Color">
66
+          <div className='Item-Center'>
67
+            <IonItem routerLink={`/About`}>
68
+              <IonTabButton tab="AboutUs" href="/AboutUs">
69
+                <IonIcon icon={square} />
70
+                <IonLabel>Sobre nosotros</IonLabel>
71
+              </IonTabButton>
72
+            </IonItem>
73
+          </div>
78
         </IonToolbar>
74
         </IonToolbar>
79
       </IonFooter>
75
       </IonFooter>
80
     </IonPage>
76
     </IonPage>

+ 15
- 0
src/pages/ListBiographies.css View File

11
 ion-col {
11
 ion-col {
12
     text-align: center;
12
     text-align: center;
13
     align-items: center;
13
     align-items: center;
14
+}
15
+
16
+.Item-Center {
17
+    width: 100%;
18
+    display: flex;
19
+    align-items: center;
20
+    justify-content: center;
21
+}
22
+
23
+.Header-Color {
24
+    --background: #4de9d9;
25
+}
26
+
27
+.Footer-Color {
28
+    --background: #d3d3d3;
14
 }
29
 }

+ 25
- 34
src/pages/ListBiographies.tsx View File

11
   IonPage,
11
   IonPage,
12
   IonTitle,
12
   IonTitle,
13
   IonToolbar,
13
   IonToolbar,
14
-  IonButton,
15
-  IonNavLink,
16
   IonFooter,
14
   IonFooter,
17
-  IonTabButton,
18
-  IonIcon,
19
   IonGrid,
15
   IonGrid,
20
   IonRow,
16
   IonRow,
21
-  IonCol
17
+  IonCol,
18
+  IonButtons,
19
+  IonBackButton,
20
+  IonItem,
21
+  IonIcon
22
 } from '@ionic/react';
22
 } from '@ionic/react';
23
-import { arrowBack } from 'ionicons/icons';
24
 import './ListBiographies.css';
23
 import './ListBiographies.css';
25
-import Biography from './Biography';
26
-import Questions from './Questions';
27
-import HomePage from './HomePage';
24
+import { square } from 'ionicons/icons';
28
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
25
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
29
 import RobertoClemente from '../assets/RobertoClemente.jpg';
26
 import RobertoClemente from '../assets/RobertoClemente.jpg';
30
 import ListBio from '../data/Biograph.json';
27
 import ListBio from '../data/Biograph.json';
33
   return (
30
   return (
34
     <IonPage>
31
     <IonPage>
35
       <IonHeader>
32
       <IonHeader>
36
-        <IonToolbar>
33
+        <IonToolbar className="Header-Color">
37
           <IonGrid fixed={true}>
34
           <IonGrid fixed={true}>
38
             <IonRow>
35
             <IonRow>
39
               <IonCol></IonCol>
36
               <IonCol></IonCol>
48
       </IonHeader>
45
       </IonHeader>
49
       <IonContent fullscreen>
46
       <IonContent fullscreen>
50
         <IonSearchbar></IonSearchbar>
47
         <IonSearchbar></IonSearchbar>
51
-
52
         {
48
         {
53
           ListBio && ListBio.map(listbio => {
49
           ListBio && ListBio.map(listbio => {
54
             return (
50
             return (
55
               <>
51
               <>
56
                 <IonCard>
52
                 <IonCard>
57
-                  <IonImg style={{ height: 300, width: 600 }} src={RobertoClemente} alt='Logo'></IonImg>
58
-                  <IonCardHeader>
59
-                    <IonCardTitle>{listbio.title}</IonCardTitle>
60
-                    <IonCardSubtitle>{listbio.tags}</IonCardSubtitle>
61
-                  </IonCardHeader><IonCardContent>
62
-                    {listbio.content}
63
-                  </IonCardContent>
64
-                  <IonNavLink routerDirection="forward" component={() => <Biography />}>
65
-                    <IonButton>Go to</IonButton>
66
-                  </IonNavLink>
67
-
68
-                  <IonNavLink routerDirection="forward" component={() => <Questions />}>
69
-                    <IonButton>Tomar quiz</IonButton>
70
-                  </IonNavLink>
71
-
53
+                  <IonItem routerLink={`/Biographie/${listbio.id}`}>
54
+                    <IonImg style={{ height: 300, width: 600 }} src={RobertoClemente} alt='Logo'></IonImg>
55
+                    <IonCardHeader>
56
+                      <IonCardTitle>{listbio.title}</IonCardTitle>
57
+                      <IonCardSubtitle>{listbio.tags}</IonCardSubtitle>
58
+                    </IonCardHeader><IonCardContent>
59
+                      {listbio.content}
60
+                    </IonCardContent>
61
+                  </IonItem>
62
+                  <IonItem routerLink={`/Question`} detail={true}>
63
+                    <IonIcon icon={square} />Tomar quiz
64
+                  </IonItem>
72
                 </IonCard>
65
                 </IonCard>
73
               </>
66
               </>
74
             )
67
             )
75
           })
68
           })
76
         }
69
         }
77
-
78
-
79
       </IonContent>
70
       </IonContent>
80
       <IonFooter>
71
       <IonFooter>
81
-        <IonToolbar>
82
-          <IonNavLink routerDirection="forward" component={() => <HomePage />}>
83
-            <IonTabButton tab="HomePage" href="/HomePage">
84
-              <IonIcon icon={arrowBack} />
85
-            </IonTabButton>
86
-          </IonNavLink>
72
+        <IonToolbar className="Footer-Color">
73
+          <div className='Item-Center'>
74
+            <IonButtons slot="start">
75
+              <IonBackButton defaultHref="/home"></IonBackButton>
76
+            </IonButtons>
77
+          </div>
87
         </IonToolbar>
78
         </IonToolbar>
88
       </IonFooter>
79
       </IonFooter>
89
     </IonPage>
80
     </IonPage>

+ 15
- 0
src/pages/ListCapsules.css View File

11
 ion-col {
11
 ion-col {
12
     text-align: center;
12
     text-align: center;
13
     align-items: center;
13
     align-items: center;
14
+}
15
+
16
+.Item-Center {
17
+    width: 100%;
18
+    display: flex;
19
+    align-items: center;
20
+    justify-content: center;
21
+}
22
+
23
+.Header-Color {
24
+    --background: #4de9d9;
25
+}
26
+
27
+.Footer-Color {
28
+    --background: #d3d3d3;
14
 }
29
 }

+ 11
- 19
src/pages/ListCapsules.tsx View File

9
   IonPage,
9
   IonPage,
10
   IonTitle,
10
   IonTitle,
11
   IonToolbar,
11
   IonToolbar,
12
-  IonButton,
13
-  IonNavLink,
14
   IonFooter,
12
   IonFooter,
15
-  IonTabButton,
16
-  IonIcon,
17
   IonGrid,
13
   IonGrid,
18
   IonRow,
14
   IonRow,
19
-  IonCol
15
+  IonCol,
16
+  IonButtons,
17
+  IonBackButton
20
 } from '@ionic/react';
18
 } from '@ionic/react';
21
-import { arrowBack } from 'ionicons/icons';
22
 import './ListCapsules.css';
19
 import './ListCapsules.css';
23
-import HomePage from './HomePage';
24
-import Capsule from './Capsule'
25
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
20
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
26
 
21
 
27
 const ListCapsules: React.FC = () => {
22
 const ListCapsules: React.FC = () => {
28
   return (
23
   return (
29
     <IonPage>
24
     <IonPage>
30
       <IonHeader>
25
       <IonHeader>
31
-        <IonToolbar>
26
+        <IonToolbar className="Header-Color">
32
           <IonGrid fixed={true}>
27
           <IonGrid fixed={true}>
33
             <IonRow>
28
             <IonRow>
34
               <IonCol></IonCol>
29
               <IonCol></IonCol>
44
       <IonContent fullscreen>
39
       <IonContent fullscreen>
45
         <IonSearchbar></IonSearchbar>
40
         <IonSearchbar></IonSearchbar>
46
         <IonList inset={true}>
41
         <IonList inset={true}>
47
-          <IonItem>
42
+          <IonItem routerLink={`/Capsule`} detail={true}>
48
             <IonLabel>Breve Historia del baile en Puerto Rico</IonLabel>
43
             <IonLabel>Breve Historia del baile en Puerto Rico</IonLabel>
49
-            <IonNavLink routerDirection="forward" component={() => <Capsule />}>
50
-              <IonButton>Visitar</IonButton>
51
-            </IonNavLink>
52
           </IonItem>
44
           </IonItem>
53
           <IonItem>
45
           <IonItem>
54
             <IonLabel>Cápsula#2</IonLabel>
46
             <IonLabel>Cápsula#2</IonLabel>
59
         </IonList>
51
         </IonList>
60
       </IonContent>
52
       </IonContent>
61
       <IonFooter>
53
       <IonFooter>
62
-        <IonToolbar>
63
-          <IonNavLink routerDirection="forward" component={() => <HomePage />}>
64
-            <IonTabButton tab="HomePage" href="/HomePage">
65
-              <IonIcon icon={arrowBack} />
66
-            </IonTabButton>
67
-          </IonNavLink>
54
+        <IonToolbar className="Footer-Color">
55
+          <div className='Item-Center'>
56
+            <IonButtons slot="start">
57
+              <IonBackButton defaultHref="/home"></IonBackButton>
58
+            </IonButtons>
59
+          </div>
68
         </IonToolbar>
60
         </IonToolbar>
69
       </IonFooter>
61
       </IonFooter>
70
     </IonPage>
62
     </IonPage>

+ 15
- 0
src/pages/Questions.css View File

13
     align-items: center;
13
     align-items: center;
14
 }
14
 }
15
 
15
 
16
+.Item-Center {
17
+    width: 100%;
18
+    display: flex;
19
+    align-items: center;
20
+    justify-content: center;
21
+}
22
+
23
+.Header-Color {
24
+    --background: #4de9d9;
25
+}
26
+
27
+.Footer-Color {
28
+    --background: #d3d3d3;
29
+}
30
+
16
 ion-radio {
31
 ion-radio {
17
     --border-radius: 4px;
32
     --border-radius: 4px;
18
     --inner-border-radius: 4px;
33
     --inner-border-radius: 4px;

+ 9
- 14
src/pages/Questions.tsx View File

5
     IonTitle,
5
     IonTitle,
6
     IonToolbar,
6
     IonToolbar,
7
     IonFooter,
7
     IonFooter,
8
-    IonNavLink,
9
-    IonTabButton,
10
-    IonIcon,
11
     IonImg,
8
     IonImg,
12
     IonItem,
9
     IonItem,
13
     IonLabel,
10
     IonLabel,
21
     IonGrid,
18
     IonGrid,
22
     IonRow,
19
     IonRow,
23
     IonCol,
20
     IonCol,
24
-    IonRadioGroup,
25
-    IonRadio
21
+    IonButtons,
22
+    IonBackButton
26
 } from '@ionic/react';
23
 } from '@ionic/react';
27
-import { arrowBack } from 'ionicons/icons';
28
 import React, {useState} from 'react';
24
 import React, {useState} from 'react';
29
 //import { Form } from 'react-bootstrap';
25
 //import { Form } from 'react-bootstrap';
30
 import './Questions.css';
26
 import './Questions.css';
31
-import Biography from './Biography';
32
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
27
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
33
 //import RobertoClemente from '../assets/RobertoClemente.jpg';
28
 //import RobertoClemente from '../assets/RobertoClemente.jpg';
34
 //import Quizzes from '../data/Quizzes.json';
29
 //import Quizzes from '../data/Quizzes.json';
49
     return (
44
     return (
50
         <IonPage>
45
         <IonPage>
51
             <IonHeader>
46
             <IonHeader>
52
-                <IonToolbar>
47
+                <IonToolbar className="Header-Color">
53
                     <IonGrid fixed={true}>
48
                     <IonGrid fixed={true}>
54
                         <IonRow>
49
                         <IonRow>
55
                             <IonCol></IonCol>
50
                             <IonCol></IonCol>
66
             {QuizForm(1)}
61
             {QuizForm(1)}
67
 
62
 
68
             <IonFooter>
63
             <IonFooter>
69
-                <IonToolbar>
70
-                    <IonNavLink routerDirection="forward" component={() => <Biography />}>
71
-                        <IonTabButton tab="Biography" href="/Biography">
72
-                            <IonIcon icon={arrowBack} />
73
-                        </IonTabButton>
74
-                    </IonNavLink>
64
+                <IonToolbar className="Footer-Color">
65
+                    <div className='Item-Center'>
66
+                        <IonButtons slot="start">
67
+                            <IonBackButton defaultHref="/ListBiographie"></IonBackButton>
68
+                        </IonButtons>
69
+                    </div>
75
                 </IonToolbar>
70
                 </IonToolbar>
76
             </IonFooter>
71
             </IonFooter>
77
         </IonPage>
72
         </IonPage>