From 762e246ccdecfddbc9daf43c5e8444ed68ba18bc Mon Sep 17 00:00:00 2001 From: Atharva Date: Sat, 22 Feb 2025 22:41:24 +0530 Subject: [PATCH] Fix:Corrected files structure --- Frontend/src/components/Td.jsx | 20 ++ Frontend/src/pages/UserPanel/Dashboard.jsx | 2 +- Frontend/src/pages/UserPanel/DeleteFarm.jsx | 6 - Frontend/src/pages/UserPanel/Farm/AddFarm.jsx | 228 ++++++++++++++++++ .../src/pages/UserPanel/Farm/DeleteFarm.jsx | 0 Frontend/src/pages/UserPanel/Farm/Farm.jsx | 4 + .../pages/UserPanel/{ => Farm}/UpdateForm.jsx | 0 7 files changed, 253 insertions(+), 7 deletions(-) create mode 100644 Frontend/src/components/Td.jsx delete mode 100644 Frontend/src/pages/UserPanel/DeleteFarm.jsx create mode 100644 Frontend/src/pages/UserPanel/Farm/AddFarm.jsx create mode 100644 Frontend/src/pages/UserPanel/Farm/DeleteFarm.jsx create mode 100644 Frontend/src/pages/UserPanel/Farm/Farm.jsx rename Frontend/src/pages/UserPanel/{ => Farm}/UpdateForm.jsx (100%) diff --git a/Frontend/src/components/Td.jsx b/Frontend/src/components/Td.jsx new file mode 100644 index 0000000..a64e5bf --- /dev/null +++ b/Frontend/src/components/Td.jsx @@ -0,0 +1,20 @@ +const Td = ({ children }) => { + console.log(children); + return ( + + {children.name} + {children.location} + {children.soilType} + + + Edit + + + + ); +}; + +export default Td; diff --git a/Frontend/src/pages/UserPanel/Dashboard.jsx b/Frontend/src/pages/UserPanel/Dashboard.jsx index 498f29c..4c89b96 100644 --- a/Frontend/src/pages/UserPanel/Dashboard.jsx +++ b/Frontend/src/pages/UserPanel/Dashboard.jsx @@ -3,7 +3,7 @@ import { useNavigate } from "react-router-dom"; import Piechart from "../../components/monitoring charts/Piechart"; import TotalSpent from "../../components/TotalSpent"; import FarmList from "../../components/FarmList"; -import AddFarm from "./AddFarm"; +import AddFarm from "./Farm/AddFarm"; const Dashboard = () => { const navigate = useNavigate(); diff --git a/Frontend/src/pages/UserPanel/DeleteFarm.jsx b/Frontend/src/pages/UserPanel/DeleteFarm.jsx deleted file mode 100644 index ec042b2..0000000 --- a/Frontend/src/pages/UserPanel/DeleteFarm.jsx +++ /dev/null @@ -1,6 +0,0 @@ -const DeleteFarm = () => { - return ( - - ) -}; -export default DeleteFarm; diff --git a/Frontend/src/pages/UserPanel/Farm/AddFarm.jsx b/Frontend/src/pages/UserPanel/Farm/AddFarm.jsx new file mode 100644 index 0000000..cf61517 --- /dev/null +++ b/Frontend/src/pages/UserPanel/Farm/AddFarm.jsx @@ -0,0 +1,228 @@ +import React, { useState } from "react"; + +const AddFarm = () => { + const [isModalOpen, setIsModalOpen] = useState(false); + const [farmName, setFarmName] = useState(""); + const [location, setLocation] = useState(""); + const [waterContent, setWaterContent] = useState(""); + const [soilType, setSoilType] = useState(""); + const [error, setError] = useState(null); + const [success, setSuccess] = useState(false); + + const handleSubmit = async (e) => { + e.preventDefault(); + const farmData = { + name: farmName, + location, + waterContent, + soilType, + }; + + console.log(farmData); + + try { + const response = await fetch("http://localhost:8000/api/v1/farm", { + method: "POST", + credentials: "include", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(farmData), + }); + + const data = await response.json(); + console.log(data); + + if (!response.ok) { + throw new Error("Failed to add farm"); + } + + setSuccess(true); + setError(null); + setIsModalOpen(false); + } catch (err) { + setError(err.message); + setSuccess(false); + } + }; + + return ( + <> + + + {isModalOpen && ( +
+
setIsModalOpen(false)} + >
+ +
+
+ {/* Decorative Leaves */} +
+ + + + + + + + + + + + + +
+ + {/* Modal Header */} +
+

+ Add New Farm +

+ +
+ + {/* Modal Body */} +
+
+
+ + setFarmName(e.target.value)} + className="w-full px-4 py-3 rounded-lg border border-gray-200 focus:ring-2 focus:ring-green-400 focus:border-transparent transition duration-200 ease-in-out bg-white/80" + placeholder="Enter farm name" + required + /> +
+ +
+ + setLocation(e.target.value)} + className="w-full px-4 py-3 rounded-lg border border-gray-200 focus:ring-2 focus:ring-green-400 focus:border-transparent transition duration-200 ease-in-out bg-white/80" + placeholder="Enter location" + required + /> +
+ +
+ + setWaterContent(e.target.value)} + className="w-full px-4 py-3 rounded-lg border border-gray-200 focus:ring-2 focus:ring-green-400 focus:border-transparent transition duration-200 ease-in-out bg-white/80" + placeholder="Enter water content" + required + /> +
+ +
+ + setSoilType(e.target.value)} + className="w-full px-4 py-3 rounded-lg border border-gray-200 focus:ring-2 focus:ring-green-400 focus:border-transparent transition duration-200 ease-in-out bg-white/80" + placeholder="Enter soil type" + required + /> +
+ + + + {error && ( +

+ {error} +

+ )} + {success && ( +

+ Farm added successfully! +

+ )} +
+
+
+
+
+ )} + + ); +}; + +export default AddFarm; diff --git a/Frontend/src/pages/UserPanel/Farm/DeleteFarm.jsx b/Frontend/src/pages/UserPanel/Farm/DeleteFarm.jsx new file mode 100644 index 0000000..e69de29 diff --git a/Frontend/src/pages/UserPanel/Farm/Farm.jsx b/Frontend/src/pages/UserPanel/Farm/Farm.jsx new file mode 100644 index 0000000..cf591d3 --- /dev/null +++ b/Frontend/src/pages/UserPanel/Farm/Farm.jsx @@ -0,0 +1,4 @@ +const Farm = () => { + return

; +}; +export default Farm; diff --git a/Frontend/src/pages/UserPanel/UpdateForm.jsx b/Frontend/src/pages/UserPanel/Farm/UpdateForm.jsx similarity index 100% rename from Frontend/src/pages/UserPanel/UpdateForm.jsx rename to Frontend/src/pages/UserPanel/Farm/UpdateForm.jsx