diff --git a/frontend/src/components/pages/details/components/DetailsReservationWidget/DetailsReservationWidget.tsx b/frontend/src/components/pages/details/components/DetailsReservationWidget/DetailsReservationWidget.tsx index 5fdbc8f79..84a52f52a 100644 --- a/frontend/src/components/pages/details/components/DetailsReservationWidget/DetailsReservationWidget.tsx +++ b/frontend/src/components/pages/details/components/DetailsReservationWidget/DetailsReservationWidget.tsx @@ -1,5 +1,5 @@ import { Reservation } from 'modules/details/interface'; -import { useCallback, useEffect } from 'react'; +import { useCallback, useEffect, useState } from 'react'; import Loader from 'components/Loader'; import Script from 'next/script'; import Head from 'next/head'; @@ -17,18 +17,7 @@ interface DetailsReservationWidgetProps { reservation: Reservation; language: string; } -const waitForGlobal = async (key: string) => { - return new Promise(resolve => { - if (key in window) { - resolve(true); - } else { - // eslint-disable-next-line - setTimeout(() => { - return waitForGlobal(key); - }, 100); - } - }); -}; + export const DetailsReservationWidget: React.FC = ({ id, reservation: { partner, project }, @@ -36,6 +25,7 @@ export const DetailsReservationWidget: React.FC = }) => { const { asPath } = useRouter(); const isMounted = useHasMounted(); + const [stepsLoadedScript, setStepsLoadedScript] = useState(0); const onLoad = useCallback(() => { const layer = { @@ -45,20 +35,8 @@ export const DetailsReservationWidget: React.FC = routeId: id, routePage: asPath, }; - (core => { - void waitForGlobal('eitinerance') - .then(() => waitForGlobal('AllianceReseaux')) - .then(() => { - const spaClient = core.pages?.getSinglePageApplicationClient({ layer }); - window.AllianceReseaux.jQuery(function () { - if (spaClient !== undefined) { - spaClient.executePage(); - } else { - onLoad(); - } - }); - }); - })(window?.eitinerance?.core); + const spaClient = window?.eitinerance?.core?.pages?.getSinglePageApplicationClient({ layer }); + spaClient?.executePage(); }, [asPath, id, language, partner]); useEffect(() => { @@ -88,13 +66,22 @@ export const DetailsReservationWidget: React.FC = {/* Hide modal due to user inactivity */} -