"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { ArrowLeft, MapPin, Plus, Sprout } from "lucide-react"; import { Card, CardContent, CardHeader } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Separator } from "@/components/ui/separator"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from "@/components/ui/dialog"; import { AddCropForm } from "./add-crop-form"; import { CropCard } from "./crop-card"; import { Farm, Crop } from "@/types"; import React from "react"; const crops: Crop[] = [ { id: "crop1", farmId: "1", name: "Monthong Durian", plantedDate: new Date("2023-03-15"), status: "growing", }, { id: "crop2", farmId: "1", name: "Chanee Durian", plantedDate: new Date("2023-02-20"), status: "planned", }, { id: "crop3", farmId: "2", name: "Kradum Durian", plantedDate: new Date("2022-11-05"), status: "harvested", }, ]; const farms: Farm[] = [ { id: "1", name: "Green Valley Farm", location: "Bangkok", type: "durian", createdAt: new Date("2023-01-01"), }, { id: "2", name: "Golden Farm", location: "Chiang Mai", type: "mango", createdAt: new Date("2022-12-01"), }, ]; const getFarmById = (id: string): Farm | undefined => { return farms.find((farm) => farm.id === id); }; const getCropsByFarmId = (farmId: string): Crop[] => crops.filter((crop) => crop.farmId === farmId); export default function FarmDetailPage({ params }: { params: Promise<{ farmId: string }> }) { const { farmId } = React.use(params); const router = useRouter(); const [farm] = useState(getFarmById(farmId)); const [crops, setCrops] = useState(getCropsByFarmId(farmId)); const [isDialogOpen, setIsDialogOpen] = useState(false); const handleAddCrop = async (data: Partial) => { const newCrop: Crop = { id: Math.random().toString(36).substr(2, 9), farmId: farm!.id, name: data.name!, plantedDate: data.plantedDate!, status: data.status!, }; setCrops((prevCrops) => [...prevCrops, newCrop]); setIsDialogOpen(false); }; return (

{farm?.name ?? "Unknown Farm"}

{farm?.location ?? "Unknown Location"}
Farm Type: {farm?.type ?? "Unknown Type"}
Created: {farm?.createdAt?.toLocaleDateString() ?? "Unknown Date"}
Total Crops: {crops.length}

Crops

setIsDialogOpen(true)}>

Add Crop

Plant a new crop

Add New Crop Fill out the form to add a new crop to your farm. setIsDialogOpen(false)} />
{crops.map((crop) => ( ))}
); }