diff --git a/site/source/pages/simulateurs/reduction-generale/RéductionGénérale.tsx b/site/source/pages/simulateurs/reduction-generale/RéductionGénérale.tsx index bf5b5d445..e50f034f6 100644 --- a/site/source/pages/simulateurs/reduction-generale/RéductionGénérale.tsx +++ b/site/source/pages/simulateurs/reduction-generale/RéductionGénérale.tsx @@ -23,6 +23,7 @@ import EffectifSwitch from './components/EffectifSwitch' import RéductionGénéraleMoisParMois from './RéductionGénéraleMoisParMois' import { getInitialRéductionGénéraleMoisParMois, + getRéductionGénéraleFromRémunération, MonthState, reevaluateRéductionGénéraleMoisParMois, rémunérationBruteDottedName, @@ -114,10 +115,31 @@ function RéductionGénéraleSimulationGoals({ ) }, [engine, situation]) + const onRémunérationChange = ( + monthIndex: number, + rémunérationBrute: number + ) => { + setData((previousData) => { + const updatedData = [...previousData] + updatedData[monthIndex] = { + rémunérationBrute, + réductionGénérale: getRéductionGénéraleFromRémunération( + engine, + rémunérationBrute + ), + } + + return updatedData + }) + } + return ( {monthByMonth ? ( - + ) : ( <> void }) { const engine = useEngine() const { t, i18n } = useTranslation() @@ -33,7 +40,12 @@ export default function RéductionGénéraleMoisParMois({ t('décembre'), ] - const onRémunérationChange = () => {} + const onRémunérationChange = ( + monthIndex: number, + rémunérationBrute: RémunérationBruteInput + ) => { + onChange(monthIndex, rémunérationBrute.valeur) + } // TODO: enlever les 4 premières props après résolution de #3123 const ruleInputProps = { @@ -87,7 +99,12 @@ export default function RéductionGénéraleMoisParMois({ )}-${monthIndex}`} aria-label={`${engine.getRule(rémunérationBruteDottedName) ?.title} (${monthName})`} - onChange={onRémunérationChange} + onChange={(rémunérationBrute?: PublicodesExpression) => + onRémunérationChange( + monthIndex, + rémunérationBrute as RémunérationBruteInput + ) + } value={data[monthIndex].rémunérationBrute} />