"use client"; import { useState } from "react"; import { CalendarIcon } from "lucide-react"; import { format } from "date-fns"; import { useMutation, 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 } from "@/types"; export function AddInventoryItem() { const [date, setDate] = useState(); const [open, setOpen] = useState(false); const [itemName, setItemName] = useState(""); const [itemType, setItemType] = useState(""); const [itemCategory, setItemCategory] = useState(""); const [itemQuantity, setItemQuantity] = useState(0); const [itemUnit, setItemUnit] = useState(""); const queryClient = useQueryClient(); const mutation = useMutation({ mutationFn: (item: CreateInventoryItemInput) => createInventoryItem(item), onSuccess: () => { // Invalidate queries to refresh inventory data. queryClient.invalidateQueries({ queryKey: ["inventoryItems"] }); // Reset form fields and close dialog. setItemName(""); setItemType(""); setItemCategory(""); setItemQuantity(0); setItemUnit(""); setDate(undefined); setOpen(false); }, }); const handleSave = () => { // Basic validation (you can extend this as needed) if (!itemName || !itemType || !itemCategory || !itemUnit) return; mutation.mutate({ name: itemName, type: itemType, category: itemCategory, quantity: itemQuantity, unit: itemUnit, }); }; return ( Add Inventory Item Add a new plantation or fertilizer item to your inventory.
setItemName(e.target.value)} />
setItemCategory(e.target.value)} />
setItemQuantity(Number(e.target.value))} />
setItemUnit(e.target.value)} />
); }