From 993f232e66c366e67b30c4eb7104149e559cfe63 Mon Sep 17 00:00:00 2001 From: rend1027 Date: Mon, 30 Jun 2025 13:38:21 -0400 Subject: [PATCH 01/14] deployment --- package-lock.json | 4 ++-- src/App.jsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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..c9e291b 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -12,7 +12,7 @@ const App = () => { async function fetchAllTasks() { try { - const response = await axios.get("http://localhost:8080/api/tasks"); + const response = await axios.get("https://client-side-routing-frontend-seven.vercel.app/api/tasks"); setTasks(response.data); } catch (error) { console.error("Error fetching tasks:", error); From 13a5db8f7c2e30a3a1f19127678fcc0c5bd17729 Mon Sep 17 00:00:00 2001 From: rend1027 Date: Mon, 30 Jun 2025 13:43:08 -0400 Subject: [PATCH 02/14] reset --- src/App.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/App.jsx b/src/App.jsx index c9e291b..14763f7 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -12,7 +12,7 @@ const App = () => { async function fetchAllTasks() { try { - const response = await axios.get("https://client-side-routing-frontend-seven.vercel.app/api/tasks"); + const response = await axios.get("http://localhost:8080/api/tasks"); setTasks(response.data); } catch (error) { console.error("Error fetching tasks:", error); From f62acfb9bc39cd7e6f8ac40e7844949dfdadc828 Mon Sep 17 00:00:00 2001 From: rend1027 Date: Mon, 30 Jun 2025 17:41:58 -0400 Subject: [PATCH 03/14] flo --- src/App.jsx | 11 ++++++++--- src/components/CompleteTasks.jsx | 11 +++++++++++ src/components/NavBar.jsx | 14 ++++++++------ src/components/SingleTask.jsx | 28 ++++++++++++++++++++++++++++ src/components/TaskCard.jsx | 3 ++- 5 files changed, 57 insertions(+), 10 deletions(-) create mode 100644 src/components/CompleteTasks.jsx create mode 100644 src/components/SingleTask.jsx diff --git a/src/App.jsx b/src/App.jsx index 14763f7..df2c697 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -5,7 +5,10 @@ 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 CompletedTasks from "./components/CompleteTasks"; +import TaskDetail from "./components/SingleTask"; +import { BrowserRouter as Router, Routes, Route } from "react-router"; +import SingleTask from "./components/SingleTask"; const App = () => { const [tasks, setTasks] = useState([]); @@ -26,12 +29,14 @@ const App = () => { return (
- - + }/> {/* Currently, we don't have any routes defined. And you can see above that we're rendering the TaskList and AddTask components directly, no matter what our URL looks like. Let's fix that! */} + }> + }> + }>
); diff --git a/src/components/CompleteTasks.jsx b/src/components/CompleteTasks.jsx new file mode 100644 index 0000000..c720992 --- /dev/null +++ b/src/components/CompleteTasks.jsx @@ -0,0 +1,11 @@ +import React from "react"; + +const CompletedTasks = () => { + return ( +
+

This is complete task component

+
+ ) +}; + +export default CompletedTasks; \ No newline at end of file diff --git a/src/components/NavBar.jsx b/src/components/NavBar.jsx index 9e63901..17a0cd9 100644 --- a/src/components/NavBar.jsx +++ b/src/components/NavBar.jsx @@ -1,17 +1,19 @@ import React from "react"; +import { NavLink } from "react-router"; + import "./NavBarStyles.css"; const NavBar = () => { return ( ); }; diff --git a/src/components/SingleTask.jsx b/src/components/SingleTask.jsx new file mode 100644 index 0000000..c42b749 --- /dev/null +++ b/src/components/SingleTask.jsx @@ -0,0 +1,28 @@ +import axios from "axios"; +import React, {useEffect} from "react" +import { useParams } from "react-router"; + +const SingleTask = () => { + const params = useParams(); + const id = Number(params.id); + + const fetchTaskById = async () => { + try { + await axios.get(`http://localhost:8080/api/tasks/${task.id}`); + const task = response.data + } catch (error) { + console.log("Failed to fetch task by id", error) + } + } + useEffect(() => { + fetchTaskById(); + }, []); + + return ( +
+ +
+ ) +}; + +export default SingleTask; \ No newline at end of file diff --git a/src/components/TaskCard.jsx b/src/components/TaskCard.jsx index 82258d9..4049a7c 100644 --- a/src/components/TaskCard.jsx +++ b/src/components/TaskCard.jsx @@ -1,5 +1,6 @@ import React from "react"; import axios from "axios"; +import {Link} from "react-router"; import "./TaskCardStyles.css"; const TaskCard = ({ task, fetchAllTasks }) => { @@ -26,7 +27,7 @@ const TaskCard = ({ task, fetchAllTasks }) => { return (
-

{task.title}

+

{task.title}

{task.completed ? (

🔄

From e4ecdb4b9486819c20839cbaced6123612dc3b4b Mon Sep 17 00:00:00 2001 From: pedrosortega Date: Mon, 30 Jun 2025 19:58:49 -0400 Subject: [PATCH 04/14] added home page redirectory --- src/components/AddTask.jsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/AddTask.jsx b/src/components/AddTask.jsx index 3673cf1..322aba1 100644 --- a/src/components/AddTask.jsx +++ b/src/components/AddTask.jsx @@ -1,11 +1,12 @@ import React, { useState } from "react"; import axios from "axios"; import "./AddTaskStyles.css"; +import { useNavigate } from "react-router"; const AddTask = ({ fetchAllTasks }) => { const [title, setTitle] = useState(""); const [description, setDescription] = useState(""); - + const navigate = useNavigate(); const handleSubmit = async (event) => { event.preventDefault(); try { @@ -36,7 +37,9 @@ const AddTask = ({ fetchAllTasks }) => { value={description} onChange={(e) => setDescription(e.target.value)} /> - +
); From bb2b4f01e260d9493237fa2fb0e1e3a4446a73b7 Mon Sep 17 00:00:00 2001 From: rend1027 Date: Mon, 30 Jun 2025 22:06:35 -0400 Subject: [PATCH 05/14] show single task with user name --- src/components/SingleTask.css | 3 +++ src/components/SingleTask.jsx | 44 ++++++++++++++++++++++++++++------- src/components/TaskCard.jsx | 2 +- 3 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 src/components/SingleTask.css diff --git a/src/components/SingleTask.css b/src/components/SingleTask.css new file mode 100644 index 0000000..1f2ee56 --- /dev/null +++ b/src/components/SingleTask.css @@ -0,0 +1,3 @@ +.user-name { + color: red; +} \ No newline at end of file diff --git a/src/components/SingleTask.jsx b/src/components/SingleTask.jsx index c42b749..d17a48b 100644 --- a/src/components/SingleTask.jsx +++ b/src/components/SingleTask.jsx @@ -1,26 +1,54 @@ import axios from "axios"; -import React, {useEffect} from "react" +import React, {use, useEffect, useState} from "react" +import TaskCard from "./TaskCard"; import { useParams } from "react-router"; +import './SingleTask.css' -const SingleTask = () => { +const SingleTask = (props) => { + const {tasks} = props; + console.log("This is tasks state-->", tasks) const params = useParams(); const id = Number(params.id); + const [currentTask, setCurrentTask] = useState([]); + const [currentUserId, setCurrentuserId] = useState([]); + const [user, setUser] = useState([]); + let userId = Number(currentUserId) + // console.log("Current user-->", currentUser) + const fetchTaskById = async () => { try { - await axios.get(`http://localhost:8080/api/tasks/${task.id}`); - const task = response.data - } catch (error) { - console.log("Failed to fetch task by id", error) + const response = await axios.get(`http://localhost:8080/api/tasks/${id}`); + setCurrentTask(response.data) + const user = response.data.userId; + setCurrentuserId(user) + } catch(error) { + console.log("failed to fetch task by id", error) } } + useEffect(() => { fetchTaskById(); - }, []); + }, [id]); + + const fetchUserByID = async () => { + try { + const response = await axios.get(`http://localhost:8080/api/users/${userId}`); + setUser(response.data) + } catch(error) { + console.log("failed to fetch user by id", error) + } + } + + useEffect(() => { + fetchUserByID(); + },[currentUserId]); + return (
- +

{user.name}

+ {}}/>
) }; diff --git a/src/components/TaskCard.jsx b/src/components/TaskCard.jsx index 4049a7c..ebf65a4 100644 --- a/src/components/TaskCard.jsx +++ b/src/components/TaskCard.jsx @@ -3,7 +3,7 @@ import axios from "axios"; import {Link} from "react-router"; import "./TaskCardStyles.css"; -const TaskCard = ({ task, fetchAllTasks }) => { +const TaskCard = ({ task, fetchAllTasks, currentTask}) => { const handleCompleteTask = async () => { try { await axios.patch(`http://localhost:8080/api/tasks/${task.id}`, { From fc90b9c8c1db388b2a2c758fdc54a718c177190a Mon Sep 17 00:00:00 2001 From: Tran Vo Date: Mon, 30 Jun 2025 22:30:27 -0400 Subject: [PATCH 06/14] added incompplete.jsx --- src/components/IncompleteTasks.jsx | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/components/IncompleteTasks.jsx diff --git a/src/components/IncompleteTasks.jsx b/src/components/IncompleteTasks.jsx new file mode 100644 index 0000000..e69de29 From 62f9fd48c96ffca017ba2fe506a3daf65d4e2ef2 Mon Sep 17 00:00:00 2001 From: rend1027 Date: Mon, 30 Jun 2025 22:32:54 -0400 Subject: [PATCH 07/14] Fixed bug in index.html --- dist/index.html | 2 +- src/components/SingleTask.jsx | 6 ++++-- webpack.config.js | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/dist/index.html b/dist/index.html index 63f01f0..5e5b884 100644 --- a/dist/index.html +++ b/dist/index.html @@ -4,7 +4,7 @@ Client-Side Routing Assignment - +
diff --git a/src/components/SingleTask.jsx b/src/components/SingleTask.jsx index d17a48b..2c0d63b 100644 --- a/src/components/SingleTask.jsx +++ b/src/components/SingleTask.jsx @@ -46,8 +46,10 @@ const SingleTask = (props) => { return ( -
-

{user.name}

+
{user.name ?

This task is assigned to {user.name}

+ : +

This task is not assigned

} + {}}/>
) diff --git a/webpack.config.js b/webpack.config.js index a187b02..476597d 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -32,6 +32,7 @@ module.exports = { devServer: { static: { directory: path.join(__dirname, "dist"), + historyApiFallback: true, }, compress: true, historyApiFallback: true, From f8d48dc49e6670d287321d8bfe810f429bbee122 Mon Sep 17 00:00:00 2001 From: Tran Vo Date: Mon, 30 Jun 2025 23:00:15 -0400 Subject: [PATCH 08/14] Complete/Incomplete Task render --- src/App.jsx | 4 +++- src/components/CompleteTasks.jsx | 10 ++++------ src/components/IncompleteTasks.jsx | 9 +++++++++ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index df2c697..c36e70f 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -9,6 +9,7 @@ import CompletedTasks from "./components/CompleteTasks"; import TaskDetail from "./components/SingleTask"; import { BrowserRouter as Router, Routes, Route } from "react-router"; import SingleTask from "./components/SingleTask"; +import IncompleteTasks from "./components/IncompleteTasks"; const App = () => { const [tasks, setTasks] = useState([]); @@ -35,7 +36,8 @@ const App = () => { rendering the TaskList and AddTask components directly, no matter what our URL looks like. Let's fix that! */} }> - }> + } /> + }> }>
diff --git a/src/components/CompleteTasks.jsx b/src/components/CompleteTasks.jsx index c720992..515ad81 100644 --- a/src/components/CompleteTasks.jsx +++ b/src/components/CompleteTasks.jsx @@ -1,11 +1,9 @@ import React from "react"; +import TaskList from "./TaskList"; -const CompletedTasks = () => { - return ( -
-

This is complete task component

-
- ) +const CompletedTasks = ({ tasks, fetchAllTasks }) => { + const completedTasks = tasks.filter((task) => task.completed); + return ; }; export default CompletedTasks; \ No newline at end of file diff --git a/src/components/IncompleteTasks.jsx b/src/components/IncompleteTasks.jsx index e69de29..46c5772 100644 --- a/src/components/IncompleteTasks.jsx +++ b/src/components/IncompleteTasks.jsx @@ -0,0 +1,9 @@ +import React from "react"; +import TaskList from "./TaskList"; + +const IncompleteTasks = ({ tasks, fetchAllTasks }) => { + const incompleteTasks = tasks.filter((task) => !task.completed); + return ; +}; + +export default IncompleteTasks; \ No newline at end of file From 7ac795818590b4fc6d42e515e0d717a2273e5106 Mon Sep 17 00:00:00 2001 From: rend1027 Date: Tue, 1 Jul 2025 01:16:11 -0400 Subject: [PATCH 09/14] added dev and prod mode --- .env.devolopment | 1 + .env.production | 1 + dist/index.html | 2 +- package-lock.json | 13 +++++++++++++ package.json | 1 + src/App.jsx | 3 ++- src/api/axiosInstance.js | 7 +++++++ src/components/SingleTask.jsx | 5 +++-- src/components/TaskCard.jsx | 5 +++-- webpack.config.js | 7 +++++++ 10 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 .env.devolopment create mode 100644 .env.production create mode 100644 src/api/axiosInstance.js diff --git a/.env.devolopment b/.env.devolopment new file mode 100644 index 0000000..b1c87f9 --- /dev/null +++ b/.env.devolopment @@ -0,0 +1 @@ +API_URL = https://client-side-routing-backend-nu.vercel.app/api diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..b21dcb6 --- /dev/null +++ b/.env.production @@ -0,0 +1 @@ +API_URL=http://localhost:8080/api \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 5e5b884..845a9e4 100644 --- a/dist/index.html +++ b/dist/index.html @@ -9,4 +9,4 @@
- + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ea74e9a..c28285e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@babel/preset-react": "^7.27.1", "axios": "^1.10.0", "babel-loader": "^10.0.0", + "dotenv": "^17.0.0", "react": "^19.1.0", "react-dom": "^19.1.0", "react-router": "^7.6.3", @@ -2323,6 +2324,18 @@ "node": ">=0.10.0" } }, + "node_modules/dotenv": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.0.0.tgz", + "integrity": "sha512-A0BJ5lrpJVSfnMMXjmeO0xUnoxqsBHWCoqqTnGwGYVdnctqXXUEhJOO7LxmgxJon9tEZFGpe0xPRX0h2v3AANQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", diff --git a/package.json b/package.json index ddd3e8e..01c882f 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@babel/preset-react": "^7.27.1", "axios": "^1.10.0", "babel-loader": "^10.0.0", + "dotenv": "^17.0.0", "react": "^19.1.0", "react-dom": "^19.1.0", "react-router": "^7.6.3", diff --git a/src/App.jsx b/src/App.jsx index df2c697..9a2528a 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -9,13 +9,14 @@ import CompletedTasks from "./components/CompleteTasks"; import TaskDetail from "./components/SingleTask"; import { BrowserRouter as Router, Routes, Route } from "react-router"; import SingleTask from "./components/SingleTask"; +import api from "./api/axiosInstance"; const App = () => { const [tasks, setTasks] = useState([]); async function fetchAllTasks() { try { - const response = await axios.get("http://localhost:8080/api/tasks"); + const response = await api.get(`/tasks`); setTasks(response.data); } catch (error) { console.error("Error fetching tasks:", error); diff --git a/src/api/axiosInstance.js b/src/api/axiosInstance.js new file mode 100644 index 0000000..31b7dbc --- /dev/null +++ b/src/api/axiosInstance.js @@ -0,0 +1,7 @@ +import axios from 'axios'; + +const api = axios.create({ + baseURL: process.env.API_URL, +}); + +export default api; \ No newline at end of file diff --git a/src/components/SingleTask.jsx b/src/components/SingleTask.jsx index 2c0d63b..05a7334 100644 --- a/src/components/SingleTask.jsx +++ b/src/components/SingleTask.jsx @@ -2,6 +2,7 @@ import axios from "axios"; import React, {use, useEffect, useState} from "react" import TaskCard from "./TaskCard"; import { useParams } from "react-router"; +import api from "./api/axiosInstance"; import './SingleTask.css' const SingleTask = (props) => { @@ -18,7 +19,7 @@ const SingleTask = (props) => { const fetchTaskById = async () => { try { - const response = await axios.get(`http://localhost:8080/api/tasks/${id}`); + const response = await api.get(`/tasks/${id}`); setCurrentTask(response.data) const user = response.data.userId; setCurrentuserId(user) @@ -33,7 +34,7 @@ const SingleTask = (props) => { const fetchUserByID = async () => { try { - const response = await axios.get(`http://localhost:8080/api/users/${userId}`); + const response = await api.get(`/users/${userId}`); setUser(response.data) } catch(error) { console.log("failed to fetch user by id", error) diff --git a/src/components/TaskCard.jsx b/src/components/TaskCard.jsx index ebf65a4..d34b7ca 100644 --- a/src/components/TaskCard.jsx +++ b/src/components/TaskCard.jsx @@ -2,11 +2,12 @@ import React from "react"; import axios from "axios"; import {Link} from "react-router"; import "./TaskCardStyles.css"; +import api from "./api/axiosInstance"; const TaskCard = ({ task, fetchAllTasks, currentTask}) => { const handleCompleteTask = async () => { try { - await axios.patch(`http://localhost:8080/api/tasks/${task.id}`, { + await api.patch(`/tasks/${task.id}`, { completed: !task.completed, }); fetchAllTasks(); @@ -17,7 +18,7 @@ const TaskCard = ({ task, fetchAllTasks, currentTask}) => { const handleDeleteTask = async () => { try { - await axios.delete(`http://localhost:8080/api/tasks/${task.id}`); + await api.delete(`/tasks/${task.id}`); fetchAllTasks(); } catch (error) { console.error("Error deleting task:", error); diff --git a/webpack.config.js b/webpack.config.js index 476597d..c8c0ab4 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,4 +1,6 @@ const path = require("path"); +const webpack = require('webpack'); +const env = dotenv.config().parsed || {}; module.exports = { mode: "development", @@ -38,4 +40,9 @@ module.exports = { historyApiFallback: true, port: 3000, }, + plugins: [ + new webpack.DefinePlugin({ + 'process.env.API_URL': JSON.stringify(env.API_URL), + }) + ] }; From 123788350fd7da31734ad8fbfc6523246262f723 Mon Sep 17 00:00:00 2001 From: rend1027 Date: Tue, 1 Jul 2025 01:21:52 -0400 Subject: [PATCH 10/14] added dotenv --- webpack.config.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index c8c0ab4..3e06e88 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,7 +1,8 @@ const path = require("path"); -const webpack = require('webpack'); -const env = dotenv.config().parsed || {}; +const webpack = require("webpack"); +const dotenv = require("dotenv"); +const env = dotenv.config({ path: `.env.${process.env.NODE_ENV}` }).parsed || {}; module.exports = { mode: "development", entry: "./src/App.jsx", From b0a3f17c06bae96beecf2406ae4f96291515a863 Mon Sep 17 00:00:00 2001 From: rend1027 Date: Tue, 1 Jul 2025 01:30:22 -0400 Subject: [PATCH 11/14] fixed path --- src/components/AddTask.jsx | 3 ++- src/components/SingleTask.jsx | 2 +- src/components/TaskCard.jsx | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/AddTask.jsx b/src/components/AddTask.jsx index 322aba1..29907b0 100644 --- a/src/components/AddTask.jsx +++ b/src/components/AddTask.jsx @@ -2,6 +2,7 @@ import React, { useState } from "react"; import axios from "axios"; import "./AddTaskStyles.css"; import { useNavigate } from "react-router"; +import api from "../api/axiosInstance"; const AddTask = ({ fetchAllTasks }) => { const [title, setTitle] = useState(""); @@ -10,7 +11,7 @@ const AddTask = ({ fetchAllTasks }) => { const handleSubmit = async (event) => { event.preventDefault(); try { - await axios.post("http://localhost:8080/api/tasks", { + await api.post("/tasks", { title, description, }); diff --git a/src/components/SingleTask.jsx b/src/components/SingleTask.jsx index 05a7334..49139a4 100644 --- a/src/components/SingleTask.jsx +++ b/src/components/SingleTask.jsx @@ -2,7 +2,7 @@ import axios from "axios"; import React, {use, useEffect, useState} from "react" import TaskCard from "./TaskCard"; import { useParams } from "react-router"; -import api from "./api/axiosInstance"; +import api from "../api/axiosInstance"; import './SingleTask.css' const SingleTask = (props) => { diff --git a/src/components/TaskCard.jsx b/src/components/TaskCard.jsx index d34b7ca..30e8c2c 100644 --- a/src/components/TaskCard.jsx +++ b/src/components/TaskCard.jsx @@ -2,7 +2,7 @@ import React from "react"; import axios from "axios"; import {Link} from "react-router"; import "./TaskCardStyles.css"; -import api from "./api/axiosInstance"; +import api from "../api/axiosInstance"; const TaskCard = ({ task, fetchAllTasks, currentTask}) => { const handleCompleteTask = async () => { From 71187a32a28a00f722b4cb6136ec2606ef06091b Mon Sep 17 00:00:00 2001 From: rend1027 Date: Tue, 1 Jul 2025 01:44:47 -0400 Subject: [PATCH 12/14] fixed webpack --- .env.devolopment | 2 +- .env.production | 2 +- src/App.jsx | 1 + webpack.config.js | 1 - 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.env.devolopment b/.env.devolopment index b1c87f9..fa1310a 100644 --- a/.env.devolopment +++ b/.env.devolopment @@ -1 +1 @@ -API_URL = https://client-side-routing-backend-nu.vercel.app/api +API_URL=https://localhost:8080/api diff --git a/.env.production b/.env.production index b21dcb6..812d31f 100644 --- a/.env.production +++ b/.env.production @@ -1 +1 @@ -API_URL=http://localhost:8080/api \ No newline at end of file +API_URL = https://client-side-routing-backend-nu.vercel.app/api \ No newline at end of file diff --git a/src/App.jsx b/src/App.jsx index fd0caa8..77bd9fe 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -18,6 +18,7 @@ const App = () => { async function fetchAllTasks() { try { const response = await api.get(`/tasks`); + console.log("✅ API response:", response.data); setTasks(response.data); } catch (error) { console.error("Error fetching tasks:", error); diff --git a/webpack.config.js b/webpack.config.js index 3e06e88..a594d2b 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -35,7 +35,6 @@ module.exports = { devServer: { static: { directory: path.join(__dirname, "dist"), - historyApiFallback: true, }, compress: true, historyApiFallback: true, From dc812649eb7fc960adb3d6af1b1861a447cd20f9 Mon Sep 17 00:00:00 2001 From: rend1027 Date: Tue, 1 Jul 2025 01:51:54 -0400 Subject: [PATCH 13/14] fixed --- src/api/axiosInstance.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/axiosInstance.js b/src/api/axiosInstance.js index 31b7dbc..fa6adc9 100644 --- a/src/api/axiosInstance.js +++ b/src/api/axiosInstance.js @@ -1,7 +1,7 @@ import axios from 'axios'; const api = axios.create({ - baseURL: process.env.API_URL, + baseURL: "https://client-side-routing-backend-nu.vercel.app/api", }); export default api; \ No newline at end of file From 27b29a1ed9320e54f0f0b26d4dfe150ae1f21f0b Mon Sep 17 00:00:00 2001 From: rend1027 Date: Tue, 1 Jul 2025 05:23:06 -0400 Subject: [PATCH 14/14] last commit --- src/App.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/App.jsx b/src/App.jsx index 77bd9fe..65899aa 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -11,7 +11,7 @@ import { BrowserRouter as Router, Routes, Route } from "react-router"; import SingleTask from "./components/SingleTask"; import api from "./api/axiosInstance"; import IncompleteTasks from "./components/IncompleteTasks"; - +// comment const App = () => { const [tasks, setTasks] = useState([]);