From 4b249ea2abad6960e15c1d543d4e798d92039e7d Mon Sep 17 00:00:00 2001
From: benkortbi <abdelhak.benkortbi@etu.univ-amu.fr>
Date: Mon, 10 Mar 2025 15:37:05 +0100
Subject: [PATCH] Footer & css

---
 src/App.jsx                            |  4 ++-
 src/components/Footer.jsx              | 46 ++++++++++++++++++++++++++
 src/components/dashboard/TaskStats.jsx |  2 +-
 src/pages/Home.jsx                     | 31 ++++++++---------
 4 files changed, 64 insertions(+), 19 deletions(-)
 create mode 100644 src/components/Footer.jsx

diff --git a/src/App.jsx b/src/App.jsx
index 3835c81..f750cfb 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -7,6 +7,7 @@ import Todolist from "@pages/Todolist";
 import { TasksProvider } from "@context/TasksContext";
 import { ThemeProvider } from "@context/ThemeContext";
 import Navbar from "@components/Navbar.jsx";
+import Footer from "@components/Footer.jsx";
 
 function App() {
   return (
@@ -15,7 +16,7 @@ function App() {
         <Router>
           <div className="min-h-screen bg-gray-50 dark:bg-gray-900">
             <Navbar />
-            <main className="pt-4">
+            <main className="flex-grow pt-4">
               <Routes>
                 <Route path="/signin" element={<SignIn />} />
                 <Route path="/signup" element={<SignUp />} />
@@ -23,6 +24,7 @@ function App() {
                 <Route path="/todolist" element={<Todolist />} />
               </Routes>
             </main>
+              <Footer />
           </div>
         </Router>
       </TasksProvider>
diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx
new file mode 100644
index 0000000..4fde7a7
--- /dev/null
+++ b/src/components/Footer.jsx
@@ -0,0 +1,46 @@
+import React from "react";
+import { Heart } from "lucide-react";
+
+const Footer = () => {
+    const currentYear = new Date().getFullYear();
+    const teamMembers = [
+        "Abdelhak BENKORTBI",
+        "Amine ZAIME",
+        "Anas OUKASSOU",
+        "Kevin MALDONADO"
+
+    ];
+
+    return (
+        <footer className="bg-white border-t border-gray-100">
+            <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
+                <div className="flex flex-col items-center space-y-4">
+                    {/* Team members */}
+                    <div className="flex flex-wrap justify-center gap-2">
+                        {teamMembers.map((member, index) => (
+                            <React.Fragment key={member}>
+                                <span className="text-gray-600 font-medium">{member}</span>
+                                {index < teamMembers.length - 1 && (
+                                    <span className="text-gray-400">•</span>
+                                )}
+                            </React.Fragment>
+                        ))}
+                    </div>
+
+                    {/* Copyright and signature */}
+                    <div className="flex items-center gap-2 text-sm text-gray-500">
+                        <span>&copy; {currentYear} TaskMaster</span>
+                        <span className="text-gray-400">|</span>
+                        <div className="flex items-center gap-1">
+                            <span>Made with</span>
+                            <Heart size={14} className="text-red-500 fill-current" />
+                            <span>by the team</span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </footer>
+    );
+};
+
+export default Footer;
\ No newline at end of file
diff --git a/src/components/dashboard/TaskStats.jsx b/src/components/dashboard/TaskStats.jsx
index 52f284d..f334de7 100644
--- a/src/components/dashboard/TaskStats.jsx
+++ b/src/components/dashboard/TaskStats.jsx
@@ -10,7 +10,7 @@ const TaskStats = () => {
   const total = tasks.length;
 
   return (
-    <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4">
+    <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
       <TaskCard title="Completed Tasks" count={completed} />
       <TaskCard title="Incompleted Tasks" count={incompleted} />
       <TaskCard title="Total Tasks" count={total} />
diff --git a/src/pages/Home.jsx b/src/pages/Home.jsx
index 8449f36..465731f 100644
--- a/src/pages/Home.jsx
+++ b/src/pages/Home.jsx
@@ -21,23 +21,22 @@ const Home = () => {
             name: "",
             isCompleted: false,
             dueDate: ""
-        }
-    }
+        };
+    };
+
 
-    // Fonction pour ajouter une nouvelle tâche
     const saveTask = (task) => {
         const newTask = {
             ...task,
-            dueDate: task.dueDate || selectedDate.toISOString().split("T")[0], // Ajouter une dueDate par défaut
+            dueDate: task.dueDate || selectedDate.toISOString().split("T")[0],
         };
         setTasks([...tasks, newTask]);
     };
 
-    // Filtrer les tâches en fonction de leur dueDate
     const filteredTasks = tasks.filter(task => {
-        if (!task.dueDate) return false; // Vérifie si une tâche a bien une date
-        const taskDate = new Date(task.dueDate); // Convertir en objet Date
-        return taskDate.toDateString() === selectedDate.toDateString(); // Comparer avec la date sélectionnée
+        if (!task.dueDate) return false;
+        const taskDate = new Date(task.dueDate);
+        return taskDate.toDateString() === selectedDate.toDateString();
     });
 
     return (
@@ -46,10 +45,10 @@ const Home = () => {
                 <TaskStats />
             </div>
             <div className="min-h-screen bg-gray-100 dark:bg-gray-800 p-8">
-                <div className="grid grid-cols-2 gap-6">
 
+                <div className="grid grid-cols-3 grid-rows-2 gap-6 h-full">
 
-                    <div className="bg-white dark:bg-gray-700 rounded-lg shadow-md p-6 min-h-[300px]">
+                    <div className="bg-white dark:bg-gray-700 rounded-lg shadow-md p-6 row-span-2 col-span-2">
                         <h3 className="text-lg font-semibold mb-4 dark:text-white">
                             Tasks for {selectedDate.toDateString()}
                         </h3>
@@ -62,22 +61,20 @@ const Home = () => {
                         )}
                     </div>
 
-                    <div className="bg-white dark:bg-gray-700 rounded-lg shadow-md p-6 min-h-[300px]">
+                    <div className="bg-white dark:bg-gray-700 rounded-lg shadow-md p-6">
                         <Calendar selectedDate={selectedDate} setSelectedDate={setSelectedDate} />
                     </div>
 
-                    <div className="bg-white dark:bg-gray-700 rounded-lg shadow-md p-6 min-h-[300px]"></div>
-
-                    <div className="bg-white dark:bg-gray-700 rounded-lg shadow-md p-6 min-h-[300px]">
+                    <div className="bg-white dark:bg-gray-700 rounded-lg shadow-md p-6">
                         <TasksStatPercent />
                     </div>
+
                 </div>
             </div>
 
-
-            <Modal task={newTask()} isOpen={isModalOpen} closeModal={closeModal} saveTask={saveTask} />
+            <Modal isOpen={isModalOpen} closeModal={closeModal} saveTask={saveTask} />
         </div>
     );
 };
 
-export default Home;
\ No newline at end of file
+export default Home;
-- 
GitLab