"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 { CropDialog } from "./crop-dialog"; import { CropCard } from "./crop-card"; import { Farm, Crop } from "@/types"; import React from "react"; const crops: Crop[] = [ { id: "1", farmId: "1", name: "Monthong Durian", plantedDate: new Date("2023-03-15"), status: "growing", }, { id: "2", farmId: "1", name: "Chanee Durian", plantedDate: new Date("2023-02-20"), status: "planned", }, { id: "3", 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]); // When the crop gets added, close the dialog 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

{/* Clickable "Add Crop" Card */} setIsDialogOpen(true)}>

Add Crop

Plant a new crop

{/* New Crop Dialog */} {crops.map((crop) => ( { router.push(`/farms/${crop.farmId}/crops/${crop.id}`); }} /> ))}
); }