diff --git a/fixtures/services.ts b/fixtures/services.ts index 1074c35b7..a74a99ea2 100644 --- a/fixtures/services.ts +++ b/fixtures/services.ts @@ -71,8 +71,7 @@ export function mockedRendezVousService( overrides: Partial = {} ): RendezVousService { const defaults: RendezVousService = { - getRendezVousConseillerServerSide: jest.fn(), - getRendezVousConseillerClientSide: jest.fn(), + getRendezVousConseiller: jest.fn(), getRendezVousJeune: jest.fn(), getDetailsRendezVous: jest.fn(), getTypesRendezVous: jest.fn(), diff --git a/pages/mes-rendezvous.tsx b/pages/mes-rendezvous.tsx index 083bf52f0..1efe27b0d 100644 --- a/pages/mes-rendezvous.tsx +++ b/pages/mes-rendezvous.tsx @@ -16,12 +16,8 @@ import useMatomo from 'utils/analytics/useMatomo' import { withMandatorySessionOrRedirect } from 'utils/auth/withMandatorySessionOrRedirect' import { useConseiller } from 'utils/conseiller/conseillerContext' import { useDependance } from 'utils/injectionDependances' -import withDependance from 'utils/injectionDependances/withDependance' interface MesRendezvousProps extends PageProps { - rendezVous: RdvListItem[] - dateDebut: string - dateFin: string creationSuccess?: boolean modificationSuccess?: boolean suppressionSuccess?: boolean @@ -30,9 +26,6 @@ interface MesRendezvousProps extends PageProps { } function MesRendezvous({ - rendezVous, - dateDebut, - dateFin, creationSuccess, modificationSuccess, suppressionSuccess, @@ -43,9 +36,10 @@ function MesRendezvous({ const [conseiller] = useConseiller() + const AUJOURDHUI = DateTime.now().startOf('day') + + const [index7JoursAffiches, setIndex7JoursAffiches] = useState(0) const [rdvs, setRdvs] = useState([]) - const [debutPeriode, setDebutPeriode] = useState(dateDebut) - const [finPeriode, setFinPeriode] = useState(dateFin) let initialTracking = `Mes rendez-vous` if (creationSuccess) initialTracking += ' - Creation rdv succès' @@ -54,57 +48,53 @@ function MesRendezvous({ if (messageEnvoiGroupeSuccess) initialTracking += ' - Succès envoi message' const [trackingTitle, setTrackingTitle] = useState(initialTracking) - useMatomo(trackingTitle) - - async function allerRdvsPasses() { - const FIN_RDVS_PASSES = DateTime.fromFormat( - debutPeriode, - 'dd/MM/yyyy' - ).minus({ day: 1 }) - const DEBUT_RDVS_PASSES = FIN_RDVS_PASSES.minus({ day: 6 }) - - const rdvsPasses = - await rendezVousService.getRendezVousConseillerClientSide( - conseiller!.id, - DEBUT_RDVS_PASSES.toFormat('yyyy-MM-dd'), - FIN_RDVS_PASSES.toFormat('yyyy-MM-dd') - ) - - setRdvs(rdvsPasses.map(rdvToListItem)) - setDebutPeriode(DEBUT_RDVS_PASSES.toFormat('dd/MM/yyyy')) - setFinPeriode(FIN_RDVS_PASSES.toFormat('dd/MM/yyyy')) + async function allerRdvs7JoursPrecedants() { + const index7JoursPrecedants = index7JoursAffiches - 1 + await chargerRdvs7Jours(index7JoursPrecedants) + setIndex7JoursAffiches(index7JoursPrecedants) setTrackingTitle(`${trackingTitle} passés`) } - function allerRdvsSemaineCourante() { - const AUJOURDHUI = DateTime.now() - const FIN_SEMAINE_COURANTE = AUJOURDHUI.plus({ day: 6 }) - - setRdvs(rendezVous) - setDebutPeriode(AUJOURDHUI.toFormat('dd/MM/yyyy')) - setFinPeriode(FIN_SEMAINE_COURANTE.toFormat('dd/MM/yyyy')) + async function allerRdvs7JoursActuels() { + const index7JoursActuels = 0 + await chargerRdvs7Jours(index7JoursActuels) + setIndex7JoursAffiches(index7JoursActuels) + setTrackingTitle(trackingTitle) } - async function allerRdvsSemaineFuture() { - const FORMAT_DATE_DEBUT = DateTime.fromFormat(finPeriode, 'dd/MM/yyyy') - const DEBUT_RDVS_FUTURS = FORMAT_DATE_DEBUT.plus({ day: 1 }) - const FIN_RDVS_FUTURS = DEBUT_RDVS_FUTURS.plus({ day: 6 }) - - const rdvsFuturs = - await rendezVousService.getRendezVousConseillerClientSide( - conseiller!.id, - DEBUT_RDVS_FUTURS.toFormat('yyyy-MM-dd'), - FIN_RDVS_FUTURS.toFormat('yyyy-MM-dd') - ) - setRdvs(rdvsFuturs.map(rdvToListItem)) - setDebutPeriode(DEBUT_RDVS_FUTURS.toFormat('dd/MM/yyyy')) - setFinPeriode(FIN_RDVS_FUTURS.toFormat('dd/MM/yyyy')) + async function allerRdvs7JoursSuivants() { + const index7JoursSuivants = index7JoursAffiches + 1 + await chargerRdvs7Jours(index7JoursSuivants) + setIndex7JoursAffiches(index7JoursSuivants) setTrackingTitle(`${trackingTitle} futurs`) } + async function chargerRdvs7Jours(index7Jours: number) { + const rdvs7Jours = await rendezVousService.getRendezVousConseiller( + conseiller!.id, + jourDeDebutDesRdvs(index7Jours), + jourDeFinDesRdvs(index7Jours) + ) + if (rdvs7Jours) setRdvs(rdvs7Jours.map(rdvToListItem)) + } + + function jourDeDebutDesRdvs(index7Jours?: number): DateTime { + return AUJOURDHUI.plus({ + day: 7 * (index7Jours ?? index7JoursAffiches), + }) + } + + function jourDeFinDesRdvs(index7Jours?: number): DateTime { + return jourDeDebutDesRdvs(index7Jours ?? index7JoursAffiches) + .plus({ day: 6 }) + .endOf('day') + } + + useMatomo(trackingTitle) + useEffect(() => { - setRdvs(rendezVous) - }, [rendezVous]) + if (conseiller) chargerRdvs7Jours(index7JoursAffiches) + }, [conseiller, index7JoursAffiches]) return ( <> @@ -118,7 +108,7 @@ function MesRendezvous({ @@ -126,11 +116,12 @@ function MesRendezvous({

- du {debutPeriode} au {finPeriode} + du {jourDeDebutDesRdvs().toFormat('dd/MM/yyyy')} au{' '} + {jourDeFinDesRdvs().toFormat('dd/MM/yyyy')}