import React, { useState, useEffect } from "react"; import Loader from "../../../components/Loader"; import { Link, useNavigate } from "react-router-dom"; import { useGetCropsByFarmQuery } from "../../../store/api/cropApi"; const CropTable = ({ farmId }) => { const [crops, setCrops] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const navigate = useNavigate(); const { data: cropsData, error: cropsError, isLoading: cropsLoading, } = useGetCropsByFarmQuery(farmId); 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(() => { if (cropsData) { setCrops(cropsData); setLoading(false); } }, [cropsData]); 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) => ( { navigate(`/user/dashboard/croppage/${crop._id}`); }} > ))}
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;