From fdee1beb05fb53474bfc418a2864cb3e0ea3687b Mon Sep 17 00:00:00 2001 From: Atharva Date: Sat, 22 Feb 2025 20:01:52 +0530 Subject: [PATCH] Added add farm option in dashboard and created add farm model. --- Frontend/src/pages/UserPanel/AddFarm.jsx | 260 ++++++++++++++------- Frontend/src/pages/UserPanel/Dashboard.jsx | 14 +- 2 files changed, 179 insertions(+), 95 deletions(-) diff --git a/Frontend/src/pages/UserPanel/AddFarm.jsx b/Frontend/src/pages/UserPanel/AddFarm.jsx index ee182ca..9b5d6a3 100644 --- a/Frontend/src/pages/UserPanel/AddFarm.jsx +++ b/Frontend/src/pages/UserPanel/AddFarm.jsx @@ -2,6 +2,7 @@ import React, { useState } from "react"; import { useNavigate } from "react-router-dom"; const AddFarm = () => { + const [isModalOpen, setIsModalOpen] = useState(false); const [farmName, setFarmName] = useState(""); const [location, setLocation] = useState(""); const [waterContent, setWaterContent] = useState(""); @@ -9,6 +10,7 @@ const AddFarm = () => { const [error, setError] = useState(null); const [success, setSuccess] = useState(false); const navigate = useNavigate(); + const handleSubmit = async (e) => { e.preventDefault(); const farmData = { @@ -33,7 +35,7 @@ const AddFarm = () => { setSuccess(true); setError(null); - // navigate to the dashboard: + setIsModalOpen(false); navigate("/dashboard"); } catch (err) { setError(err.message); @@ -42,89 +44,181 @@ const AddFarm = () => { }; return ( -
-

Add Farm

-
-
-
- - setFarmName(e.target.value)} - className="shadow-xs bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white" - required - /> + <> + + + {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! +

+ )} + +
+
-
- - setLocation(e.target.value)} - className="shadow-xs bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white" - required - /> -
-
- - setWaterContent(e.target.value)} - className="shadow-xs bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white" - required - /> -
-
- - setSoilType(e.target.value)} - className="shadow-xs bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white" - required - /> -
- - {error &&

{error}

} - {success && ( -

- Farm added successfully! -

- )} - -
-
+
+ )} + ); }; diff --git a/Frontend/src/pages/UserPanel/Dashboard.jsx b/Frontend/src/pages/UserPanel/Dashboard.jsx index 658881e..498f29c 100644 --- a/Frontend/src/pages/UserPanel/Dashboard.jsx +++ b/Frontend/src/pages/UserPanel/Dashboard.jsx @@ -3,6 +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"; const Dashboard = () => { const navigate = useNavigate(); @@ -10,18 +11,7 @@ const Dashboard = () => { return (
- +