"use client"; import { plans_api } from "@/features/plans/lib/api"; import type { Product } from "@/features/plans/lib/data"; import { API_URLS } from "@/shared/config/api/URLs"; import formatPrice from "@/shared/lib/formatPrice"; import { Button } from "@/shared/ui/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/shared/ui/select"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/shared/ui/table"; import { useQuery } from "@tanstack/react-query"; import clsx from "clsx"; import { Edit, Eye, Loader2, Trash } from "lucide-react"; import type { Dispatch, SetStateAction } from "react"; interface Props { products: Product[] | []; isLoading: boolean; isFetching: boolean; isError: boolean; setEditingProduct: Dispatch>; setDetailOpen: Dispatch>; setDialogOpen: Dispatch>; handleDelete: (product: Product) => void; } const ProductTable = ({ products, isLoading, isFetching, isError, setEditingProduct, setDetailOpen, setDialogOpen, handleDelete, }: Props) => { const { data } = useQuery({ queryKey: ["categories"], queryFn: () => { return plans_api.categories({ page: 1, page_size: 1000 }); }, select(data) { return data.data.results; }, }); const { data: unityData } = useQuery({ queryKey: ["unity"], queryFn: () => { return plans_api.unity({ page: 1, page_size: 1000 }); }, select(data) { return data.data.results; }, }); if (isLoading || isFetching) { return (
); } if (isError) { return (
Maʼlumotlarni yuklashda xatolik yuz berdi
); } return (
ID Rasmi Nomi (UZ) Nomi (RU) Tavsif (UZ) Tavsif (RU) Kategoriya Birligi Brendi Narx Status Harakatlar {products.map((product, index) => { const cat = data?.find((c) => c.id === product.category); const unity = unityData?.find((u) => u.id === product.unity); return ( {index + 1} {product.name_uz} {product.name_uz} {product.name_ru} {product.description_uz.slice(0, 15)}... {product.description_ru.slice(0, 15)}... {cat?.name_uz} {unity?.name_uz} {product.brand} {formatPrice(product.price, true)} ); })} {products.length === 0 && ( Mahsulotlar topilmadi )}
); }; export default ProductTable;