{dottedName}
- + Ci-dessus la règle d'origine, écrite en publicode. Publicode est un + langage déclaratif développé par beta.gouv.fr en partenariat avec + l'Acoss pour encoder les algorithmes d'intérêt public.{' '} + En savoir plus. +
+ ) } diff --git a/source/sites/mon-entreprise.fr/pages/Documentation/RulesList.css b/source/components/Documentation/RulesList.css similarity index 100% rename from source/sites/mon-entreprise.fr/pages/Documentation/RulesList.css rename to source/components/Documentation/RulesList.css diff --git a/source/sites/mon-entreprise.fr/pages/Documentation/RulesList.tsx b/source/components/Documentation/RulesList.tsx similarity index 70% rename from source/sites/mon-entreprise.fr/pages/Documentation/RulesList.tsx rename to source/components/Documentation/RulesList.tsx index 4368b3a84..1000aa410 100644 --- a/source/sites/mon-entreprise.fr/pages/Documentation/RulesList.tsx +++ b/source/components/Documentation/RulesList.tsx @@ -1,12 +1,12 @@ import SearchBar from 'Components/SearchBar' -import React from 'react' +import React, { useContext } from 'react' import { Trans } from 'react-i18next' import { useSelector } from 'react-redux' -import { parsedRulesSelector } from 'Selectors/analyseSelectors' import './RulesList.css' +import { EngineContext } from 'Components/utils/EngineContext' export default function RulesList() { - const rules = useSelector(parsedRulesSelector) + const rules = useContext(EngineContext).getParsedRules() return (
-
- Cette formule de calcul n'existe pas ! Mais on peut faire une - estimation à partir de : -
-- Cette valeur a été estimée à partir d'une autre variable qui - possède une formule de calcul et dont la valeur a été fixée dans - la simulation : -
-+ Cette valeur devrait pouvoir être estimée à partir d'une autre + variable qui possède une formule de calcul et dont la valeur a été + fixée dans la simulation : +
+ {makeJsx(explanation.inversedWith)} ++ Malheureusement, il a été impossible de retrouver une valeur pour + cette formule qui permette d'atterir sur la valeur demandée. +
+ > + ) : explanation.inversedWith ? ( + <> + {' '} ++ Cette valeur a été estimée à partir d'une autre variable qui possède + une formule de calcul et dont la valeur a été fixée dans la + simulation : +
+ {makeJsx(explanation.inversedWith)} + > + ) : ( + <> ++ Cette formule de calcul n'existe pas, mais on peut la calculer par + inversion en utilisant les formules des règles suivantes : +
+
-
+
-
+
+
- Ce document atteste de votre bonne foi concernant votre déclaration - selon les éléments transmis. -
- -- {rules[dottedName]?.question} - - - - {value !== null && unit === '€' ? ( - formatValue({ - value: value || 0, - language: 'fr', - unit: unit, - maximumFractionDigits: 0 - }) - ) : ( - <>{value}> - )} - - -
- ) : null -} diff --git a/source/sites/mon-entreprise.fr/pages/Gérer/AideDéclarationIndépendant/index.tsx b/source/sites/mon-entreprise.fr/pages/Gérer/AideDéclarationIndépendant/index.tsx index 9307ca50c..975a9a864 100644 --- a/source/sites/mon-entreprise.fr/pages/Gérer/AideDéclarationIndépendant/index.tsx +++ b/source/sites/mon-entreprise.fr/pages/Gérer/AideDéclarationIndépendant/index.tsx @@ -3,27 +3,29 @@ import Aide from 'Components/conversation/Aide' import Explicable from 'Components/conversation/Explicable' import 'Components/TargetSelection.css' import Warning from 'Components/ui/WarningBlock' +import { useEvaluation, EngineContext } from 'Components/utils/EngineContext' import { ScrollToTop } from 'Components/utils/Scroll' import useDisplayOnIntersecting from 'Components/utils/useDisplayOnIntersecting' import RuleInput from 'Engine/RuleInput' import { ParsedRule } from 'Engine/types' -import React, { useCallback, useEffect, useRef, useState } from 'react' +import React, { + useCallback, + useEffect, + useRef, + useState, + useContext +} from 'react' import { Trans } from 'react-i18next' import { useDispatch, useSelector } from 'react-redux' import { RootState } from 'Reducers/rootReducer' import { DottedName } from 'Rules' -import { - nextStepsSelector, - parsedRulesSelector, - ruleAnalysisSelector, - situationSelector -} from 'Selectors/analyseSelectors' +import { situationSelector } from 'Selectors/simulationSelectors' import styled from 'styled-components' import Animate from 'Ui/animate' -import { useRule } from '../../Simulateurs/ArtisteAuteur' import { CompanySection } from '../Home' import simulationConfig from './config.yaml' import { Results } from './Result' +import { useNextQuestions } from 'Components/utils/useNextQuestion' const lauchComputationWhenResultsInViewport = () => { const dottedName = 'dirigeant . rémunération totale' @@ -55,7 +57,8 @@ const lauchComputationWhenResultsInViewport = () => { export default function AideDéclarationIndépendant() { const dispatch = useDispatch() - const rules = useSelector(parsedRulesSelector) + const rules = useContext(EngineContext).getParsedRules() + const company = useSelector( (state: RootState) => state.inFranceApp.existingCompany ) @@ -214,9 +217,9 @@ function SubSection({ dottedName: sectionDottedName, hideTitle = false }: SubSectionProp) { - const parsedRules = useSelector(parsedRulesSelector) - const ruleTitle = useRule(sectionDottedName)?.title - const nextSteps = useSelector(nextStepsSelector) + const parsedRules = useContext(EngineContext).getParsedRules() + const ruleTitle = parsedRules[sectionDottedName]?.title + const nextSteps = useNextQuestions() const situation = useSelector(situationSelector) const title = hideTitle ? null : ruleTitle const subQuestions = Object.values(parsedRules).filter( @@ -243,10 +246,8 @@ type SimpleFieldProps = { } function SimpleField({ dottedName, question, summary }: SimpleFieldProps) { const dispatch = useDispatch() - const evaluatedRule = useSelector((state: RootState) => { - return ruleAnalysisSelector(state, { dottedName }) - }) - const rules = useSelector(parsedRulesSelector) + const evaluatedRule = useEvaluation(dottedName) + const rules = useContext(EngineContext).getParsedRules() const value = useSelector(situationSelector)[dottedName] const [currentValue, setCurrentValue] = useState(value) const dispatchValue = useCallback( diff --git a/source/sites/mon-entreprise.fr/pages/Gérer/Home.tsx b/source/sites/mon-entreprise.fr/pages/Gérer/Home.tsx index 9c865a6de..2f9e2fd31 100644 --- a/source/sites/mon-entreprise.fr/pages/Gérer/Home.tsx +++ b/source/sites/mon-entreprise.fr/pages/Gérer/Home.tsx @@ -7,7 +7,7 @@ import CompanyDetails from 'Components/CompanyDetails' import FindCompany from 'Components/FindCompany' import Overlay from 'Components/Overlay' import { ScrollToTop } from 'Components/utils/Scroll' -import { SitePathsContext } from 'Components/utils/withSitePaths' +import { SitePathsContext } from 'Components/utils/SitePathsContext' import React, { useContext, useEffect, useRef, useState } from 'react' import emoji from 'react-easy-emoji' import { Helmet } from 'react-helmet' diff --git a/source/sites/mon-entreprise.fr/pages/Gérer/SchemeSelection.tsx b/source/sites/mon-entreprise.fr/pages/Gérer/SchemeSelection.tsx index d84fc7c3f..10a9883a9 100644 --- a/source/sites/mon-entreprise.fr/pages/Gérer/SchemeSelection.tsx +++ b/source/sites/mon-entreprise.fr/pages/Gérer/SchemeSelection.tsx @@ -1,4 +1,4 @@ -import { SitePathsContext } from 'Components/utils/withSitePaths' +import { SitePathsContext } from 'Components/utils/SitePathsContext' import React, { useContext } from 'react' import emoji from 'react-easy-emoji' import { Helmet } from 'react-helmet' diff --git a/source/sites/mon-entreprise.fr/pages/Gérer/index.tsx b/source/sites/mon-entreprise.fr/pages/Gérer/index.tsx index 260b6dd40..0d9996ca2 100644 --- a/source/sites/mon-entreprise.fr/pages/Gérer/index.tsx +++ b/source/sites/mon-entreprise.fr/pages/Gérer/index.tsx @@ -1,11 +1,10 @@ import { ScrollToTop } from 'Components/utils/Scroll' -import { SitePathsContext } from 'Components/utils/withSitePaths' +import { SitePathsContext } from 'Components/utils/SitePathsContext' import React, { useContext } from 'react' import { Trans } from 'react-i18next' import { Route, Switch } from 'react-router' import { NavLink, useLocation } from 'react-router-dom' import AideDéclarationIndépendant from './AideDéclarationIndépendant/index' -import { AideDéclarationIndépendantsRécapitulatif } from './AideDéclarationIndépendant/Récapitulatif' import Embaucher from './Embaucher' import Home from './Home' import SécuritéSociale from './SécuritéSociale' @@ -16,28 +15,14 @@ export default function Gérer() { return ( <>
-
{formatValue({ value, unit: analysis.unit })}
{' '}
-
+ {formatValue({
+ nodeValue: value,
+ unit: evaluation.unit,
+ language: 'fr'
+ })}
+
{' '}
+