diff --git a/packages/code-du-travail-frontend/src/modules/contributions/ContributionGeneric.tsx b/packages/code-du-travail-frontend/src/modules/contributions/ContributionGeneric.tsx index 4ba5a26b4a..f9dfb1b5b9 100644 --- a/packages/code-du-travail-frontend/src/modules/contributions/ContributionGeneric.tsx +++ b/packages/code-du-travail-frontend/src/modules/contributions/ContributionGeneric.tsx @@ -4,7 +4,7 @@ import { useContributionTracking } from "./tracking"; import { isAgreementSupported, isAgreementValid } from "./contributionUtils"; import { ContributionGenericContent } from "./ContributionGenericContent"; import { Contribution } from "./type"; -import { useLocalStorageForAgreement } from "../common/useLocalStorage"; +import { useLocalStorageForAgreementOnPageLoad } from "../common/useLocalStorage"; import { ContributionGenericAgreementSearch } from "./ContributionGenericAgreementSearch"; import { Button } from "@codegouvfr/react-dsfr/Button"; import { fr } from "@codegouvfr/react-dsfr"; @@ -20,7 +20,7 @@ export function ContributionGeneric({ contribution }: Props) { const [displayGeneric, setDisplayGeneric] = useState(false); const [selectedAgreement, setSelectedAgreement] = - useLocalStorageForAgreement(); + useLocalStorageForAgreementOnPageLoad(); const { emitAgreementTreatedEvent, emitAgreementUntreatedEvent, @@ -62,7 +62,7 @@ export function ContributionGeneric({ contribution }: Props) { emitDisplayAgreementContent(getTitle()); } }} - defaultAgreement={selectedAgreement} + selectedAgreement={selectedAgreement} trackingActionName={getTitle()} /> diff --git a/packages/code-du-travail-frontend/src/modules/contributions/ContributionGenericAgreementSearch.tsx b/packages/code-du-travail-frontend/src/modules/contributions/ContributionGenericAgreementSearch.tsx index 38a3f9de23..d1d3c068b9 100644 --- a/packages/code-du-travail-frontend/src/modules/contributions/ContributionGenericAgreementSearch.tsx +++ b/packages/code-du-travail-frontend/src/modules/contributions/ContributionGenericAgreementSearch.tsx @@ -20,7 +20,7 @@ type Props = { onAgreementSelect: (agreement?: EnterpriseAgreement) => void; onDisplayClick: (ev: React.MouseEvent) => void; contribution: Contribution; - defaultAgreement?: EnterpriseAgreement; + selectedAgreement?: EnterpriseAgreement; trackingActionName: string; }; @@ -28,21 +28,15 @@ export function ContributionGenericAgreementSearch({ contribution, onAgreementSelect, onDisplayClick, - defaultAgreement, + selectedAgreement, trackingActionName, }: Props) { const { slug } = contribution; - - const [selectedAgreement, setSelectedAgreement] = - useState(); - const [isValid, setIsValid] = useState( - defaultAgreement ? isAgreementValid(contribution, defaultAgreement) : false - ); + const [isValid, setIsValid] = useState(false); useEffect(() => { - setIsValid( - isAgreementValid(contribution, selectedAgreement ?? defaultAgreement) - ); - }, [selectedAgreement, defaultAgreement]); + setIsValid(isAgreementValid(contribution, selectedAgreement)); + }, [selectedAgreement]); + const selectedAgreementAlert = (agreement: EnterpriseAgreement) => { const isSupported = isAgreementSupported(contribution, agreement); const isUnextended = isAgreementUnextended(contribution, agreement); @@ -96,23 +90,19 @@ export function ContributionGenericAgreementSearch({
{ - onAgreementSelect(agreement); - setSelectedAgreement( - isAgreementValid(contribution, agreement) ? agreement : undefined - ); - }} + onAgreementSelect={onAgreementSelect} selectedAgreementAlert={selectedAgreementAlert} - defaultAgreement={defaultAgreement} + defaultAgreement={selectedAgreement} trackingActionName={trackingActionName} /> {((contribution.isNoCDT && isValid) || !contribution.isNoCDT) && (