"use client" import React, { useState } from 'react' import { Card } from '@/components/ui/card' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { Package, Plus, Search, Warehouse } from 'lucide-react' interface MyWarehouseItem { id: string sku: string name: string category: string quantity: number price: number location: string status: 'in_stock' | 'low_stock' | 'out_of_stock' lastUpdated: string } export function MyWarehouseTab() { const [searchTerm, setSearchTerm] = useState('') const [items, setItems] = useState([ { id: '1', sku: 'SKU-001', name: 'Товар 1', category: 'Электроника', quantity: 25, price: 1500, location: 'A-01-15', status: 'in_stock', lastUpdated: '2024-01-15' }, { id: '2', sku: 'SKU-002', name: 'Товар 2', category: 'Одежда', quantity: 5, price: 800, location: 'B-02-08', status: 'low_stock', lastUpdated: '2024-01-14' }, { id: '3', sku: 'SKU-003', name: 'Товар 3', category: 'Дом и сад', quantity: 0, price: 650, location: 'C-01-22', status: 'out_of_stock', lastUpdated: '2024-01-13' } ]) const filteredItems = items.filter(item => { if (!searchTerm) return true const search = searchTerm.toLowerCase() return ( item.name.toLowerCase().includes(search) || item.sku.toLowerCase().includes(search) || item.category.toLowerCase().includes(search) ) }) const getStatusColor = (status: string) => { switch (status) { case 'in_stock': return 'text-green-400' case 'low_stock': return 'text-yellow-400' case 'out_of_stock': return 'text-red-400' default: return 'text-white/60' } } const getStatusText = (status: string) => { switch (status) { case 'in_stock': return 'В наличии' case 'low_stock': return 'Мало' case 'out_of_stock': return 'Нет в наличии' default: return 'Неизвестно' } } const totalItems = items.length const totalQuantity = items.reduce((sum, item) => sum + item.quantity, 0) const totalValue = items.reduce((sum, item) => sum + (item.quantity * item.price), 0) const lowStockItems = items.filter(item => item.status === 'low_stock' || item.status === 'out_of_stock').length return (
{/* Статистика */}

Общее кол-во товаров

{totalItems}

Общее количество

{totalQuantity}

Общая стоимость

{totalValue.toLocaleString()} ₽

Требует внимания

{lowStockItems}

{/* Панель управления */}
setSearchTerm(e.target.value)} className="pl-10 bg-white/5 border-white/10 text-white placeholder:text-white/40" />
{/* Список товаров */}
{filteredItems.length === 0 ? (

{searchTerm ? 'Товары не найдены' : 'Ваш склад пуст'}

{searchTerm ? 'Попробуйте изменить параметры поиска' : 'Добавьте первый товар на склад'}

{!searchTerm && ( )}
) : (
{/* Заголовок таблицы */}
SKU
Название
Категория
Количество
Цена
Локация
Статус
{/* Строки товаров */}
{filteredItems.map((item) => (
{item.sku}
{item.name}
{item.category}
{item.quantity}
{item.price.toLocaleString()} ₽
{item.location}
{getStatusText(item.status)}
))}
)}
) }