From ee608cd0420ba6918cf1800299f8df1a9ab01802 Mon Sep 17 00:00:00 2001 From: Christian Vidal Wolf Date: Mon, 9 Feb 2026 12:13:51 +0100 Subject: [PATCH] Optimize Grid header UI: reduce font sizes, padding, and improve alignment of metric columns --- components/DataGrid.tsx | 53 +++++++++++++++++++++----------------- components/ExcelFilter.tsx | 9 ++++--- 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/components/DataGrid.tsx b/components/DataGrid.tsx index a7c2dc3..865938c 100644 --- a/components/DataGrid.tsx +++ b/components/DataGrid.tsx @@ -703,8 +703,8 @@ const DataGrid: React.FC = ({ data, filters, hasCustomerFilter, a }; const getSortIcon = (key: string) => { - if (sortConfig.key !== key) return ; - return {sortConfig.direction === 'asc' ? '↑' : '↓'}; + if (sortConfig.key !== key) return ; + return {sortConfig.direction === 'asc' ? '↑' : '↓'}; }; const handleExport = () => { @@ -1256,11 +1256,11 @@ const DataGrid: React.FC = ({ data, filters, hasCustomerFilter, a return ( -
+
requestSort(dim)} > {label} {getSortIcon(dim)} @@ -1268,6 +1268,7 @@ const DataGrid: React.FC = ({ data, filters, hasCustomerFilter, a = ({ data, filters, hasCustomerFilter, a return ( {/* Sell Out & Units */} - -
-
requestSort(`total_sellOut_${year}`)} - > - Sell Out {year} {getSortIcon(`total_sellOut_${year}`)} -
+ +
String(r.totalsByYear[year]?.sellOut || 0)))).sort((a, b) => parseFloat(a as string) - parseFloat(b as string))} currentFilter={columnFilters[`total_sellOut_${year}`]} onFilterChange={handleColumnFilterChange} + icon={} /> +
requestSort(`total_sellOut_${year}`)} + > + {year} SO {getSortIcon(`total_sellOut_${year}`)} +
- -
-
requestSort(`total_units_${year}`)} - > - Units {year} {getSortIcon(`total_units_${year}`)} -
+ +
String(r.totalsByYear[year]?.units || 0)))).sort((a, b) => parseFloat(a as string) - parseFloat(b as string))} currentFilter={columnFilters[`total_units_${year}`]} onFilterChange={handleColumnFilterChange} + icon={} /> +
requestSort(`total_units_${year}`)} + > + {year} U {getSortIcon(`total_units_${year}`)} +
@@ -1370,7 +1375,7 @@ const DataGrid: React.FC = ({ data, filters, hasCustomerFilter, a {paginatedRows.map((row) => ( {effectiveDimensions.map(dim => ( - + {dim === 'title' ?
@@ -1435,10 +1440,10 @@ const DataGrid: React.FC = ({ data, filters, hasCustomerFilter, a return ( - + {data ? `€${data.sellOut.toLocaleString('de-DE', { maximumFractionDigits: 0 })}` : '-'} - + {data ? data.units.toLocaleString('de-DE') : '-'} diff --git a/components/ExcelFilter.tsx b/components/ExcelFilter.tsx index 381dd32..9de9785 100644 --- a/components/ExcelFilter.tsx +++ b/components/ExcelFilter.tsx @@ -33,7 +33,8 @@ export const ExcelFilter: React.FC = ({ uniqueValues, currentFilter, onFilterChange, - icon + icon, + buttonClassName }) => { const [isOpen, setIsOpen] = useState(false); const [operator, setOperator] = useState(currentFilter?.textFilter?.operator || ''); @@ -113,16 +114,16 @@ export const ExcelFilter: React.FC = ({ const hasActiveFilter = !!(currentFilter?.textFilter || currentFilter?.selectedValues); return ( -
+
{isOpen && (