From 017eeeb18ec5e5c3a745667ffe0fdca4c70bbeae Mon Sep 17 00:00:00 2001
From: Bastien Dumont <bdumont@grandlyon.com>
Date: Fri, 12 Apr 2024 14:21:43 +0200
Subject: [PATCH] fix: add wait consent modal

---
 .../Connection/GRDFConnect/GrdfWaitConsent.tsx     | 14 ++++++++++----
 src/components/Consumption/ConsumptionView.tsx     |  2 +-
 .../__snapshots__/EcogestureTabsView.spec.tsx.snap | 12 ++++++++++++
 src/components/Konnector/KonnectorModal.tsx        |  8 ++++++++
 4 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/src/components/Connection/GRDFConnect/GrdfWaitConsent.tsx b/src/components/Connection/GRDFConnect/GrdfWaitConsent.tsx
index 361ef2f05..ebf1c6c46 100644
--- a/src/components/Connection/GRDFConnect/GrdfWaitConsent.tsx
+++ b/src/components/Connection/GRDFConnect/GrdfWaitConsent.tsx
@@ -10,7 +10,11 @@ import { updateFluidConnection } from 'store/global/global.slice'
 import { useAppDispatch, useAppSelector } from 'store/hooks'
 import './GrdfWaitConsent.scss'
 
-export const GrdfWaitConsent = () => {
+export const GrdfWaitConsent = ({
+  showRelaunch,
+}: {
+  showRelaunch: boolean
+}) => {
   const { t } = useI18n()
   const dispatch = useAppDispatch()
   const { fluidStatus } = useAppSelector(state => state.ecolyo.global)
@@ -54,9 +58,11 @@ export const GrdfWaitConsent = () => {
         <br />
         <span>{t('auth.grdfgrandlyon.waiting.comeback')}</span>
       </div>
-      <Button className="btnPrimary" onClick={updateKonnector}>
-        {t('auth.grdfgrandlyon.waiting.button_done')}
-      </Button>
+      {showRelaunch && (
+        <Button className="btnPrimary" onClick={updateKonnector}>
+          {t('auth.grdfgrandlyon.waiting.button_done')}
+        </Button>
+      )}
     </div>
   )
 }
diff --git a/src/components/Consumption/ConsumptionView.tsx b/src/components/Consumption/ConsumptionView.tsx
index 3bfe524ba..0510564bc 100644
--- a/src/components/Consumption/ConsumptionView.tsx
+++ b/src/components/Consumption/ConsumptionView.tsx
@@ -226,7 +226,7 @@ const ConsumptionView = ({ fluidType }: { fluidType: FluidType }) => {
         <FluidButtons activeFluid={fluidType} key={updateKey} />
 
         {isWaitingForConsent ? (
-          <GrdfWaitConsent />
+          <GrdfWaitConsent showRelaunch={true} />
         ) : (
           <>
             {showOfflineData && (
diff --git a/src/components/Ecogesture/__snapshots__/EcogestureTabsView.spec.tsx.snap b/src/components/Ecogesture/__snapshots__/EcogestureTabsView.spec.tsx.snap
index e3dd07024..30c44f9bc 100644
--- a/src/components/Ecogesture/__snapshots__/EcogestureTabsView.spec.tsx.snap
+++ b/src/components/Ecogesture/__snapshots__/EcogestureTabsView.spec.tsx.snap
@@ -369,6 +369,9 @@ exports[`EcogestureView component should render empty list 1`] = `
               >
                 ecogesture.emptyList.btn1
               </span>
+              <span
+                class="MuiTouchRipple-root"
+              />
             </button>
             <button
               aria-label="ecogesture.emptyList.btn2"
@@ -381,6 +384,9 @@ exports[`EcogestureView component should render empty list 1`] = `
               >
                 ecogesture.emptyList.btn2
               </span>
+              <span
+                class="MuiTouchRipple-root"
+              />
             </button>
           </div>
         </div>
@@ -432,6 +438,9 @@ exports[`EcogestureView component should render empty list 1`] = `
               >
                 ecogesture.emptyList.btn1
               </span>
+              <span
+                class="MuiTouchRipple-root"
+              />
             </button>
             <button
               aria-label="ecogesture.emptyList.btn2"
@@ -444,6 +453,9 @@ exports[`EcogestureView component should render empty list 1`] = `
               >
                 ecogesture.emptyList.btn2
               </span>
+              <span
+                class="MuiTouchRipple-root"
+              />
             </button>
           </div>
         </div>
diff --git a/src/components/Konnector/KonnectorModal.tsx b/src/components/Konnector/KonnectorModal.tsx
index 5d89e4ee4..c03c05a0b 100644
--- a/src/components/Konnector/KonnectorModal.tsx
+++ b/src/components/Konnector/KonnectorModal.tsx
@@ -4,6 +4,7 @@ import EnedisIcon from 'assets/icons/ico/consent-outdated-enedis.svg'
 import errorIcon from 'assets/icons/visu/data-nok.svg'
 import successIcon from 'assets/icons/visu/data-ok.svg'
 import classNames from 'classnames'
+import { GrdfWaitConsent } from 'components/Connection/GRDFConnect/GrdfWaitConsent'
 import Loader from 'components/Loader/Loader'
 import connectionWaitingText from 'constants/connectionWaitingText.json'
 import firstConnectionWaitingText from 'constants/firstConnectionWaitingText.json'
@@ -263,8 +264,15 @@ const KonnectorModal = ({
                         </div>
                       </div>
                     )}
+                  {/* Wait consent alert */}
+                  {error === KonnectorError.CHALLENGE_ASKED &&
+                    fluidType === FluidType.GAS && (
+                      <GrdfWaitConsent showRelaunch={false} />
+                    )}
+
                   {error !== KonnectorError.LOGIN_FAILED &&
                     error !== KonnectorError.TERMS_VERSION_MISMATCH &&
+                    error !== KonnectorError.CHALLENGE_ASKED &&
                     error !==
                       KonnectorError.USER_ACTION_NEEDED_ACCOUNT_REMOVED && (
                       // DEFAULT CASE
-- 
GitLab