"use client"; import { useState } from "react"; import { CalendarIcon } from "lucide-react"; import { format } from "date-fns"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { Button } from "@/components/ui/button"; import { Calendar } from "@/components/ui/calendar"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover"; import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { cn } from "@/lib/utils"; import { createInventoryItem } from "@/api/inventory"; import type { CreateInventoryItemInput, InventoryItemStatus, InventoryItemCategory, HarvestUnits, } from "@/types"; interface AddInventoryItemProps { inventoryCategory: InventoryItemCategory[]; inventoryStatus: InventoryItemStatus[]; harvestUnits: HarvestUnits[]; } export function AddInventoryItem({ inventoryCategory, inventoryStatus, harvestUnits, }: AddInventoryItemProps) { const [date, setDate] = useState(); const [open, setOpen] = useState(false); const [itemName, setItemName] = useState(""); const [itemCategory, setItemCategory] = useState(""); const [itemQuantity, setItemQuantity] = useState(0); const [itemUnit, setItemUnit] = useState(""); const [itemStatus, setItemStatus] = useState(""); // const { // data: inventoryItems = [], // isLoading: isItemLoading, // isError: isItemError, // } = useQuery({ // queryKey: ["inventoryItems"], // queryFn: fetchInventoryItems, // staleTime: 60 * 1000, // }); const mutation = useMutation({ mutationFn: (item: CreateInventoryItemInput) => createInventoryItem(item), onSuccess: () => { // Invalidate queries to refresh inventory data. const queryClient = useQueryClient(); queryClient.invalidateQueries({ queryKey: ["inventoryItems"] }); // Reset form fields and close dialog. setItemName(""); setItemCategory(""); setItemQuantity(0); setItemUnit(""); setDate(undefined); setOpen(false); }, }); const handleSave = () => { // Basic validation (you can extend this as needed) if (!itemName || !itemCategory || !itemUnit) return; }; return ( Add Inventory Item Add a new plantation or fertilizer item to your inventory.
setItemName(e.target.value)} />
setItemQuantity(Number(e.target.value))} />
); }