diff --git a/Frontend/.env b/Frontend/.env new file mode 100644 index 0000000..93fa24a --- /dev/null +++ b/Frontend/.env @@ -0,0 +1 @@ +VITE_API_URL=http://localhost:8000 \ No newline at end of file diff --git a/Frontend/src/main.jsx b/Frontend/src/main.jsx index cc76cad..5bec82b 100644 --- a/Frontend/src/main.jsx +++ b/Frontend/src/main.jsx @@ -27,6 +27,7 @@ import AddFarm from "./pages/UserPanel/Farm/AddFarm.jsx"; import UpdateFarm from "./pages/UserPanel/Farm/UpdateForm.jsx"; import FarmPage from "./pages/UserPanel/Farm/FarmPage.jsx"; import Ai from "./pages/UserPanel/Ai.jsx"; +import CropPage from "./pages/UserPanel/Farm/CropPage.jsx"; createRoot(document.getElementById("root")).render( @@ -61,6 +62,7 @@ createRoot(document.getElementById("root")).render( } /> } /> } /> + } /> diff --git a/Frontend/src/pages/UserPanel/Farm/CropPage.jsx b/Frontend/src/pages/UserPanel/Farm/CropPage.jsx new file mode 100644 index 0000000..713c50d --- /dev/null +++ b/Frontend/src/pages/UserPanel/Farm/CropPage.jsx @@ -0,0 +1,105 @@ +import React, { useEffect, useState } from "react"; +import { useParams, useNavigate } from "react-router-dom"; +import Farm from "./Farm"; +import CropTable from "./CropTable"; +import Transactions from "./Transactions"; +import CreateTransactions from "./CreateTransactions"; +import Loader from "../../../components/Loader"; +import AddTransaction from "./AddTransactions"; +import FinanceSummary from "./FinanceSummary"; +import CreateTask from "./CreateTask"; +import DisplayTast from "./DisplayTask"; +import { useGetFarmByIdQuery } from "../../../store/api/farmApi"; +import { useGetCropByIdQuery } from "../../../store/api/cropApi"; + +export default function CropPage() { + const { cropId } = useParams(); + const navigate = useNavigate(); + const [farmData, setFarmData] = useState(""); + const [loading, setLoading] = useState(true); + + const farmId = cropId; + + console.log("Farm id is : ", farmId); + + const { data: farm, error, isLoading } = useGetFarmByIdQuery(farmId); + const { + data: crop, + error: cropError, + isLoading: cropLoading, + } = useGetCropByIdQuery(cropId); + + useEffect(() => { + if (!isLoading && !error && farm) { + setFarmData(farm); + setLoading(false); + } + }, [farm]); + + console.log("djoejwrru9", crop); + + return ( +
+ {/* Header Section */} +
+
+

{crop?.name}

+
+ +
+
+
+ + {/* Crop Table Section */} +
+ +
+ + {/* Create Transactions Section */} +
+
+ +
+
+ + {/* Transactions Table Section */} +
+ +
+ + {/* Add Transaction Modal Section */} +
+
+ +
+
+ + {/* Finance Summary Section */} +
+
+ +
+
+ + {/* Create Task Section */} +
+
+ +
+
+ + {/* Display Task Section */} +
+
+ +
+
+
+ ); +} diff --git a/Frontend/src/pages/UserPanel/Farm/FarmPage.jsx b/Frontend/src/pages/UserPanel/Farm/FarmPage.jsx index 22dab21..84151a6 100644 --- a/Frontend/src/pages/UserPanel/Farm/FarmPage.jsx +++ b/Frontend/src/pages/UserPanel/Farm/FarmPage.jsx @@ -67,6 +67,8 @@ export default function FarmPage() { // ); // } + console.log("Backend URI ", import.meta.env.VITE_API_URL); + return (
{/* Header Section */} diff --git a/Frontend/src/store/api/cropApi.js b/Frontend/src/store/api/cropApi.js index 1b59fb3..1853be3 100644 --- a/Frontend/src/store/api/cropApi.js +++ b/Frontend/src/store/api/cropApi.js @@ -1,9 +1,11 @@ import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"; +const API_URI = import.meta.env.VITE_API_URL; + export const cropApi = createApi({ reducerPath: "cropApi", baseQuery: fetchBaseQuery({ - baseUrl: "http://localhost:8000/api/v1/crop", + baseUrl: `${API_URI}/api/v1/crop`, credentials: "include", // Ensures credentials (cookies, tokens) are included }), tagTypes: ["Crops"], diff --git a/Frontend/src/store/api/farmApi.js b/Frontend/src/store/api/farmApi.js index d7773b4..62c11e0 100644 --- a/Frontend/src/store/api/farmApi.js +++ b/Frontend/src/store/api/farmApi.js @@ -1,9 +1,11 @@ import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"; +const API_URI = import.meta.env.VITE_API_URL; + export const farmApi = createApi({ reducerPath: "farmApi", baseQuery: fetchBaseQuery({ - baseUrl: "http://localhost:8000/api/v1/farm", + baseUrl: `${API_URI}/api/v1/farm`, credentials: "include", }), tagTypes: ["Farms"], diff --git a/Frontend/src/store/api/financeApi.js b/Frontend/src/store/api/financeApi.js index 01cf63e..743406b 100644 --- a/Frontend/src/store/api/financeApi.js +++ b/Frontend/src/store/api/financeApi.js @@ -1,9 +1,11 @@ import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"; +const API_URI = import.meta.env.VITE_API_URL; + export const financeApi = createApi({ reducerPath: "financeApi", baseQuery: fetchBaseQuery({ - baseUrl: "http://localhost:8000/api/v1/finance", + baseUrl: `${API_URI}/api/v1/finance`, credentials: "include", }), tagTypes: ["Finance", "Transactions"], diff --git a/Frontend/src/store/api/taskApi.js b/Frontend/src/store/api/taskApi.js index a988627..6d3d919 100644 --- a/Frontend/src/store/api/taskApi.js +++ b/Frontend/src/store/api/taskApi.js @@ -1,9 +1,10 @@ import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"; +const API_URI = import.meta.env.VITE_API_URL; export const taskApi = createApi({ reducerPath: "taskApi", baseQuery: fetchBaseQuery({ - baseUrl: "http://localhost:8000/api/v1/task", + baseUrl: `${API_URI}/api/v1/task`, credentials: "include", }), tagTypes: ["Tasks"],