From 605bcea2a8890deb56428caf806fbaeb76afe2ce Mon Sep 17 00:00:00 2001
From: Tianyi LIANG <tianyi@igem.org>
Date: Sat, 18 May 2024 03:13:25 +0800
Subject: [PATCH] feat: ADD Inspirations component

---
 src/components/Inspirations/index.tsx | 69 +++++++++++++++++++++++++++
 src/contents/description.tsx          | 46 +++++-------------
 src/contents/education.tsx            | 51 +++++---------------
 src/contents/entrepreneurship.tsx     | 48 +++++--------------
 src/contents/experiments.tsx          | 48 +++++--------------
 src/contents/hardware.tsx             | 57 +++++-----------------
 src/contents/home.tsx                 | 54 ++++++---------------
 src/contents/human-practices.tsx      | 54 +++++----------------
 src/contents/inclusivity.tsx          | 36 ++++----------
 src/contents/measurement.tsx          | 48 +++++--------------
 src/contents/model.tsx                | 48 +++++--------------
 src/contents/notebook.tsx             | 52 +++++---------------
 src/contents/plant.tsx                | 45 +++++------------
 src/contents/results.tsx              | 48 +++++--------------
 src/contents/software.tsx             | 51 +++++---------------
 src/contents/sustainable.tsx          | 39 ++++-----------
 src/contents/team.tsx                 | 12 +++++
 17 files changed, 262 insertions(+), 544 deletions(-)
 create mode 100644 src/components/Inspirations/index.tsx

diff --git a/src/components/Inspirations/index.tsx b/src/components/Inspirations/index.tsx
new file mode 100644
index 0000000..1801756
--- /dev/null
+++ b/src/components/Inspirations/index.tsx
@@ -0,0 +1,69 @@
+import { stringToSlug } from "../../utils";
+import React from "react";
+
+export interface InspirationLink {
+  year: number;
+  teamName: string;
+  pageName:
+    | string
+    | "Team"
+    | "Attributions"
+    | "Contribution"
+    | "Description"
+    | "Engineering"
+    | "Experiments"
+    | "Notebook"
+    | "Results"
+    | "Safety"
+    | "Human Practices"
+    | "Education"
+    | "Entrepreneurship"
+    | "Hardware"
+    | "Inclusivity"
+    | "Measurement"
+    | "Model"
+    | "Plant"
+    | "Software"
+    | "Sustainable"
+    // non-standard URLs
+    | "Team_Member"
+    | "Members"
+    | "Inclusion";
+}
+
+interface InspirationsProps {
+  inspirationLinkList: InspirationLink[];
+}
+
+const Inspirations: React.FC<InspirationsProps> = ({ inspirationLinkList }) => {
+  return (
+    <>
+      <div className="col-lg-4">
+        <h2>Inspirations</h2>
+        <hr />
+        <ul>
+          {inspirationLinkList.map((inspirationLink) => {
+            const { year, teamName, pageName } = inspirationLink;
+            const teamSlug = stringToSlug(teamName);
+            const pageSlug = pageName ? `/${stringToSlug(pageName)}` : "";
+
+            const href =
+              year < 2022
+                ? `https://${year}.igem.org/Team:${teamName}${pageName ? `/${pageName}` : ""}`
+                : `https://${year}.igem.wiki/${teamSlug}${pageSlug}`;
+
+            return (
+              <li key={`${year}-${teamName}`}>
+                <a href={href} target="_blank">
+                  {year} {teamName}
+                </a>
+              </li>
+            );
+          })}
+        </ul>
+      </div>
+    </>
+  );
+};
+
+export default Inspirations;
diff --git a/src/contents/description.tsx b/src/contents/description.tsx
index 93e0fa2..2b63007 100644
--- a/src/contents/description.tsx
+++ b/src/contents/description.tsx
@@ -1,4 +1,15 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const DescriptionPage = () => {
+  const links: InspirationLink[] = [
+    { year: 2022, teamName: "DTU-Denmark", pageName: "Description" },
+    { year: 2019, teamName: "ITESO_Guadalajara", pageName: "Description" },
+    { year: 2020, teamName: "Technion-Israel", pageName: "Description" },
+    { year: 2020, teamName: "Botchan_Lab_Tokyo", pageName: "Description" },
+    { year: 2020, teamName: "St_Andrews", pageName: "Description" },
+    { year: 2020, teamName: "MIT", pageName: "Description" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -35,40 +46,7 @@ const DescriptionPage = () => {
             </li>
           </ul>
         </div>
-        <div className="col-lg-4">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="https://2022.igem.wiki/dtu-denmark/description">
-                2022 DTU-Denmark
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:ITESO_Guadalajara/Description">
-                2019 ITESO Guadalajara
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Technion-Israel/Description">
-                2020 Technion Israel
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Botchan_Lab_Tokyo/Description">
-                2020 Botchan Lab Tokyo
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:St_Andrews/Description">
-                2020 St Andrews
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:MIT/Description">2020 MIT</a>
-            </li>
-          </ul>
-        </div>
+        <Inspirations inspirationLinkList={links} />
       </div>
 
       <div className="row mt-4">
diff --git a/src/contents/education.tsx b/src/contents/education.tsx
index 03fb319..0886b3c 100644
--- a/src/contents/education.tsx
+++ b/src/contents/education.tsx
@@ -1,4 +1,15 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const EducationPage = () => {
+  const links: InspirationLink[] = [
+    { year: 2020, teamName: "CCA_San_Diego", pageName: "Education" },
+    { year: 2020, teamName: "Lambert_GA", pageName: "Education" },
+    { year: 2020, teamName: "Stanford", pageName: "Education" },
+    { year: 2020, teamName: "Waseda", pageName: "Education" },
+    { year: 2020, teamName: "Fudan", pageName: "Education" },
+    { year: 2020, teamName: "Toulouse_INSA-UPS", pageName: "Education" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -32,45 +43,7 @@ const EducationPage = () => {
           </div>
         </div>
       </div>
-
-      <div className="row mt-4">
-        <div className="col">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="https://2020.igem.org/Team:CCA_San_Diego/Education">
-                2020 CCA San Diego
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Lambert_GA/Education">
-                2020 Lambert GA
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Stanford/Education">
-                2020 Stanford
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Waseda/Education">
-                2020 Waseda
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Fudan/Education">
-                2020 Fudan
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Toulouse_INSA-UPS/Education">
-                2020 Toulouse INSA UPS
-              </a>
-            </li>
-          </ul>
-        </div>
-      </div>
+      <Inspirations inspirationLinkList={links} />
     </>
   );
 };
diff --git a/src/contents/entrepreneurship.tsx b/src/contents/entrepreneurship.tsx
index 0dfb133..82339f1 100644
--- a/src/contents/entrepreneurship.tsx
+++ b/src/contents/entrepreneurship.tsx
@@ -1,4 +1,15 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const EntrepreneurshipPage = () => {
+  const links: InspirationLink[] = [
+    { year: 2019, teamName: "UCopenhagen", pageName: "Entrepreneurship" },
+    { year: 2019, teamName: "Thessaly", pageName: "Entrepreneurship" },
+    { year: 2019, teamName: "NCKU_Tainan", pageName: "Entrepreneurship" },
+    { year: 2020, teamName: "TAS_Taipei", pageName: "Entrepreneurship" },
+    { year: 2020, teamName: "KCL_UK", pageName: "Entrepreneurship" },
+    { year: 2020, teamName: "Calgary", pageName: "Entrepreneurship" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -62,42 +73,7 @@ const EntrepreneurshipPage = () => {
             coming to a decision.
           </p>
         </div>
-        <div className="col-lg-4">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="https://2019.igem.org/Team:UCopenhagen/Entrepreneurship">
-                2019 UCopenhagen
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Thessaly/Entrepreneurship">
-                2019 Thessaly
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:NCKU_Tainan/Entrepreneurship">
-                2019 NCKU Tainan
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:TAS_Taipei/Entrepreneurship">
-                2020 TAS Taipei
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:KCL_UK/Entrepreneurship">
-                2020 KCL UK
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Calgary/Entrepreneurship">
-                2020 Calgary
-              </a>
-            </li>
-          </ul>
-        </div>
+        <Inspirations inspirationLinkList={links} />
       </div>
     </>
   );
diff --git a/src/contents/experiments.tsx b/src/contents/experiments.tsx
index 4796a53..68d06e9 100644
--- a/src/contents/experiments.tsx
+++ b/src/contents/experiments.tsx
@@ -1,4 +1,15 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const ExperimentsPage = () => {
+  const links: InspirationLink[] = [
+    { year: 2019, teamName: "Nantes", pageName: "Experiments" },
+    { year: 2019, teamName: "TU_Eindhoven", pageName: "Experiments" },
+    { year: 2019, teamName: "Mingdao", pageName: "Demonstrate" },
+    { year: 2020, teamName: "Amsterdam", pageName: "Experiments" },
+    { year: 2020, teamName: "NCTU_Formosa", pageName: "Experiments" },
+    { year: 2020, teamName: "USAFA", pageName: "Experiments" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -16,42 +27,7 @@ const ExperimentsPage = () => {
             the <a href="http://parts.igem.org/Main_Page">Registry</a>.
           </p>
         </div>
-        <div className="col-lg-4">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="https://2019.igem.org/Team:Nantes/Experiments">
-                2019 Nantes
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:TU_Eindhoven/Experiments">
-                2019 TU Eindhoven
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Mingdao/Demonstrate">
-                2019 Mingdao
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Amsterdam/Experiments">
-                2020 Amsterdam
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:NCTU_Formosa/Experiments">
-                2020 NCTU Formosa
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:USAFA/Experiments">
-                2020 USAFA
-              </a>
-            </li>
-          </ul>
-        </div>
+        <Inspirations inspirationLinkList={links} />
       </div>
     </>
   );
diff --git a/src/contents/hardware.tsx b/src/contents/hardware.tsx
index 1e789d2..e5b6583 100644
--- a/src/contents/hardware.tsx
+++ b/src/contents/hardware.tsx
@@ -1,4 +1,16 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const HardwarePage = () => {
+  const links: InspirationLink[] = [
+    { year: 2018, teamName: "Valencia_UPV", pageName: "Hardware" },
+    { year: 2018, teamName: "Unesp_Brazil", pageName: "Hardware" },
+    { year: 2019, teamName: "BIT", pageName: "Hardware" },
+    { year: 2019, teamName: "Bielefeld-CeBiTec", pageName: "Hardware" },
+    { year: 2019, teamName: "Nanjing-China", pageName: "Hardware" },
+    { year: 2020, teamName: "Vilnius-Lithuania", pageName: "Hardware" },
+    { year: 2020, teamName: "ZJUT_China_B", pageName: "Hardware" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -47,50 +59,7 @@ const HardwarePage = () => {
             exciting opportunities for hardware innovation in synthetic biology.
           </p>
         </div>
-        <div className="col-lg-4">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="http://2018.igem.org/Team:Valencia_UPV/Hardware">
-                2018 Valencia UPV
-              </a>
-            </li>
-            <li>
-              <a href="http://2018.igem.org/Team:Unesp_Brazil/Hardware">
-                2018 Unesp Brazil
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:BIT/Hardware">2019 BIT</a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Bielefeld-CeBiTec/Hardware">
-                2019 Bielefeld CeBiTec
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Nanjing-China/Hardware">
-                2019 Nanjing China
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Vilnius-Lithuania/Hardware">
-                2020 Vilnius Lithuania
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Aachen/Hardware">
-                2020 Aachen
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:ZJUT_China_B/Hardware">
-                2020 ZJUT China B
-              </a>
-            </li>
-          </ul>
-        </div>
+        <Inspirations inspirationLinkList={links} />
       </div>
     </>
   );
diff --git a/src/contents/home.tsx b/src/contents/home.tsx
index a914c2b..a422371 100644
--- a/src/contents/home.tsx
+++ b/src/contents/home.tsx
@@ -1,4 +1,17 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const HomePage = () => {
+  const links: InspirationLink[] = [
+    { year: 2022, teamName: "DTU-Denmark", pageName: "" },
+    { year: 2022, teamName: "Virginia", pageName: "" },
+    { year: 2022, teamName: "Crete", pageName: "" },
+    { year: 2022, teamName: "Estonia_TUIT", pageName: "" },
+    { year: 2022, teamName: "AshesiGhana", pageName: "" },
+    { year: 2021, teamName: "SDU-Denmark", pageName: "" },
+    { year: 2020, teamName: "XMU-China", pageName: "" },
+    { year: 2020, teamName: "TAS_Taipei", pageName: "" },
+  ];
+
   return (
     <>
       <div className="row">
@@ -87,46 +100,7 @@ const HomePage = () => {
             <li>Have lots of fun!</li>
           </ul>
         </div>
-        <div className="col-lg-4">
-          <h2>Inspiration</h2>
-          <hr />
-          <p>
-            You can also view other team wikis for inspiration! Here are some
-            examples:
-          </p>
-          <ul>
-            <li>
-              <a href="https://2022.igem.wiki/dtu-denmark">2022 DTU-Denmark</a>
-            </li>
-            <li>
-              <a href="https://2022.igem.wiki/virginia">2022 Virginia</a>
-            </li>
-            <li>
-              <a href="https://2022.igem.wiki/crete">2022 Crete</a>
-            </li>
-            <li>
-              <a href="https://2022.igem.wiki/estonia-tuit">
-                2022 Estonia_TUIT
-              </a>
-            </li>
-            <li>
-              <a href="https://2022.igem.wiki/ashesighana">2022 AshesiGhana</a>
-            </li>
-            <li>
-              <a href="https://2021.igem.org/Team:SDU-Denmark">
-                2021 SDU-Denmark
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:XMU-China">2020 XMU China </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:TAS_Taipei">
-                2020 TAS Taipei{" "}
-              </a>
-            </li>
-          </ul>
-        </div>
+        <Inspirations inspirationLinkList={links} />
       </div>
     </>
   );
diff --git a/src/contents/human-practices.tsx b/src/contents/human-practices.tsx
index 1817d99..5dc7f49 100644
--- a/src/contents/human-practices.tsx
+++ b/src/contents/human-practices.tsx
@@ -1,4 +1,16 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const HumanPracticesPage = () => {
+  const links: InspirationLink[] = [
+    { year: 2019, teamName: "Thessaly", pageName: "Human_Practices" },
+    { year: 2019, teamName: "Linkoping_Sweden", pageName: "Human_Practices" },
+    { year: 2019, teamName: "FDR-HB_Peru", pageName: "Human_Practices" },
+    { year: 2020, teamName: "William_and_Mary", pageName: "Human_Practices" },
+    { year: 2020, teamName: "Rochester", pageName: "Human_Practices" },
+    { year: 2020, teamName: "Leiden", pageName: "Human_Practices" },
+    { year: 2020, teamName: "Baltimore_BioCrew", pageName: "Human_Practices" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -91,47 +103,7 @@ const HumanPracticesPage = () => {
             into your project purpose, design and/or execution.
           </p>
         </div>
-        <div className="col-lg-4">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="https://2019.igem.org/Team:Thessaly/Human_Practices">
-                2019 Thessaly
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Linkoping_Sweden/Human_Practices">
-                2019 Linkoping Sweden
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:FDR-HB_Peru/Human_Practices">
-                2019 FDR HB Peru
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:William_and_Mary/Human_Practices">
-                2020 William and Mary
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Rochester/Human_Practices">
-                2020 Rochester
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Leiden/Human_Practices">
-                2020 Leiden
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Baltimore_BioCrew/Human_Practices">
-                2020 Baltimore BioCrew
-              </a>
-            </li>
-          </ul>
-        </div>
+        <Inspirations inspirationLinkList={links} />
       </div>
     </>
   );
diff --git a/src/contents/inclusivity.tsx b/src/contents/inclusivity.tsx
index a9e5859..9deaa69 100644
--- a/src/contents/inclusivity.tsx
+++ b/src/contents/inclusivity.tsx
@@ -1,4 +1,13 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const InclusivityPage = () => {
+  const links: InspirationLink[] = [
+    { year: 2020, teamName: "Fudan", pageName: "Inclusion" },
+    { year: 2020, teamName: "CCU_Taiwan", pageName: "Inclusion" },
+    { year: 2020, teamName: "Concordia-Montreal", pageName: "Inclusion" },
+    { year: 2020, teamName: "CLS_CLSG_UK", pageName: "Inclusion" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -51,32 +60,7 @@ const InclusivityPage = () => {
             of research.
           </p>
         </div>
-        <div className="col-lg-4">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="https://2020.igem.org/Team:Fudan/Inclusion">
-                2020 Fudan
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:CCU_Taiwan/Inclusion">
-                2020 CCU Taiwan
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Concordia-Montreal/Inclusion">
-                2020 Concordia Montreal
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:CLS_CLSG_UK/Inclusione">
-                2020 CLS CLSG UK
-              </a>
-            </li>
-          </ul>
-        </div>
+        <Inspirations inspirationLinkList={links} />
       </div>
     </>
   );
diff --git a/src/contents/measurement.tsx b/src/contents/measurement.tsx
index 2f1be9b..734377e 100644
--- a/src/contents/measurement.tsx
+++ b/src/contents/measurement.tsx
@@ -1,4 +1,15 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const MeasurementPage = () => {
+  const links: InspirationLink[] = [
+    { year: 2018, teamName: "UC_Davis", pageName: "Measurement" },
+    { year: 2019, teamName: "Newcastle", pageName: "Measurement" },
+    { year: 2019, teamName: "Evry_Paris-Saclay", pageName: "Measurement" },
+    { year: 2019, teamName: "GENAS_China", pageName: "Measurement" },
+    { year: 2020, teamName: "Calgary", pageName: "Measurement" },
+    { year: 2020, teamName: "CSMU_Taiwan", pageName: "Measurement" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -45,42 +56,7 @@ const MeasurementPage = () => {
             something exciting in the area of Measurement, describe it here!
           </p>
         </div>
-        <div className="col-lg-4">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="http://2018.igem.org/Team:UC_Davis/Measurement">
-                2018 UC Davis
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Newcastle/Measurement">
-                2019 Newcastle
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Evry_Paris-Saclay/Measurement">
-                2019 Evry Paris Saclay
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:GENAS_China/Measurement">
-                2019 GENAS China
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Calgary/Measurement">
-                2020 Calgary
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:CSMU_Taiwan/Measurement">
-                2020 CSMU Taiwan
-              </a>
-            </li>
-          </ul>
-        </div>
+        <Inspirations inspirationLinkList={links} />
       </div>
     </>
   );
diff --git a/src/contents/model.tsx b/src/contents/model.tsx
index 7ca7c5a..b6f306e 100644
--- a/src/contents/model.tsx
+++ b/src/contents/model.tsx
@@ -1,4 +1,16 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const ModelPage = () => {
+  const links: InspirationLink[] = [
+    { year: 2018, teamName: "GreatBay_China", pageName: "Model" },
+    { year: 2018, teamName: "Leiden", pageName: "Model" },
+    { year: 2019, teamName: "IISER_Kolkata", pageName: "Model" },
+    { year: 2019, teamName: "Exeter", pageName: "Model" },
+    { year: 2019, teamName: "Mingdao", pageName: "Model" },
+    { year: 2020, teamName: "Harvard", pageName: "Model" },
+    { year: 2020, teamName: "Leiden", pageName: "Model" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -49,41 +61,7 @@ const ModelPage = () => {
             times in a computer before moving to the lab.
           </p>
         </div>
-        <div className="col-lg-4">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="http://2018.igem.org/Team:GreatBay_China/Model">
-                2018 GreatBay China
-              </a>
-            </li>
-            <li>
-              <a href="http://2018.igem.org/Team:Leiden/Model">2018 Leiden</a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:IISER_Kolkata/Model">
-                2019 IISER Kolkata
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Exeter/Model">2019 Exeter</a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Mingdao/Model">
-                2019 Mingdao
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Harvard/Model">
-                2020 Harvard
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Leiden/Model">2020 Leiden</a>
-            </li>
-          </ul>
-        </div>
+        <Inspirations inspirationLinkList={links} />
       </div>
     </>
   );
diff --git a/src/contents/notebook.tsx b/src/contents/notebook.tsx
index e8db1ea..e2f9650 100644
--- a/src/contents/notebook.tsx
+++ b/src/contents/notebook.tsx
@@ -1,4 +1,16 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const NotebookPage = () => {
+  const links: InspirationLink[] = [
+    { year: 2018, teamName: "Munich", pageName: "Notebook" },
+    { year: 2019, teamName: "Georgia_State", pageName: "Notebook" },
+    { year: 2019, teamName: "Newcastle", pageName: "Notebook" },
+    { year: 2020, teamName: "IISER-Pune-India", pageName: "Notebook" },
+    { year: 2020, teamName: "Lund", pageName: "Notebook" },
+    { year: 2020, teamName: "NOVA_LxPortugal", pageName: "Notebook" },
+    { year: 2020, teamName: "RDFZ-China", pageName: "NoteBook" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -12,45 +24,7 @@ const NotebookPage = () => {
             <li>Mention who participated in what task.</li>
           </ul>
         </div>
-        <div className="col-lg-4">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="http://2018.igem.org/Team:Munich/Notebook">
-                2018 Munich
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Georgia_State/Notebook">
-                2019 Georgia State
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Newcastle/Notebook">
-                2019 Newcastle
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:IISER-Pune-India/Notebook">
-                2020 IISER Pune India
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Lund/Notebook">2020 Lund</a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:NOVA_LxPortugal/Notebook">
-                2020 NOVA LxPortugal
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:RDFZ-China/NoteBook">
-                2020 RDFZ China
-              </a>
-            </li>
-          </ul>
-        </div>
+        <Inspirations inspirationLinkList={links} />
       </div>
     </>
   );
diff --git a/src/contents/plant.tsx b/src/contents/plant.tsx
index e1a6808..c77d58b 100644
--- a/src/contents/plant.tsx
+++ b/src/contents/plant.tsx
@@ -1,4 +1,14 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const PlantPage = () => {
+  const links: InspirationLink[] = [
+    { year: 2018, teamName: "Cardiff_Wales", pageName: "Plant" },
+    { year: 2019, teamName: "Sorbonne_U_Paris", pageName: "Plant" },
+    { year: 2019, teamName: "TU_Kaiserslautern", pageName: "Plant" },
+    { year: 2019, teamName: "Humboldt_Berlin", pageName: "Plant" },
+    { year: 2020, teamName: "Sorbonne_U_Paris", pageName: "Plant" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -33,40 +43,7 @@ const PlantPage = () => {
           </div>
         </div>
       </div>
-
-      <div className="row mt-4">
-        <div className="col">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="http://2018.igem.org/Team:Cardiff_Wales/Plant">
-                2018 Cardiff Wales
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Sorbonne_U_Paris/Plant">
-                2019 Sorbonne U Paris
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:TU_Kaiserslautern/Plant">
-                2019 TU Kaiserslautern
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Humboldt_Berlin/Plant">
-                2019 Humboldt Berlin
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Sorbonne_U_Paris/Plant">
-                2020 Sorbonne U Paris
-              </a>
-            </li>
-          </ul>
-        </div>
-      </div>
+      <Inspirations inspirationLinkList={links} />
     </>
   );
 };
diff --git a/src/contents/results.tsx b/src/contents/results.tsx
index c575eef..7714d87 100644
--- a/src/contents/results.tsx
+++ b/src/contents/results.tsx
@@ -1,4 +1,15 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const ResultsPage = () => {
+  const links: InspirationLink[] = [
+    { year: 2019, teamName: "Newcastle", pageName: "Results" },
+    { year: 2019, teamName: "Munich", pageName: "Results" },
+    { year: 2019, teamName: "Tec-Chihuahua", pageName: "Results" },
+    { year: 2020, teamName: "Aalto-Helsinki", pageName: "Results" },
+    { year: 2020, teamName: "GreatBay_SCIE", pageName: "Results" },
+    { year: 2020, teamName: "Queens_Canada", pageName: "Results" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -63,42 +74,7 @@ const ResultsPage = () => {
             </li>
           </ul>
         </div>
-        <div className="col-lg-4">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="https://2019.igem.org/Team:Newcastle/Results">
-                2019 Newcastle
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Munich/Results">
-                2019 Munich
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Tec-Chihuahua/Results">
-                2019 Tec Chihuahua
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Aalto-Helsinki/Results">
-                2020 Aalto Helsinki
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:GreatBay_SCIE/Results">
-                2020 GreatBay SCIE
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Queens_Canada/Results">
-                2020 Queens Canada
-              </a>
-            </li>
-          </ul>
-        </div>
+        <Inspirations inspirationLinkList={links} />
       </div>
     </>
   );
diff --git a/src/contents/software.tsx b/src/contents/software.tsx
index 2e80f51..4cb8014 100644
--- a/src/contents/software.tsx
+++ b/src/contents/software.tsx
@@ -1,4 +1,15 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const SoftwarePage = () => {
+  const links: InspirationLink[] = [
+    { year: 2019, teamName: "Sydney_Australia", pageName: "Software" },
+    { year: 2019, teamName: "SMMU-China", pageName: "Software" },
+    { year: 2019, teamName: "Grenoble-Alpes", pageName: "Software" },
+    { year: 2020, teamName: "DTU-Denmark", pageName: "Software" },
+    { year: 2020, teamName: "GunnVistaPingry_US", pageName: "Software" },
+    { year: 2020, teamName: "Rochester", pageName: "Software" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -37,45 +48,7 @@ const SoftwarePage = () => {
           </div>
         </div>
       </div>
-
-      <div className="row mt-4">
-        <div className="col">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="https://2019.igem.org/Team:Sydney_Australia/Software">
-                2019 Sydney Australia
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:SMMU-China/Software">
-                2019 SMMU China
-              </a>
-            </li>
-            <li>
-              <a href="https://2019.igem.org/Team:Grenoble-Alpes/Software">
-                2019 Grenoble Alpes
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:DTU-Denmark/Software">
-                2020 DTU Denmark
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:GunnVistaPingry_US/Software">
-                2020 GunnVistaPingry US
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Rochester/Software">
-                2020 Rochester
-              </a>
-            </li>
-          </ul>
-        </div>
-      </div>
+      <Inspirations inspirationLinkList={links} />
     </>
   );
 };
diff --git a/src/contents/sustainable.tsx b/src/contents/sustainable.tsx
index 7fc6a33..14e476e 100644
--- a/src/contents/sustainable.tsx
+++ b/src/contents/sustainable.tsx
@@ -1,4 +1,13 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const SustainablePage = () => {
+  const links: InspirationLink[] = [
+    { year: 2020, teamName: "Calgary", pageName: "Sustainable" },
+    { year: 2020, teamName: "Toulouse_INSA-UPS", pageName: "Sustainable" },
+    { year: 2020, teamName: "TUDelft", pageName: "Sustainable" },
+    { year: 2020, teamName: "Lambert_GA", pageName: "Sustainable" },
+  ];
+
   return (
     <>
       <div className="row mt-4">
@@ -38,35 +47,7 @@ const SustainablePage = () => {
           </div>
         </div>
       </div>
-
-      <div className="row mt-4">
-        <div className="col">
-          <h2>Inspirations</h2>
-          <hr />
-          <ul>
-            <li>
-              <a href="https://2020.igem.org/Team:Calgary/Sustainable">
-                2020 Calgary
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Toulouse_INSA-UPS/Sustainable">
-                2020 Toulouse INSA UPS
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:TUDelft/Sustainable">
-                2020 TUDelft
-              </a>
-            </li>
-            <li>
-              <a href="https://2020.igem.org/Team:Lambert_GA/Sustainable">
-                2020 Lambert GA
-              </a>
-            </li>
-          </ul>
-        </div>
-      </div>
+      <Inspirations inspirationLinkList={links} />
     </>
   );
 };
diff --git a/src/contents/team.tsx b/src/contents/team.tsx
index 3341a85..4d550a5 100644
--- a/src/contents/team.tsx
+++ b/src/contents/team.tsx
@@ -1,4 +1,15 @@
+import Inspirations, { InspirationLink } from "../components/Inspirations";
+
 const TeamPage = () => {
+  const links: InspirationLink[] = [
+    { year: 2019, teamName: "CU", pageName: "Team" },
+    { year: 2019, teamName: "UANL", pageName: "Team" },
+    { year: 2019, teamName: "William_and_Mary", pageName: "Team" },
+    { year: 2020, teamName: "BOKU-Vienna", pageName: "Team" },
+    { year: 2020, teamName: "CAU_China", pageName: "Team_Member" },
+    { year: 2020, teamName: "Lethbridge", pageName: "Members" },
+  ];
+
   return (
     <>
       <div className="row">
@@ -63,6 +74,7 @@ const TeamPage = () => {
             </li>
           </ul>
         </div>
+        <Inspirations inspirationLinkList={links} />
       </div>
     </>
   );
-- 
GitLab