import React, { useState, useMemo } from 'react'; import { LayoutGrid, List } from 'lucide-react'; import { useToast } from '@/components/feedback/ToastProvider'; import { GearViewHeader, GearFilters, GearInventoryGrid, GearDetailModal, mockGearInventory, type GearViewMode, type GearFilterValue, } from '@/features/inventory/components/gear'; import { cn } from '@/lib/utils'; export const GearView: React.FC = () => { const { addToast } = useToast(); const [selectedItem, setSelectedItem] = useState<(typeof mockGearInventory)[0] | null>(null); const [filter, setFilter] = useState('All'); const [search, setSearch] = useState(''); const [viewMode, setViewMode] = useState('grid'); const filteredInventory = useMemo(() => { return mockGearInventory.filter((item) => { const matchesFilter = filter === 'All' || item.category === filter || item.status === filter; const matchesSearch = item.name.toLowerCase().includes(search.toLowerCase()) || item.brand.toLowerCase().includes(search.toLowerCase()); return matchesFilter && matchesSearch; }); }, [filter, search]); const handleListOnMarketplace = (item: (typeof mockGearInventory)[0]) => { addToast(`Draft listing created for ${item.brand} ${item.name}`, 'success'); setSelectedItem(null); }; return (
addToast('Exporting Inventory CSV...')} onRegister={() => addToast('Opens Registration Form')} /> {/* View mode toggle — smooth grid/list transition (documented in GearInventoryGrid stories) */}
View
addToast('Opens Registration Form')} /> {selectedItem && ( setSelectedItem(null)} onSellOnMarketplace={handleListOnMarketplace} onLogMaintenance={() => addToast('Maintenance Log Updated')} onContactSupport={(item) => addToast(`Contacting ${item.supportContact}`)} onUploadDocument={() => addToast('Upload document')} /> )}
); };