fix: exhaustive zero-spread safety audit and render logging

This commit is contained in:
Christian Vidal Wolf
2026-04-16 12:18:52 +02:00
parent fbb6c75197
commit 73625526ed
4 changed files with 9 additions and 8 deletions
+1 -1
View File
@@ -963,7 +963,7 @@ const DataGrid: React.FC<DataGridProps> = ({ data, filters, hasCustomerFilter, a
if (selectedDimensions.includes(dim.value)) {
setSelectedDimensions(selectedDimensions.filter(d => d !== dim.value));
} else {
setSelectedDimensions([...selectedDimensions, dim.value]);
setSelectedDimensions(selectedDimensions.concat([dim.value]));
}
}}
className="w-4.5 h-4.5 rounded-md border-slate-600 bg-slate-800 text-indigo-500 focus:ring-indigo-500/50 focus:ring-offset-0 transition-all border-2 cursor-pointer"
+6 -6
View File
@@ -60,8 +60,8 @@ const MultiSelectDropdown: React.FC<MultiSelectDropdownProps> = ({ label, select
const toggleOption = (option: string) => {
const next = localSelected.includes(option)
? localSelected.filter((item) => item !== option)
: [...localSelected, option];
? localSelected.filter(item => item !== option)
: localSelected.concat([option]);
setLocalSelected(next);
onChange(next);
};
@@ -72,9 +72,9 @@ const MultiSelectDropdown: React.FC<MultiSelectDropdownProps> = ({ label, select
const allFilteredSelected = filteredOptions.every(opt => localSelected.includes(opt));
next = allFilteredSelected
? localSelected.filter(item => !filteredOptions.includes(item))
: Array.from(new Set([...localSelected, ...filteredOptions]));
: Array.from(new Set(localSelected.slice().concat(filteredOptions)));
} else {
next = localSelected.length === options.length ? [] : [...options];
next = localSelected.length === options.length ? [] : options.slice();
}
setLocalSelected(next);
onChange(next);
@@ -190,7 +190,7 @@ const MultiSelectDropdown: React.FC<MultiSelectDropdownProps> = ({ label, select
termsLower.some(t => opt.toLowerCase() === t || opt.toLowerCase().includes(t))
);
if (matched.length > 0) {
const next = Array.from(new Set([...localSelected, ...matched]));
const next = Array.from(new Set(localSelected.slice().concat(matched)));
setLocalSelected(next);
onChange(next);
}
@@ -202,7 +202,7 @@ const MultiSelectDropdown: React.FC<MultiSelectDropdownProps> = ({ label, select
if (allSelected) {
next = localSelected.filter(item => !filteredOptions.includes(item));
} else {
next = Array.from(new Set([...localSelected, ...filteredOptions]));
next = Array.from(new Set(localSelected.slice().concat(filteredOptions)));
}
setLocalSelected(next);
onChange(next);
+1 -1
View File
@@ -506,7 +506,7 @@ const WeeklyGrid: React.FC<WeeklyGridProps & { top50Mode: 'eu' | 'uk' }> = ({
const filtered = prev.filter(f => !(f.week === week && f.metric === metric));
// Add new filter if provided
if (filter) {
return [...filtered, filter];
return filtered.concat([filter]);
}
return filtered;
});