From 966d253a7e5ae7f8f133d2de6c5ed7e408c5ddb3 Mon Sep 17 00:00:00 2001 From: DaX Date: Mon, 30 Jun 2025 22:48:28 +0200 Subject: [PATCH] Hide filaments with zero inventory from table MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added filter to exclude filaments with kolicina === 0 - Updated filter options to only show values from filaments with inventory - This removes clutter and makes the table show only available products 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- src/components/FilamentTableV2.tsx | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/components/FilamentTableV2.tsx b/src/components/FilamentTableV2.tsx index 19db071..20085b1 100644 --- a/src/components/FilamentTableV2.tsx +++ b/src/components/FilamentTableV2.tsx @@ -38,16 +38,24 @@ const FilamentTableV2: React.FC = ({ filaments }) => { return filaments; }, [filaments]); - // Get unique values for filters - const uniqueValues = useMemo(() => ({ - materials: [...new Set(normalizedFilaments.map(f => f.tip))].sort(), - finishes: [...new Set(normalizedFilaments.map(f => f.finish))].sort(), - colors: availableColors ? availableColors.map(c => c.name) : [...new Set(normalizedFilaments.map(f => f.boja))].sort() - }), [normalizedFilaments, availableColors]); + // Get unique values for filters (only from filaments with inventory) + const uniqueValues = useMemo(() => { + const filamentsWithInventory = normalizedFilaments.filter(f => f.kolicina > 0); + return { + materials: [...new Set(filamentsWithInventory.map(f => f.tip))].sort(), + finishes: [...new Set(filamentsWithInventory.map(f => f.finish))].sort(), + colors: [...new Set(filamentsWithInventory.map(f => f.boja))].sort() + }; + }, [normalizedFilaments]); // Filter and sort filaments const filteredAndSortedFilaments = useMemo(() => { let filtered = normalizedFilaments.filter(filament => { + // First, filter out filaments with zero inventory + if (filament.kolicina === 0) { + return false; + } + // Search filter const searchLower = searchTerm.toLowerCase(); const matchesSearch =