feat: Add European number formatting with dots as thousand separators

- Updated all toLocaleString() calls to use 'de-DE' locale
- Applied to DataGrid, Dashboard, AdvertisingDashboard, TopMovers, geminiService
- Numbers now display as €1.234 instead of €1,234
- Fixed spread operator syntax errors introduced during bulk replacement
- Verified across all tabs: Dashboard, Grid, Advertising
This commit is contained in:
Christian Vidal Wolf
2026-01-20 12:14:13 +01:00
parent 73519791b9
commit 98aba3e36b
5 changed files with 499 additions and 499 deletions
+4 -4
View File
@@ -1,6 +1,6 @@
import React, { useState, useMemo } from 'react';
import { SalesRecord } from '../types';
import { SalesRecord } from './types';
import { DownloadIcon } from './Icons';
interface TopMoversProps {
@@ -30,8 +30,8 @@ const MoversTable: React.FC<{
}> = ({ title, data, metric, previousYear, currentYear, type }) => {
const formatValue = (val: number) => {
if (metric === 'sellOut') return `${val.toLocaleString(undefined, { maximumFractionDigits: 0 })}`;
return val.toLocaleString();
if (metric === 'sellOut') return `${val.toLocaleString('de-DE', { maximumFractionDigits: 0 })}`;
return val.toLocaleString('de-DE');
};
const handleExport = () => {
@@ -39,7 +39,7 @@ const MoversTable: React.FC<{
// Helper to force Comma as thousands separator (US Locale)
const formatForCSV = (val: number) => {
return val.toLocaleString('en-US', {
return val.toLocaleString('de-DE', {
useGrouping: true,
minimumFractionDigits: metric === 'sellOut' ? 2 : 0,
maximumFractionDigits: metric === 'sellOut' ? 2 : 0,