6 次程式碼提交

作者 SHA1 備註 提交日期
  Alejandro Soledad b3b65b105a Merge branch 'UserStory5' 1 年之前
  Alejandro Soledad 122fd14196 Added capsule info and dangerouslySetInnerHTML for HTML formatting. 1 年之前
  Alejandro Soledad d59018db12 Added Search Bar for both capsules and biographies. Small tweaks in code formatting and variable names. 1 年之前
  Alejandro Soledad 161486222d Merge branch 'master' of git.ccom.uprrp.edu:CCOM4030/AlAlRy into UserStory5 1 年之前
  Alejandro Soledad 9e6b8a9a4f Implemented Capsule Search Bar and Biography Search Bar. Work needed on routing and props data handling. 1 年之前
  Alejandro Soledad 80dc4da8ce Added Search Bar functionality to Capsules list. 1 年之前

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

@@ -42,10 +42,10 @@ const App: React.FC = () => (
42 42
         <Route path="/home" exact={true}>
43 43
           <HomePage />
44 44
         </Route>
45
-        <Route path="/ListBiographie">
45
+        <Route path="/ListBiographies">
46 46
           <ListBiographies />
47 47
         </Route>
48
-        <Route path="/Biographie/:id">
48
+        <Route path="/Biography/:id">
49 49
           <Biography />
50 50
         </Route>
51 51
         <Route path="/ListCapsules">

+ 0
- 0
src/components/BiographySearchBar.css 查看文件


+ 59
- 0
src/components/BiographySearchBar.tsx 查看文件

@@ -0,0 +1,59 @@
1
+import React, { useState } from 'react';
2
+import { 
3
+  IonItem,
4
+  IonImg,
5
+  IonList, 
6
+  IonSearchbar,
7
+  IonCard, 
8
+  IonCardHeader,
9
+  IonCardTitle,
10
+  IonCardContent,
11
+  IonCardSubtitle,
12
+  IonIcon,
13
+} from '@ionic/react';
14
+import biographies from '../data/Biograph.json'
15
+import { square } from 'ionicons/icons';
16
+
17
+function SearchBar() {
18
+
19
+  let [results, setResults] = useState([...biographies]);
20
+
21
+  const filterSearch = (ev: Event) => {
22
+    let query = "";
23
+    const target = ev.target as HTMLIonSearchbarElement;
24
+    if (target) query = target.value!.toLowerCase();
25
+
26
+    setResults(biographies.filter(bio => {
27
+      return bio.title.toLowerCase().indexOf(query) > -1;
28
+    })
29
+    )
30
+  }
31
+
32
+  return (
33
+    <>
34
+      <IonSearchbar debounce={500} onIonChange={(ev) => filterSearch(ev)}></IonSearchbar>
35
+
36
+      <IonList inset={true}>
37
+        { results.map(result => (
38
+          <>
39
+          <IonCard>
40
+            <IonItem routerLink={`/Biography/${result.id}`}>
41
+              <IonImg style={{ height: 300, width: 600 }} src={result.photo} alt='Logo'></IonImg>
42
+              <IonCardHeader>
43
+                <IonCardTitle>{result.title}</IonCardTitle>
44
+                <IonCardSubtitle>{result.tags}</IonCardSubtitle>
45
+              </IonCardHeader><IonCardContent>
46
+                {result.content}
47
+              </IonCardContent>
48
+            </IonItem>
49
+            <IonItem routerLink={`/Question`} detail={true}>
50
+              <IonIcon icon={square} />Tomar quiz
51
+            </IonItem>
52
+          </IonCard>
53
+        </>
54
+        ))}
55
+      </IonList>
56
+    </>
57
+  );
58
+}
59
+export default SearchBar;

+ 0
- 0
src/components/CapsuleSearchBar.css 查看文件


+ 66
- 0
src/components/CapsuleSearchBar.tsx 查看文件

@@ -0,0 +1,66 @@
1
+import React, { useState } from 'react';
2
+import { 
3
+  IonItem, 
4
+  IonList, 
5
+  IonSearchbar,
6
+  IonCard, 
7
+  IonCardHeader,
8
+  IonCardTitle,
9
+} from '@ionic/react';
10
+import capsules from '../data/Capsule.json'
11
+
12
+
13
+function SearchBar() {
14
+
15
+  let [results, setResults] = useState([...capsules]);
16
+
17
+  const filterSearch = (ev: Event) => {
18
+    let query = "";
19
+    const target = ev.target as HTMLIonSearchbarElement;
20
+    if (target) query = target.value!.toLowerCase();
21
+
22
+    setResults(capsules.filter(cap => {
23
+      return cap.title.toLowerCase().indexOf(query) > -1;
24
+    })
25
+    )
26
+  }
27
+
28
+  return (
29
+    <>
30
+      <IonSearchbar debounce={500} onIonChange={(ev) => filterSearch(ev)}></IonSearchbar>
31
+
32
+      <IonList inset={true}>
33
+        { results.map(result => (
34
+            <IonCard>
35
+            <IonItem button routerLink={`/Capsule/${result.id}`}>
36
+              <IonCardHeader>
37
+                <IonCardTitle>{result.title}</IonCardTitle>
38
+              </IonCardHeader>
39
+            </IonItem>
40
+          </IonCard>
41
+        ))}
42
+      </IonList>
43
+    </>
44
+  );
45
+}
46
+export default SearchBar;
47
+
48
+
49
+/*
50
+             <>
51
+                <IonCard>
52
+                  <IonItem routerLink={`/Biography/${listbio.id}`}>
53
+                    <IonImg style={{ height: 300, width: 600 }} src={RobertoClemente} alt='Logo'></IonImg>
54
+                    <IonCardHeader>
55
+                      <IonCardTitle>{listbio.title}</IonCardTitle>
56
+                      <IonCardSubtitle>{listbio.tags}</IonCardSubtitle>
57
+                    </IonCardHeader><IonCardContent>
58
+                      {listbio.content}
59
+                    </IonCardContent>
60
+                  </IonItem>
61
+                  <IonItem routerLink={`/Question`} detail={true}>
62
+                    <IonIcon icon={square} />Tomar quiz
63
+                  </IonItem>
64
+                </IonCard>
65
+              </>
66
+*/

+ 0
- 24
src/components/ExploreContainer.css 查看文件

@@ -1,24 +0,0 @@
1
-.container {
2
-  text-align: center;
3
-  position: absolute;
4
-  left: 0;
5
-  right: 0;
6
-  top: 50%;
7
-  transform: translateY(-50%);
8
-}
9
-
10
-.container strong {
11
-  font-size: 20px;
12
-  line-height: 26px;
13
-}
14
-
15
-.container p {
16
-  font-size: 16px;
17
-  line-height: 22px;
18
-  color: #8c8c8c;
19
-  margin: 0;
20
-}
21
-
22
-.container a {
23
-  text-decoration: none;
24
-}

+ 0
- 16
src/components/ExploreContainer.tsx 查看文件

@@ -1,16 +0,0 @@
1
-import './ExploreContainer.css';
2
-
3
-interface ContainerProps {
4
-  name: string;
5
-}
6
-
7
-const ExploreContainer: React.FC<ContainerProps> = ({ name }) => {
8
-  return (
9
-    <div className="container">
10
-      <strong>{name}</strong>
11
-      <p>Explore <a target="_blank" rel="noopener noreferrer" href="https://ionicframework.com/docs/components">UI Components</a></p>
12
-    </div>
13
-  );
14
-};
15
-
16
-export default ExploreContainer;

+ 9
- 54
src/data/Capsule.json 查看文件

@@ -1,65 +1,20 @@
1 1
 [
2 2
     {
3
-        "id": 1,
3
+        "id": 0,
4 4
         "title": "Grandes deportistas puertorriqueños",
5
-        "Text1": "Uno de los aspectos culturales por los que Puerto Rico más se destaca en el mundo es por el deporte, además de por nuestra admiración y entusiasmo por los logros de nuestros deportistas de todas las disciplinas.",
6
-        "Text2": "Cuando los nuestros logran grandes triunfos —ya sea individualmente, como parte de un equipo o como parte de una selección boricua en un evento internacional— seguimos sus hazañas y las celebramos con ellos.",
7
-        "Text3": "Aquí presentamos a tres grandes de nuestro deporte: la estrella del béisbol de Grandes Ligas, Roberto Clemente; la gran atleta de pista y campo Rebekah Colberg; y Germán Rieckehoff Sampayo, un incansable líder deportivo que luchó por el desarrollo de nuestros atletas y por nuestro derecho a participar en competencias a nivel internacional.",
8
-        "Text4": "",
9
-        "Text5": "",
10
-        "Text6": "",
11
-        "Text7": "",
12
-        "Text8": "",
13
-        "Text9": "",
14
-        "Text10": "",
15
-        "mensage": "¡Conócelos!",
16
-        "nombre1": "Roberto Clemente",
17
-        "id1": 1,
18
-        "nombre2": "German Rieckhoff Sampayo",
19
-        "id2": 2,
20
-        "nombre3": "Rebekah Colberg Cabrera",
21
-        "id3": 3
5
+        "content": "<p>Uno de los aspectos culturales por los que Puerto Rico más se destaca en el mundo es por el deporte, además de por nuestra admiración y entusiasmo por los logros de nuestros deportistas de todas las disciplinas.</p> <p>Cuando los nuestros logran grandes triunfos —ya sea individualmente, como parte de un equipo o como parte de una selección boricua en un evento internacional— seguimos sus hazañas y las celebramos con ellos.</p> <p>Aquí presentamos a tres grandes de nuestro deporte: la estrella del béisbol de Grandes Ligas, Roberto Clemente; la gran atleta de pista y campo Rebekah Colberg; y Germán Rieckehoff Sampayo, un incansable líder deportivo que luchó por el desarrollo de nuestros atletas y por nuestro derecho a participar en competencias a nivel internacional.</p> <p>¡Conócelos!</p>",
6
+        "photo": "../assets/BombaPuertorriquena.jpg"
22 7
     },
23 8
     {
24
-        "id": 2,
9
+        "id": 1,
25 10
         "title": "La familia Figueroa: sus aportaciones a la música puertorriqueña",
26
-        "Text1": "¿Has oído hablar alguna vez de “La familia Figueroa”? Sus recordados integrantes —instrumentistas, compositores y educadores— son figuras de la música puertorriqueña del siglo 20 que nos llenan de orgullo.",
27
-        "Text2": "Cuando en Puerto Rico se habla de “Los hermanos Figueroa”, en el contexto de las artes musicales, nos referimos a las tres hijas y cinco hijos del matrimonio compuesto por Jesús Figueroa Iriarte (1878-1971) —violinista, compositor y director de orquesta— y Carmen Sanabia Ellinger (1881-1954) —pianista y educadora.",
28
-        "Text3": "Entre las muchas características admirables de don Narciso y doña Carmen, resalta el haber expuesto a la música, desde temprano y por igual, a sus ocho hijos e hijas: Pepito, Narciso, Kachiro, Guillermo, Rafael, Angelina, Carmelina y Leonor. Se esmeraron por procurarles a todos —tanto a las niñas como a los niños— la mejor educación musical posible.",
29
-        "Text4": "De esa visión, surgió una familia única de artistas y educadores que dejó huella en Puerto Rico y cuya próxima generación continuó cultivando con altura el arte por el que son reconocidos.",
30
-        "Text5": "",
31
-        "Text6": "",
32
-        "Text7": "",
33
-        "Text8": "",
34
-        "Text9": "",
35
-        "Text10": "",
36
-        "mensage": "Conoce a tres de los hermanos Figueroa Sanabia: Narciso, Angelina y Leonor, y su legado a Puerto Rico.",
37
-        "nombre1": "Narciso Figueroa Sanabia",
38
-        "id1": 4,
39
-        "nombre2": "Angelina Figueroa Sanabia",
40
-        "id2": 5,
41
-        "nombre3": "Leonor Figueroa Sanabia",
42
-        "id3": 6
11
+        "content": "<p>¿Has oído hablar alguna vez de “La familia Figueroa”? Sus recordados integrantes —instrumentistas, compositores y educadores— son figuras de la música puertorriqueña del siglo 20 que nos llenan de orgullo.</p><p>Cuando en Puerto Rico se habla de “Los hermanos Figueroa”, en el contexto de las artes musicales, nos referimos a las tres hijas y cinco hijos del matrimonio compuesto por Jesús Figueroa Iriarte (1878-1971) —violinista, compositor y director de orquesta— y Carmen Sanabia Ellinger (1881-1954) —pianista y educadora.</p><p>Entre las muchas características admirables de don Narciso y doña Carmen, resalta el haber expuesto a la música, desde temprano y por igual, a sus ocho hijos e hijas: Pepito, Narciso, Kachiro, Guillermo, Rafael, Angelina, Carmelina y Leonor. Se esmeraron por procurarles a todos —tanto a las niñas como a los niños— la mejor educación musical posible.</p><p>De esa visión, surgió una familia única de artistas y educadores que dejó huella en Puerto Rico y cuya próxima generación continuó cultivando con altura el arte por el que son reconocidos.</p><p>Conoce a tres de los hermanos Figueroa Sanabia: Narciso, Angelina y Leonor, y su legado a Puerto Rico. </p>",
12
+        "photo": "../assets/BombaPuertorriquena.jpg"
43 13
     },
44 14
     {
45
-        "id": 3,
15
+        "id": 2,
46 16
         "title": "Las mujeres en nuestra música: Tres estrellas de nuestra canción popular",
47
-        "Text1": "Las mujeres en nuestra música: Tres estrellas de nuestra canción popular",
48
-        "Text2": "Al igual que hoy en día brillan en escenarios de todo el mundo exponentes de géneros tan diversos como la ópera, la salsa, el pop latino o el reggaetón, nuestra historia está llena de grandes artistas que precedieron a las estrellas de hoy.",
49
-        "Text3": "Es importante reconocer y recordar que, a lo largo de la historia de nuestra música, especialmente, a partir del siglo 20, las mujeres han tenido un papel importantísimo como cantantes, compositoras o instrumentistas.",
50
-        "Text4": "En esta cápsula, queremos presentarte a tres de las cientos de mujeres que han marcado nuestra memoria musical, ya sea por su portentosa voz y presencia, o por habernos dejado algunas de las composiciones más valoradas de la canción popular. Conoce a Ruth Fernández, (1919-2012), Sylvia Rexach (1921-1961) y Lucecita Benítez (Nacida en 1942).",
51
-        "Text5": "Las tres, de distintas maneras, rompieron barreras y abrieron brechas para nuestras exponentes musicales de hoy. Además, sus historias permiten conocer mejor la riqueza de espacios para nuestras y nuestros artistas que se dieron en el teatro, la radio, la televisión y otros escenarios culturales del siglo 20.",
52
-        "Text6": "",
53
-        "Text7": "",
54
-        "Text8": "",
55
-        "Text9": "",
56
-        "Text10": "",
57
-        "mensage": "Lee sus biografías para conocer sus logros, luchas y aportaciones",
58
-        "nombre1": "Ruth Fernandez",
59
-        "id1": 7,
60
-        "nombre2": "Sylvia Rexach",
61
-        "id2": 8,
62
-        "nombre3": "Lucecita Benitez",
63
-        "id3": 9
17
+        "content": "<p>La música puertorriqueña ha dado innumerables intérpretes que han cultivado con gran excelencia diversos géneros de este arte, tanto a nivel local como internacional.</p><p>Al igual que hoy en día brillan en escenarios de todo el mundo exponentes de géneros tan diversos como la ópera, la salsa, el pop latino o el reggaetón, nuestra historia está llena de grandes artistas que precedieron a las estrellas de hoy.</p><p>Es importante reconocer y recordar que, a lo largo de la historia de nuestra música, especialmente, a partir del siglo 20, las mujeres han tenido un papel importantísimo como cantantes, compositoras o instrumentistas.</p><p>En esta cápsula, queremos presentarte a tres de las cientos de mujeres que han marcado nuestra memoria musical, ya sea por su                                                                                                                               portentosa voz y presencia, o por habernos dejado algunas de las composiciones más valoradas de la canción popular. Conoce a Ruth Fernández, (1919-2012), Sylvia Rexach (1921-1961) y Lucecita Benítez (Nacida en 1942).</p><p>Las tres, de distintas maneras, rompieron barreras y abrieron brechas para nuestras exponentes musicales de hoy. Además, sus historias permiten conocer mejor la riqueza de espacios para nuestras y nuestros artistas que se dieron en el teatro, la radio, la televisión y otros escenarios culturales del siglo 20.</><p>Lee sus biografías para conocer sus logros, luchas y aportaciones.</p>",
18
+        "photo": "../assets/BombaPuertorriquena.jpg"
64 19
     }
65 20
 ]

+ 4
- 19
src/data/CapsuleInfo.ts 查看文件

@@ -3,25 +3,10 @@ import ListCapsule from '../data/Capsule.json';
3 3
 export interface CapsuleInfo {
4 4
     id: number;
5 5
     title: string;
6
-    Text1: string;
7
-    Text2: string;
8
-    Text3: string;
9
-    Text4: string;
10
-    Text5: string;
11
-    Text6: string;
12
-    Text7: string;
13
-    Text8: string;
14
-    Text9: string;
15
-    Text10: string;
16
-    mensage: string;
17
-    nombre1: string;
18
-    id1: number;
19
-    nombre2: string;
20
-    id2: number;
21
-    nombre3: string;
22
-    id3: number;
6
+    content: string;
7
+    photo: string;
23 8
 }
24 9
 
25
-export const getMessages = () => ListCapsule;
10
+export const getCapsules = () => ListCapsule;
26 11
 
27
-export const getMessage = (id: number) => ListCapsule.find(m => m.id === id);
12
+export const getCapsule = (id: number) => ListCapsule.find(c => c.id === id);

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

@@ -48,6 +48,7 @@ const Biography: React.FC = () => {
48 48
                     </IonGrid>
49 49
                 </IonToolbar>
50 50
             </IonHeader>
51
+
51 52
             <IonContent fullscreen className="ion-padding">
52 53
                 {bioinfo ? (
53 54
                     <>
@@ -78,7 +79,7 @@ const Biography: React.FC = () => {
78 79
                         </IonItem>
79 80
                     </>
80 81
                 ) : (
81
-                    <div>Message not found</div>
82
+                    <div>Biography not found</div>
82 83
                 )}
83 84
             </IonContent>
84 85
 

+ 13
- 49
src/pages/Capsule.tsx 查看文件

@@ -9,28 +9,23 @@ import {
9 9
     IonGrid,
10 10
     IonRow,
11 11
     IonCol,
12
-    useIonViewWillEnter,
13 12
     IonButtons,
14 13
     IonBackButton,
15
-    IonCard,
16
-    IonItem,
17
-    IonCardHeader,
18
-    IonCardSubtitle
14
+    useIonViewWillEnter
19 15
 } from '@ionic/react';
16
+import { useParams } from 'react-router';
20 17
 import React, { useState } from 'react';
21 18
 import './Capsule.css';
22
-import { useParams } from 'react-router';
23
-import { CapsuleInfo, getMessage } from '../data/CapsuleInfo';
19
+import { CapsuleInfo, getCapsule} from '../data/CapsuleInfo';
24 20
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
25
-import RobertoClemente from '../assets/RobertoClemente.jpg';
26 21
 
27 22
 const Capsule: React.FC = () => {
28
-    const [capinfo, setMessage] = useState<CapsuleInfo>();
23
+    const [capinfo, setCapsule] = useState<CapsuleInfo>();
29 24
     const params = useParams<{ id: string }>();
30 25
 
31 26
     useIonViewWillEnter(() => {
32
-        const msg = getMessage(parseInt(params.id, 10));
33
-        setMessage(msg);
27
+        const capsule = getCapsule(parseInt(params.id, 10));
28
+        setCapsule(capsule);
34 29
     });
35 30
 
36 31
     return (
@@ -49,51 +44,20 @@ const Capsule: React.FC = () => {
49 44
                     </IonGrid>
50 45
                 </IonToolbar>
51 46
             </IonHeader>
47
+
52 48
             <IonContent fullscreen className="ion-padding">
53
-                {capinfo ? (
49
+            {capinfo ? (
54 50
                     <>
51
+                        <IonImg style={{ height: 300, width: 600 }} src={capinfo.photo} alt='Logo'></IonImg>
55 52
                         <h1>{capinfo.title}</h1>
56
-                        <p>{capinfo.Text1}</p>
57
-                        <p>{capinfo.Text2}</p>
58
-                        <p>{capinfo.Text3}</p>
59
-                        <p>{capinfo.Text4}</p>
60
-                        <p>{capinfo.Text5}</p>
61
-                        <p>{capinfo.Text6}</p>
62
-                        <p>{capinfo.Text7}</p>
63
-                        <p>{capinfo.Text8}</p>
64
-                        <p>{capinfo.Text9}</p>
65
-                        <p>{capinfo.Text10}</p>
66
-                        <p></p>
67
-                        <h2>{capinfo.mensage}</h2>
68
-                        <IonCard>
69
-                            <IonItem routerLink={`/Biographie/${capinfo.id1}`} detail={true}>
70
-                                <IonImg style={{ height: 150, width: 300 }} src={RobertoClemente} alt='Logo'></IonImg>
71
-                                <IonCardHeader>
72
-                                    <IonCardSubtitle>{capinfo.nombre1}</IonCardSubtitle>
73
-                                </IonCardHeader>
74
-                            </IonItem>
75
-                        </IonCard>
76
-                        <IonCard>
77
-                            <IonItem routerLink={`/Biographie/${capinfo.id2}`} detail={true}>
78
-                                <IonImg style={{ height: 150, width: 300 }} src={RobertoClemente} alt='Logo'></IonImg>
79
-                                <IonCardHeader>
80
-                                    <IonCardSubtitle>{capinfo.nombre2}</IonCardSubtitle>
81
-                                </IonCardHeader>
82
-                            </IonItem>
83
-                        </IonCard>
84
-                        <IonCard>
85
-                            <IonItem routerLink={`/Biographie/${capinfo.id3}`} detail={true}>
86
-                                <IonImg style={{ height: 150, width: 300 }} src={RobertoClemente} alt='Logo'></IonImg>
87
-                                <IonCardHeader>
88
-                                    <IonCardSubtitle>{capinfo.nombre3}</IonCardSubtitle>
89
-                                </IonCardHeader>
90
-                            </IonItem>
91
-                        </IonCard>
53
+
54
+                        <p dangerouslySetInnerHTML={ {__html:capinfo.content} }></p>
92 55
                     </>
93 56
                 ) : (
94
-                    <div>Message not found</div>
57
+                    <div>Capsule not found</div>
95 58
                 )}
96 59
             </IonContent>
60
+
97 61
             <IonFooter>
98 62
                 <IonToolbar className="Footer-Color">
99 63
                     <div className='Item-Center'>

+ 2
- 2
src/pages/HomePage.tsx 查看文件

@@ -41,8 +41,8 @@ const HomePage: React.FC = () => {
41 41
       </IonHeader>
42 42
       <IonContent fullscreen>
43 43
         <div className='Item-Center'>
44
-          <IonCard>
45
-            <IonItem routerLink={`/ListBiographie`} detail={true}>
44
+          <IonItem routerLink={`/ListBiographies`} detail={true}>
45
+            <IonCard>
46 46
               <IonCardHeader>
47 47
                 <IonCardTitle>Biografías</IonCardTitle>
48 48
                 <IonCardSubtitle>Lista de todas las biografías</IonCardSubtitle>

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

@@ -1,11 +1,5 @@
1 1
 import {
2 2
   IonImg,
3
-  IonCard,
4
-  IonCardContent,
5
-  IonCardHeader,
6
-  IonCardSubtitle,
7
-  IonCardTitle,
8
-  IonSearchbar,
9 3
   IonContent,
10 4
   IonHeader,
11 5
   IonPage,
@@ -17,14 +11,11 @@ import {
17 11
   IonCol,
18 12
   IonButtons,
19 13
   IonBackButton,
20
-  IonItem,
21
-  IonIcon
22 14
 } from '@ionic/react';
23 15
 import './ListBiographies.css';
24 16
 import { clipboardOutline } from 'ionicons/icons';
25 17
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
26
-import RobertoClemente from '../assets/RobertoClemente.jpg';
27
-import ListBio from '../data/Biograph.json';
18
+import SearchBar from '../components/BiographySearchBar';
28 19
 
29 20
 const ListBiographies: React.FC = () => {
30 21
   return (
@@ -43,31 +34,11 @@ const ListBiographies: React.FC = () => {
43 34
           </IonGrid>
44 35
         </IonToolbar>
45 36
       </IonHeader>
37
+
46 38
       <IonContent fullscreen>
47
-        <IonSearchbar></IonSearchbar>
48
-        {
49
-          ListBio && ListBio.map(listbio => {
50
-            return (
51
-              <>
52
-                <IonCard>
53
-                  <IonItem routerLink={`/Biographie/${listbio.id}`}>
54
-                    <IonImg style={{ height: 300, width: 600 }} src={RobertoClemente} alt='Biopic'></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/${listbio.id}`} detail={true}>
63
-                    <IonIcon icon={clipboardOutline} />Tomar quiz
64
-                  </IonItem>
65
-                </IonCard>
66
-              </>
67
-            )
68
-          })
69
-        }
39
+        <SearchBar></SearchBar>
70 40
       </IonContent>
41
+      
71 42
       <IonFooter>
72 43
         <IonToolbar className="Footer-Color">
73 44
           <div className='Item-Center'>

+ 5
- 20
src/pages/ListCapsules.tsx 查看文件

@@ -1,9 +1,5 @@
1 1
 import {
2
-  IonList,
3
-  IonItem,
4
-  IonLabel,
5 2
   IonImg,
6
-  IonSearchbar,
7 3
   IonContent,
8 4
   IonHeader,
9 5
   IonPage,
@@ -14,11 +10,11 @@ import {
14 10
   IonRow,
15 11
   IonCol,
16 12
   IonButtons,
17
-  IonBackButton
13
+  IonBackButton,
18 14
 } from '@ionic/react';
19 15
 import './ListCapsules.css';
20 16
 import EnciclopediaPR from '../assets/EnciclopediaPR.png';
21
-import ListCapsule from '../data/Capsule.json';
17
+import SearchBar from '../components/CapsuleSearchBar';
22 18
 
23 19
 const ListCapsules: React.FC = () => {
24 20
   return (
@@ -37,22 +33,11 @@ const ListCapsules: React.FC = () => {
37 33
           </IonGrid>
38 34
         </IonToolbar>
39 35
       </IonHeader>
36
+
40 37
       <IonContent fullscreen>
41
-        <IonSearchbar></IonSearchbar>
42
-        {
43
-          ListCapsule && ListCapsule.map(listcap => {
44
-            return (
45
-              <>
46
-                <IonList inset={true}>
47
-                  <IonItem routerLink={`/Capsule/${listcap.id}`} detail={true}>
48
-                    <IonLabel>{listcap.title}</IonLabel>
49
-                  </IonItem>
50
-                </IonList>
51
-              </>
52
-            )
53
-          })
54
-        }
38
+        <SearchBar></SearchBar>
55 39
       </IonContent>
40
+
56 41
       <IonFooter>
57 42
         <IonToolbar className="Footer-Color">
58 43
           <div className='Item-Center'>