diff --git a/package-lock.json b/package-lock.json index 16f6f39..ea74e9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "ttp-react-forms", + "name": "ttp-client-side-routing", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "ttp-react-forms", + "name": "ttp-client-side-routing", "version": "1.0.0", "license": "ISC", "dependencies": { diff --git a/src/App.jsx b/src/App.jsx index 14763f7..879b26e 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -5,7 +5,12 @@ import "./AppStyles.css"; import TaskList from "./components/TaskList"; import AddTask from "./components/AddTask"; import NavBar from "./components/NavBar"; -import { BrowserRouter as Router, Routes } from "react-router"; +import TaskDetails from "./components/TaskDetails" +import Users from "./components/Users"; +import UserTasks from "./components/UserTask"; + +import { BrowserRouter as Router, Routes, Route } from "react-router"; + const App = () => { const [tasks, setTasks] = useState([]); @@ -26,12 +31,20 @@ const App = () => { return (
🔄
diff --git a/src/components/TaskDetails.jsx b/src/components/TaskDetails.jsx new file mode 100644 index 0000000..d7a46d8 --- /dev/null +++ b/src/components/TaskDetails.jsx @@ -0,0 +1,42 @@ +import React, { useState, useEffect } from "react"; +import { useParams } from "react-router"; +import axios from "axios"; + +const TaskDetails = ({ tasks }) => { + const { id } = useParams(); + const taskId = Number(id); + + const [task, setTask] = useState(null); + + useEffect(() => { + if (tasks && tasks.length > 0) { + const localTask = tasks.find((t) => t.id === taskId); + if (localTask) { + setTask(localTask); + } + } else { + axios.get(`/api/tasks/${taskId}`) + .then((res) => setTask(res.data)) + .catch((err) => console.error("Error fetching task:", err)); + } + }, [tasks, taskId]); + + + if (!task) returnLoading task...
; + + return ( +{task.description}
+{task.completed ? "✅ Completed" : "❌ Incomplete"}
+Assigned to: {task.user?.name || "Unknown"}
+No tasks found for this user.
+ ) : ( +