From 4ec7955b257e330ac89fcfca1a297906b11325d0 Mon Sep 17 00:00:00 2001 From: Shinuwa Date: Sun, 9 Aug 2026 17:37:05 +0200 Subject: [PATCH] Polish calculator large number display --- .../toolboxes/modules/CalculatorModule.jsx | 23 ++++++++-- .../modules/EquipmentPlannerModule.jsx | 7 ++- website/src/styles/_toolboxes.scss | 45 +++++++++++++++++++ 3 files changed, 70 insertions(+), 5 deletions(-) diff --git a/website/src/features/toolboxes/modules/CalculatorModule.jsx b/website/src/features/toolboxes/modules/CalculatorModule.jsx index f9bca2a..9149e8a 100644 --- a/website/src/features/toolboxes/modules/CalculatorModule.jsx +++ b/website/src/features/toolboxes/modules/CalculatorModule.jsx @@ -22,6 +22,18 @@ function formatResult(value) { return Number.parseFloat(value.toFixed(6)).toString(); } +function formatDisplayResult(value) { + if (!Number.isFinite(value)) return ""; + return new Intl.NumberFormat("fr-FR", { maximumFractionDigits: 6 }).format(Number.parseFloat(value.toFixed(6))); +} + +function getResultLengthClass(value) { + const length = formatResult(value).replace(/[^\d]/g, "").length; + if (length >= 16) return "is-compact"; + if (length >= 12) return "is-long"; + return ""; +} + function getChildren(entries, parentId) { return entries.filter((entry) => (entry.parentId || "") === parentId); } @@ -151,9 +163,9 @@ export function CalculatorModule({ toolboxId, moduleId, context, editing }) { {textContent.expressionLabel || "Calcul"} setExpression(event.target.value)} placeholder={textContent.expressionPlaceholder || "10*10"} inputMode="decimal" /> -
+
{textContent.resultLabel || "Résultat"} - {result == null ? "-" : formatResult(result)} + {result == null ? "-" : formatDisplayResult(result)}