Soit{' '}
{formatValue(
- (net.nodeValue / netHabituel.nodeValue) * 100,
- { displayedUnit: '%', precision: 0 }
+ engine.evaluate({
+ valeur: `${net} / ${netHabituel}`,
+ unité: '%',
+ arrondi: 'oui',
+ })
)}
{' '}
du revenu net
@@ -135,22 +119,20 @@ function ExplanationSection() {
},
],
[
- totalEntreprise,
- totalEntrepriseHabituel,
+ { dottedName: totalEntreprise },
+ { dottedName: totalEntrepriseHabituel },
{
- ...totalEntreprise,
+ dottedName: totalEntreprise,
additionalText: language === 'fr' && (
Soit{' '}
{formatValue(
- (totalEntreprise.nodeValue /
- totalEntrepriseHabituel.nodeValue) *
- 100,
- {
- displayedUnit: '%',
- precision: 0,
- }
+ engine.evaluate({
+ valeur: `${totalEntreprise} / ${totalEntrepriseHabituel}`,
+ unité: '%',
+ arrondi: 'oui',
+ })
)}
{' '}
du coût habituel
@@ -170,11 +152,10 @@ type ComparaisonTableProps = {
rows: [Array, ...Array]
}
-type Line = Array<
- EvaluatedRule & {
- additionalText?: React.ReactNode
- }
->
+type Line = Array<{
+ dottedName: DottedName
+ additionalText?: React.ReactNode
+}>
function ComparaisonTable({ rows: [head, ...body] }: ComparaisonTableProps) {
const columns = head.filter((x) => x !== '')
@@ -248,11 +229,12 @@ function ComparaisonTable({ rows: [head, ...body] }: ComparaisonTableProps) {
)
}
-function ValueWithLink(rule: EvaluatedRule) {
+function ValueWithLink({ dottedName }: { dottedName: DottedName }) {
const { language } = useTranslation().i18n
+ const engine = useEngine()
return (
-
- {formatValue(rule, {
+
+ {formatValue(engine.evaluate(dottedName), {
language,
displayedUnit: '€',
precision: 0,
@@ -261,7 +243,8 @@ function ValueWithLink(rule: EvaluatedRule) {
)
}
-function RowLabel(target: EvaluatedRule) {
+function RowLabel({ dottedName }: { dottedName: DottedName }) {
+ const target = useEngine().getRule(dottedName)
return (
<>
{' '}
@@ -272,7 +255,7 @@ function RowLabel(target: EvaluatedRule) {
>
{target.title}
- {target.résumé}
+ {target.rawNode.résumé}
>
)
}