From 3fea87a88a9e58fbb7360b6ef4dbc6b65677710a Mon Sep 17 00:00:00 2001
From: Mattias <mattias.rasmusson.1032@student.lu.se>
Date: Tue, 19 Mar 2024 21:22:49 +0100
Subject: [PATCH] New component for displaying userprojects

---
 .../src/Components/DisplayUserProjects.tsx    | 40 +++++++++++++++++++
 frontend/src/Pages/YourProjectsPage.tsx       | 33 +--------------
 2 files changed, 42 insertions(+), 31 deletions(-)
 create mode 100644 frontend/src/Components/DisplayUserProjects.tsx

diff --git a/frontend/src/Components/DisplayUserProjects.tsx b/frontend/src/Components/DisplayUserProjects.tsx
new file mode 100644
index 0000000..266f1ce
--- /dev/null
+++ b/frontend/src/Components/DisplayUserProjects.tsx
@@ -0,0 +1,40 @@
+import { useState, useEffect } from "react";
+import { Project } from "../Types/goTypes";
+import { Link } from "react-router-dom";
+import { api } from "../API/API";
+
+function DisplayUserProject(): JSX.Element {
+  const [projects, setProjects] = useState<Project[]>([]);
+
+  const getProjects = async (): Promise<void> => {
+    const token = localStorage.getItem("accessToken") ?? "";
+    const response = await api.getUserProjects(token);
+    console.log(response);
+    if (response.success) {
+      setProjects(response.data ?? []);
+    } else {
+      console.error(response.message);
+    }
+  };
+  // Call getProjects when the component mounts
+  useEffect(() => {
+    void getProjects();
+  }, []);
+
+  return (
+    <>
+      <h1 className="font-bold text-[30px] mb-[20px]">Your Projects</h1>
+      <div className="border-4 border-black bg-white flex flex-col items-center justify-center min-h-[65vh] h-fit w-[50vw] rounded-3xl content-center overflow-scroll space-y-[10vh] p-[30px]">
+        {projects.map((project, index) => (
+          <Link to={`/project/${project.name}`} key={index}>
+            <h1 className="font-bold underline text-[30px] cursor-pointer">
+              {project.name}
+            </h1>
+          </Link>
+        ))}
+      </div>
+    </>
+  );
+}
+
+export default DisplayUserProject;
diff --git a/frontend/src/Pages/YourProjectsPage.tsx b/frontend/src/Pages/YourProjectsPage.tsx
index b5644c3..c048746 100644
--- a/frontend/src/Pages/YourProjectsPage.tsx
+++ b/frontend/src/Pages/YourProjectsPage.tsx
@@ -1,39 +1,10 @@
-import { useState, useEffect } from "react";
-import { Project } from "../Types/goTypes";
-import { Link } from "react-router-dom";
 import BasicWindow from "../Components/BasicWindow";
-import { api } from "../API/API";
+import DisplayUserProjects from "../Components/DisplayUserProjects";
 
 function UserProjectPage(): JSX.Element {
-  const [projects, setProjects] = useState<Project[]>([]);
-
-  const getProjects = async (): Promise<void> => {
-    const token = localStorage.getItem("accessToken") ?? "";
-    const response = await api.getUserProjects(token);
-    console.log(response);
-    if (response.success) {
-      setProjects(response.data ?? []);
-    } else {
-      console.error(response.message);
-    }
-  };
-  // Call getProjects when the component mounts
-  useEffect(() => {
-    void getProjects();
-  }, []);
-
   const content = (
     <>
-      <h1 className="font-bold text-[30px] mb-[20px]">Your Projects</h1>
-      <div className="border-4 border-black bg-white flex flex-col items-center justify-center min-h-[65vh] h-fit w-[50vw] rounded-3xl content-center overflow-scroll space-y-[10vh] p-[30px]">
-        {projects.map((project, index) => (
-          <Link to={`/project/${project.name}`} key={index}>
-            <h1 className="font-bold underline text-[30px] cursor-pointer">
-              {project.name}
-            </h1>
-          </Link>
-        ))}
-      </div>
+      <DisplayUserProjects />
     </>
   );