import React, { useState, useEffect } from "react"; import Loader from "../../../components/Loader"; const CropTable = ({ farmId }) => { const [crops, setCrops] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const handleRemoveCrop = async (cropId) => { try { await fetch(`http://localhost:8000/api/v1/crop/${cropId}`, { method: "DELETE", credentials: "include", headers: { "Content-Type": "application/json", }, }); setCrops(crops.filter((crop) => crop._id !== cropId)); } catch (err) { setError(err.message); } }; useEffect(() => { const fetchCrops = async () => { try { const response = await fetch( `http://localhost:8000/api/v1/crop/farm/${farmId}`, { credentials: "include", headers: { "Content-Type": "application/json", }, } ); if (!response.ok) { throw new Error("Failed to fetch crops"); } const data = await response.json(); setCrops(data || []); } catch (err) { setError(err.message); } finally { setLoading(false); } }; fetchCrops(); }, []); if (loading) { return ; } if (error) { return (

Error: {error}

); } if (crops.length === 0) { return (

No crops found

Start by adding some crops to your farm

); } return (

Crops Table

{crops.map((crop) => ( ))}
Image Name Growth Stage Health Status Harvest Date Remove Crop
{crop.image ? ( {crop.name} ) : (
No image
)}
{crop.name}
{crop.growthStage}
{crop.healthStatus}
{new Date(crop.harvestDate).toLocaleDateString()}
); }; export default CropTable;