diff --git a/src/components/CosmeticItemsView.tsx b/src/components/CosmeticItemsView.tsx index 96bcd9a..79f8578 100644 --- a/src/components/CosmeticItemsView.tsx +++ b/src/components/CosmeticItemsView.tsx @@ -53,7 +53,11 @@ export function CosmeticItemsView({ data, headers, onSaveRow, onCaptureState, ro }, [data, COLUMNS]); const getUniqueValues = (col: number): string[] => - Array.from(columnUniqueValues[col] as Set ?? []).sort(); + Array.from(columnUniqueValues[col] as Set ?? []).sort((a, b) => { + const na = parseFloat(a), nb = parseFloat(b); + if (!isNaN(na) && !isNaN(nb)) return na - nb; + return a.localeCompare(b); + }); const filteredData = useMemo(() => { let result = data.map((row, index) => ({ row, index })); @@ -78,6 +82,8 @@ 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 allVals = getUniqueValues(colNum); + if (filterValues.length >= allVals.length) return; result = result.filter(({ row }) => { const val = String(row[colNum] ?? ''); return filterValues.includes(val);