"use client"; import React, { useState, useEffect } from "react"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Button } from "@/components/ui/button"; import { Alert, AlertDescription } from "@/components/ui/alert"; import { Sidebar } from "@/components/dashboard/sidebar"; import { useSidebar } from "@/hooks/useSidebar"; import { useSearchParams } from "next/navigation"; import { useQuery } from "@apollo/client"; import { Plus, Package, Wrench, ChevronDown, AlertTriangle, } from "lucide-react"; import { GET_PENDING_SUPPLIES_COUNT } from "@/graphql/queries"; import { FulfillmentGoodsTab } from "./fulfillment-supplies/fulfillment-goods-tab"; import { RealSupplyOrdersTab } from "./fulfillment-supplies/real-supply-orders-tab"; import { SellerSupplyOrdersTab } from "./fulfillment-supplies/seller-supply-orders-tab"; import { AllSuppliesTab } from "./fulfillment-supplies/all-supplies-tab"; import { useAuth } from "@/hooks/useAuth"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; export function SuppliesDashboard() { const { getSidebarMargin } = useSidebar(); const searchParams = useSearchParams(); const [activeTab, setActiveTab] = useState("all"); const { user } = useAuth(); // Загружаем счетчик поставок, требующих одобрения const { data: pendingData } = useQuery(GET_PENDING_SUPPLIES_COUNT, { pollInterval: 30000, // Обновляем каждые 30 секунд fetchPolicy: "cache-first", errorPolicy: "ignore", }); const pendingCount = pendingData?.pendingSuppliesCount; const hasPendingItems = pendingCount && pendingCount.total > 0; // Автоматически открываем нужную вкладку при загрузке useEffect(() => { const tab = searchParams.get("tab"); if (tab === "consumables") { setActiveTab("supplies"); } else if (tab === "goods") { setActiveTab("goods"); } }, [searchParams]); // Определяем тип организации для выбора правильного компонента const isWholesale = user?.organization?.type === "WHOLESALE"; return (