"use client"; import { useState } from "react"; import { useQuery } from "@tanstack/react-query"; import { Calendar, ChevronDown, Plus, Search } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { Pagination, PaginationContent, PaginationItem, PaginationLink, } from "@/components/ui/pagination"; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover"; import { Calendar as CalendarComponent } from "@/components/ui/calendar"; import { Badge } from "@/components/ui/badge"; import { fetchInventoryItems } from "@/api/inventory"; import { AddInventoryItem } from "./add-inventory-item"; import { EditInventoryItem } from "./edit-inventory-item"; import { DeleteInventoryItem } from "./delete-inventory-item"; export default function InventoryPage() { const [date, setDate] = useState(); const [inventoryType, setInventoryType] = useState("all"); const [currentPage, setCurrentPage] = useState(1); // Fetch inventory items using react-query. const { data: inventoryItems, isLoading, isError, } = useQuery({ queryKey: ["inventoryItems"], queryFn: fetchInventoryItems, staleTime: 60 * 1000, }); if (isLoading) { return (
Loading...
); } if (isError || !inventoryItems) { return (
Error loading inventory data.
); } // Filter items based on selected type. const filteredItems = inventoryType === "all" ? inventoryItems : inventoryItems.filter((item) => inventoryType === "plantation" ? item.type === "Plantation" : item.type === "Fertilizer", ); return (

Inventory

{/* Filters and search */}
{/* Table */}

Table Fields

Name Category Type Quantity Last Updated Status Edit Delete {filteredItems.length === 0 ? ( No inventory items found ) : ( filteredItems.map((item) => ( {item.name} {item.category} {item.type} {item.quantity} {item.unit} {item.lastUpdated} {item.status} )) )}
); }