diff --git a/src/components/CosmeticItemsView.tsx b/src/components/CosmeticItemsView.tsx index 243b1bf..e6428c9 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] ?? '').trim()); + result[col].add(String(row[col] ?? '').replace(/\s+/g, ' ').trim()); }); }); @@ -82,11 +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 filterSet = new Set(filterValues.map(f => f.trim())); - result = result.filter(({ row }) => { - const val = String(row[colNum] ?? '').trim(); - return filterSet.has(val); - }); + 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]))); }); // Sort diff --git a/src/types.ts b/src/types.ts index 19fffd3..909570c 100644 --- a/src/types.ts +++ b/src/types.ts @@ -82,7 +82,7 @@ export const COLUMN_PATTERNS: Record = { ITEM_TO_LOGISTIC: ['item', 'logistic'], ANNA_CHECK: ['anna', 'check'], ANNA_NOTE: ['anna', 'note'], - CPNP_NO: ['cpnp'], + CPNP_NO: [], // Virtual/Extra columns stay hardcoded and are NOT auto-detected from headers // to prevent internal data from being shifted or overwritten by Excel column shifts. }; @@ -92,7 +92,8 @@ export function resolveColumnIndices(headers: string[]): typeof COLUMNS { const h = headers.map(val => String(val || '').toLowerCase()); Object.entries(COLUMN_PATTERNS).forEach(([key, patterns]) => { - const idx = h.findIndex(headerText => + if (patterns.length === 0) return; + const idx = h.findIndex(headerText => patterns.every(p => headerText.includes(p.toLowerCase())) ); if (idx >= 0) {