From 60224931bc5bf2cee148864e3246fcda956f79a3 Mon Sep 17 00:00:00 2001 From: Christian Vidal Wolf Date: Tue, 12 May 2026 12:12:49 +0200 Subject: [PATCH] fix: normalize filter comparison with trim and exact set match in Cosmetic Items tab Co-Authored-By: claude-flow --- src/components/CosmeticItemsView.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/components/CosmeticItemsView.tsx b/src/components/CosmeticItemsView.tsx index 79f8578..8f30150 100644 --- a/src/components/CosmeticItemsView.tsx +++ b/src/components/CosmeticItemsView.tsx @@ -45,7 +45,7 @@ export function CosmeticItemsView({ data, headers, onSaveRow, onCaptureState, ro if (!COSMETIC_LINES.some(l => lineVal === l)) return; columns.forEach(({ col }) => { - result[col].add(String(row[col] ?? '')); + result[col].add(String(row[col] ?? '').trim()); }); }); @@ -83,10 +83,12 @@ export function CosmeticItemsView({ data, headers, onSaveRow, onCaptureState, ro if (!filterValues || filterValues.length === 0) return; const colNum = parseInt(colIdx); const allVals = getUniqueValues(colNum); - if (filterValues.length >= allVals.length) return; + // If all known values selected, no filtering needed + const filterSet = new Set(filterValues); + if (filterSet.size >= allVals.length && allVals.every(v => filterSet.has(v))) return; result = result.filter(({ row }) => { - const val = String(row[colNum] ?? ''); - return filterValues.includes(val); + const val = String(row[colNum] ?? '').trim(); + return filterValues.some(f => f.trim() === val); }); });