Skip to content

Commit cfe850c

Browse files
committed
Corrige le déclenchement du calcul de trajectoire
1 parent 4589b8c commit cfe850c

File tree

11 files changed

+253
-226
lines changed

11 files changed

+253
-226
lines changed

apps/app/src/app/pages/collectivite/Indicateurs/detail/IndicateurDetail.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import { useCollectiviteId } from '@/api/collectivites';
44
import { INDICATEUR_TRAJECTOIRE_IDENTFIANTS } from '@/app/app/pages/collectivite/Trajectoire/constants';
55
import SpinnerLoader from '@/app/ui/shared/SpinnerLoader';
6-
import { useCalculTrajectoire } from '../../Trajectoire/useCalculTrajectoire';
7-
import { useStatutTrajectoire } from '../../Trajectoire/useStatutTrajectoire';
6+
import { useStatutTrajectoire } from '../../Trajectoire/use-statut-trajectoire';
7+
import { useGetTrajectoire } from '../../Trajectoire/use-trajectoire';
88
import { useIndicateurDefinition } from '../Indicateur/useIndicateurDefinition';
99
import IndicateurLayout from './IndicateurLayout';
1010

@@ -37,7 +37,7 @@ export const IndicateurDetail = ({
3737
const status = trajectoire?.status;
3838

3939
// démarre le calcul de la trajectoire au chargement de la page
40-
useCalculTrajectoire({
40+
useGetTrajectoire({
4141
enabled:
4242
!isPerso &&
4343
!!definition?.identifiantReferentiel &&

apps/app/src/app/pages/collectivite/Trajectoire/DonneesCollectivite/DonneesCollectivite.tsx

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1+
import { useCollectiviteId } from '@/api/collectivites';
12
import { DATE_DEBUT } from '@/app/app/pages/collectivite/Trajectoire/constants';
2-
import { useCalculTrajectoire } from '@/app/app/pages/collectivite/Trajectoire/useCalculTrajectoire';
3-
import SpinnerLoader from '@/app/ui/shared/SpinnerLoader';
43
import { Alert, Button, ModalFooter, RenderProps, Tab, Tabs } from '@/ui';
5-
import { useEffect } from 'react';
4+
import { useComputeTrajectoire } from '../use-trajectoire';
65
import { TABS } from './constants';
76
import { Secteur, TableauDonnees } from './TableauDonnees';
87
import { useDonneesSectorisees } from './useDonneesSectorisees';
@@ -21,16 +20,15 @@ export const DonneesCollectivite = ({
2120
}: DonneesCollectiviteProps) => {
2221
const { donneesCompletes, donneesSectorisees } = useDonneesSectorisees();
2322
const { mutate: upsertValeur } = useUpsertValeurIndicateur();
24-
const { isPending, isSuccess, refetch } = useCalculTrajectoire({
25-
nouveauCalcul: true,
26-
});
2723

28-
// ferme le dialogue quand le nouveau calcul est terminé
29-
useEffect(() => {
30-
if (isSuccess) {
31-
modalProps.close();
32-
}
33-
}, [isSuccess]);
24+
const collectiviteId = useCollectiviteId();
25+
26+
const { mutate: computeTrajectoire, isPending: isComputePending } =
27+
useComputeTrajectoire({
28+
onSuccess: () => {
29+
modalProps.close();
30+
},
31+
});
3432

3533
return (
3634
<div className="text-center">
@@ -80,19 +78,15 @@ export const DonneesCollectivite = ({
8078
Annuler
8179
</Button>
8280
<Button
83-
icon={!isPending ? 'arrow-right-line' : undefined}
81+
icon="arrow-right-line"
8482
iconPosition="right"
85-
disabled={!donneesCompletes || isPending}
86-
onClick={() => refetch()}
83+
loading={isComputePending}
84+
disabled={!donneesCompletes}
85+
onClick={() => {
86+
computeTrajectoire({ collectiviteId });
87+
}}
8788
>
88-
{isPending ? (
89-
<>
90-
Calcul en cours
91-
<SpinnerLoader />
92-
</>
93-
) : (
94-
'Voir le résultat'
95-
)}
89+
{isComputePending ? ' Calcul en cours' : 'Voir le résultat'}
9690
</Button>
9791
</ModalFooter>
9892
</div>

apps/app/src/app/pages/collectivite/Trajectoire/Trajectoire.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use client';
22

33
import { useCurrentCollectivite } from '@/api/collectivites';
4+
import { useTRPC } from '@/api/utils/trpc/client';
45
import SpinnerLoader from '@/app/ui/shared/SpinnerLoader';
56
import { VerificationTrajectoireStatus } from '@/domain/indicateurs';
67
import { Alert, Button, Card, Modal } from '@/ui';
@@ -12,8 +13,8 @@ import DbErrorPicto from './db-error.svg';
1213
import { DonneesCollectivite } from './DonneesCollectivite/DonneesCollectivite';
1314
import TrajectoirePicto from './trajectoire.svg';
1415
import { TrajectoireCalculee } from './TrajectoireCalculee';
15-
import { useCalculTrajectoire } from './useCalculTrajectoire';
16-
import { getStatusKey, useStatutTrajectoire } from './useStatutTrajectoire';
16+
import { useStatutTrajectoire } from './use-statut-trajectoire';
17+
import { useGetTrajectoire } from './use-trajectoire';
1718

1819
/**
1920
* Affiche l'écran approprié en fonction du statut du calcul de la trajectoire SNBC
@@ -138,10 +139,11 @@ const ErreurDeChargement = () => {
138139
* Affiche le message de présentation
139140
*/
140141
const Presentation = () => {
141-
const { isPending, data: trajectoire } = useCalculTrajectoire();
142+
const { isPending, data: trajectoire } = useGetTrajectoire();
142143

143144
const queryClient = useQueryClient();
144-
const collectivite = useCurrentCollectivite();
145+
const trpc = useTRPC();
146+
const { collectiviteId } = useCurrentCollectivite();
145147

146148
return (
147149
<div className="flex flex-col">
@@ -184,7 +186,11 @@ const Presentation = () => {
184186
<Button
185187
onClick={() => {
186188
queryClient.invalidateQueries({
187-
queryKey: getStatusKey(collectivite.collectiviteId),
189+
queryKey: trpc.indicateurs.trajectoires.snbc.checkStatus.queryKey(
190+
{
191+
collectiviteId,
192+
}
193+
),
188194
});
189195
}}
190196
>

0 commit comments

Comments
 (0)