diff --git a/App.tsx b/App.tsx index f7fb492..ca9ea31 100644 --- a/App.tsx +++ b/App.tsx @@ -45,6 +45,7 @@ const PERMANENT_DROPBOX_URL = "https://www.dropbox.com/scl/fi/b9zxn4z5i7sxwfakk5 const PERMANENT_ADS_URL = "https://www.dropbox.com/scl/fi/wng8tep7awhvzd65amwad/Ads-Weekly.xlsx?rlkey=kcmoq8dxgibsb2eb8zz47xvyo&st=z02m4w3g&dl=0"; const App: React.FC = () => { + console.log('[App] Rendering Function Start'); const [rawData, setRawData] = useState([]); const [adsData, setAdsData] = useState([]); const [trafficData, setTrafficData] = useState([]); diff --git a/components/DataGrid.tsx b/components/DataGrid.tsx index 24f793e..cb30d1b 100644 --- a/components/DataGrid.tsx +++ b/components/DataGrid.tsx @@ -963,7 +963,7 @@ const DataGrid: React.FC = ({ 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" diff --git a/components/MultiSelectDropdown.tsx b/components/MultiSelectDropdown.tsx index 66e55e2..3cdc6ba 100644 --- a/components/MultiSelectDropdown.tsx +++ b/components/MultiSelectDropdown.tsx @@ -60,8 +60,8 @@ const MultiSelectDropdown: React.FC = ({ 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 = ({ 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 = ({ 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 = ({ 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); diff --git a/components/WeeklyGrid.tsx b/components/WeeklyGrid.tsx index f1780ca..f8393fd 100644 --- a/components/WeeklyGrid.tsx +++ b/components/WeeklyGrid.tsx @@ -506,7 +506,7 @@ const WeeklyGrid: React.FC = ({ 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; });