diff --git a/src/components/CosmeticItemsView.tsx b/src/components/CosmeticItemsView.tsx
index e6428c9..0f41331 100644
--- a/src/components/CosmeticItemsView.tsx
+++ b/src/components/CosmeticItemsView.tsx
@@ -82,6 +82,9 @@ export function CosmeticItemsView({ data, headers, onSaveRow, onCaptureState, ro
(Object.entries(columnFilters) as [string, string[]][]).forEach(([colIdx, filterValues]) => {
if (!filterValues || filterValues.length === 0) return;
const colNum = parseInt(colIdx);
+ const knownCount = columnUniqueValues[colNum]?.size ?? 0;
+ // All known values selected → no filtering needed
+ if (filterValues.length >= knownCount) return;
const normalize = (v: any) => String(v ?? '').replace(/\s+/g, ' ').trim();
const filterSet = new Set(filterValues.map(normalize));
result = result.filter(({ row }) => filterSet.has(normalize(row[colNum])));
@@ -102,7 +105,7 @@ export function CosmeticItemsView({ data, headers, onSaveRow, onCaptureState, ro
}
return result;
- }, [data, search, sortCol, sortDesc, columnFilters, COLUMNS]);
+ }, [data, search, sortCol, sortDesc, columnFilters, COLUMNS, columnUniqueValues]);
const paginatedData = useMemo(() => {
const start = (page - 1) * pageSize;
@@ -292,18 +295,29 @@ export function CosmeticItemsView({ data, headers, onSaveRow, onCaptureState, ro
- ) : (
-
- )}
+ ) : (() => {
+ const cpnpVal = String(row[COLUMNS.CPNP_NO] ?? '').trim();
+ return cpnpVal ? (
+
+ ) : (
+
+ );
+ })()}
);