From 3fcfa8c67c1d922b3e5f8b91ae6bf23a652af55d Mon Sep 17 00:00:00 2001
From: build-pipeline <build-token>
Date: Wed, 24 Apr 2024 08:57:32 +0000
Subject: [PATCH] publish: Merge branch 'fix/loading-delay-gaz' into 'dev'

generated from commit cad19e418d9534fade5c1d91cef90311b54a7a66
---
 ...0e36.js => ecolyo.a8245e5b7531e1e151eb.js} | 198 +++++++++---------
 ...a868.js => ecolyo.d42dfcb1d5c372394d0e.js} |  13 +-
 index.html                                    |   2 +-
 services/aggregatorUsageEvents/ecolyo.js      |   1 -
 4 files changed, 109 insertions(+), 105 deletions(-)
 rename 5/{ecolyo.6c22dc3940ec3cf20e36.js => ecolyo.a8245e5b7531e1e151eb.js} (97%)
 rename app/{ecolyo.6670310291ae0f1ea868.js => ecolyo.d42dfcb1d5c372394d0e.js} (99%)

diff --git a/5/ecolyo.6c22dc3940ec3cf20e36.js b/5/ecolyo.a8245e5b7531e1e151eb.js
similarity index 97%
rename from 5/ecolyo.6c22dc3940ec3cf20e36.js
rename to 5/ecolyo.a8245e5b7531e1e151eb.js
index dfff04bb9..bf65ecce9 100644
--- a/5/ecolyo.6c22dc3940ec3cf20e36.js
+++ b/5/ecolyo.a8245e5b7531e1e151eb.js
@@ -186,7 +186,7 @@ exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE
 
 exports = module.exports = __webpack_require__("DjJv")(false);
 // Module
-exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.kmodal-content {\n  margin: 0.5rem 1.5rem;\n  min-height: 12rem;\n}\n@media only screen and (max-width : 768px) {\n  .kmodal-content {\n    margin: 0.5rem 0;\n  }\n}\n.kmodal-content .kmodal-content-text {\n  color: #e0e0e0;\n  margin: 1rem;\n  text-align: center;\n}\n.kmodal-content .kmodal-waiting-text {\n  align-items: center;\n  display: flex;\n  justify-content: center;\n  margin: 1rem;\n  min-height: 11.25rem;\n  text-align: center;\n}\n.kmodal-content .kmodal-waiting-text .kc-wait {\n  margin-bottom: 2rem;\n}\n.kmodal-content .kmodal-waiting-text .waiting-text {\n  display: none;\n}\n.kmodal-content .kmodal-waiting-text .waiting-text.show {\n  animation-duration: 8s;\n  animation-name: fadeIn;\n  display: block;\n  opacity: 0;\n}\n.kmodal-content .kmodal-info {\n  padding: 1rem;\n  display: flex;\n  flex-direction: column;\n  gap: 24px;\n}\n.kmodal-content .kmodal-info .buttons {\n  display: flex;\n  gap: 1rem;\n}\n.kmodal-content .kmodal-info .konnector-config {\n  align-items: center;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  text-align: center;\n  gap: 1rem;\n}\n.kmodal-content .kmodal-info .konnector-config .elec-fail {\n  color: #e0e0e0;\n}\n.kmodal-content .kmodal-info .konnector-config.mismatch .title {\n  color: #ec9d41;\n}\n.kmodal-content .kmodal-info .konnector-config.mismatch .info {\n  color: #e0e0e0;\n}\n.kmodal-content .kmodal-info .konnector-config .headerSuccess {\n  color: #e3b82a;\n}\n.kmodal-content .kmodal-info .konnector-config .headerError {\n  color: #d25959;\n}\n.kmodal-content .kmodal-info .konnector-config .commonErrorsList {\n  text-align: left;\n}\n.kmodal-content .kmodal-info .konnector-config .commonErrorsList span {\n  font-weight: 700;\n}\n.kmodal-content .kmodal-info .konnector-config .commonErrorsList span.gold {\n  color: #e3b82a;\n}\n.kmodal-content .kmodal-info .konnector-config .commonErrorsList .center {\n  text-align: center;\n  font-weight: 700;\n}\n.kmodal-content .kmodal-info .konnector-config .commonErrorsList p {\n  text-align: center;\n  font-style: italic;\n  font-weight: 400;\n  font-size: 0.9rem;\n}\n.kmodal-content .light {\n  color: #e0e0e0;\n}\n\n#accessibility-title {\n  display: none;\n}\n\n@keyframes fadeIn {\n  10%, 90% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 0;\n  }\n}", ""]);
+exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.kmodal-content {\n  margin: 0.5rem 1.5rem;\n  min-height: 12rem;\n}\n@media only screen and (max-width : 768px) {\n  .kmodal-content {\n    margin: 0.5rem 0;\n  }\n}\n.kmodal-content .kmodal-content-text {\n  color: #e0e0e0;\n  margin: 1rem;\n  text-align: center;\n}\n.kmodal-content .kmodal-waiting-text {\n  align-items: center;\n  display: flex;\n  justify-content: center;\n  margin: 1rem;\n  min-height: 11.25rem;\n  text-align: center;\n}\n.kmodal-content .kmodal-waiting-text .waiting-text {\n  display: none;\n}\n.kmodal-content .kmodal-waiting-text .waiting-text.show {\n  animation-duration: 8s;\n  animation-name: fadeIn;\n  display: block;\n  opacity: 0;\n}\n.kmodal-content .kmodal-info {\n  padding: 1rem;\n  display: flex;\n  flex-direction: column;\n  gap: 24px;\n}\n.kmodal-content .kmodal-info .buttons {\n  display: flex;\n  gap: 1rem;\n}\n.kmodal-content .kmodal-info .konnector-config {\n  align-items: center;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  text-align: center;\n  gap: 1rem;\n}\n.kmodal-content .kmodal-info .konnector-config .elec-fail {\n  color: #e0e0e0;\n}\n.kmodal-content .kmodal-info .konnector-config.mismatch .title {\n  color: #ec9d41;\n}\n.kmodal-content .kmodal-info .konnector-config.mismatch .info {\n  color: #e0e0e0;\n}\n.kmodal-content .kmodal-info .konnector-config .headerSuccess {\n  color: #e3b82a;\n}\n.kmodal-content .kmodal-info .konnector-config .headerError {\n  color: #d25959;\n}\n.kmodal-content .kmodal-info .konnector-config .commonErrorsList {\n  text-align: left;\n}\n.kmodal-content .kmodal-info .konnector-config .commonErrorsList span {\n  font-weight: 700;\n}\n.kmodal-content .kmodal-info .konnector-config .commonErrorsList span.gold {\n  color: #e3b82a;\n}\n.kmodal-content .kmodal-info .konnector-config .commonErrorsList .center {\n  text-align: center;\n  font-weight: 700;\n}\n.kmodal-content .kmodal-info .konnector-config .commonErrorsList p {\n  text-align: center;\n  font-style: italic;\n  font-weight: 400;\n  font-size: 0.9rem;\n}\n.kmodal-content .light {\n  color: #e0e0e0;\n}\n\n#accessibility-title {\n  display: none;\n}\n\n@keyframes fadeIn {\n  10%, 90% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 0;\n  }\n}", ""]);
 
 
 
@@ -909,6 +909,7 @@ var _offlineParam = _interopRequireDefault(__webpack_require__("00x6"));
 var _classnames = _interopRequireDefault(__webpack_require__("uRLs"));
 var _StyledIcon = _interopRequireDefault(__webpack_require__("VP3k"));
 var _Connection = _interopRequireDefault(__webpack_require__("xrI2"));
+var _GrdfWaitConsent = __webpack_require__("c3xf");
 var _KonnectorModal = _interopRequireDefault(__webpack_require__("mdtF"));
 var _cozyClient = __webpack_require__("xEu0");
 var _triggers = __webpack_require__("JPZu");
@@ -972,26 +973,22 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
     _useState2 = (0, _slicedToArray2.default)(_useState, 2),
     openModal = _useState2[0],
     setOpenModal = _useState2[1];
-  var _useState3 = (0, _react.useState)(false),
+  var _useState3 = (0, _react.useState)(fluidType === _enums.FluidType.ELECTRICITY),
     _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
-    isUpdating = _useState4[0],
-    setIsUpdating = _useState4[1];
-  var _useState5 = (0, _react.useState)(fluidType === _enums.FluidType.ELECTRICITY),
+    isVerifyingIdentity = _useState4[0],
+    setIsVerifyingIdentity = _useState4[1];
+  var _useState5 = (0, _react.useState)(null),
     _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
-    isVerifyingIdentity = _useState6[0],
-    setIsVerifyingIdentity = _useState6[1];
+    konnectorErrorDescription = _useState6[0],
+    setKonnectorErrorDescription = _useState6[1];
   var _useState7 = (0, _react.useState)(null),
     _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
-    konnectorErrorDescription = _useState8[0],
-    setKonnectorErrorDescription = _useState8[1];
+    konnectorState = _useState8[0],
+    setKonnectorState = _useState8[1];
   var _useState9 = (0, _react.useState)(null),
     _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
-    konnectorState = _useState10[0],
-    setKonnectorState = _useState10[1];
-  var _useState11 = (0, _react.useState)(null),
-    _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
-    isOutdatedData = _useState12[0],
-    setIsOutdatedData = _useState12[1];
+    isOutdatedData = _useState10[0],
+    setIsOutdatedData = _useState10[1];
   var isWaitingForConsent = fluidType === _enums.FluidType.GAS && currentFluidStatus.status === _enums.FluidState.CHALLENGE_ASKED;
   var fluidService = (0, _react.useMemo)(function () {
     return new _fluid.default(client);
@@ -1109,50 +1106,52 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
       }
     }, _callee3);
   })), [refreshChallengeState, updateGlobalFluidStatus, partnersInfoService, fluidService, dispatch]);
+
+  /** Close modal, update fluid status and reset error state */
   var handleConnectionEnd = (0, _react.useCallback)( /*#__PURE__*/function () {
     var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(isSuccess) {
-      var isGlobalLoginFailed, isEnedisCodeInseeError, shouldDeleteAccount, _currentFluidStatus$c2, auth, lastEpglLogin, accountService, updatedFluidStatus;
+      var _currentFluidStatus$c2, account, isUpdating, isGlobalLoginFailed, isEnedisCodeInseeError, shouldDeleteAccount, auth, lastEpglLogin, accountService, updatedFluidStatus;
       return _regenerator.default.wrap(function _callee4$(_context4) {
         while (1) {
           switch (_context4.prev = _context4.next) {
             case 0:
-              // CASE FOR GLOBAL LOGIN FAILED
+              _currentFluidStatus$c2 = currentFluidStatus.connection, account = _currentFluidStatus$c2.account, isUpdating = _currentFluidStatus$c2.isUpdating; // CASE FOR GLOBAL LOGIN FAILED
               isGlobalLoginFailed = konnectorErrorDescription === _enums.KonnectorError.LOGIN_FAILED || konnectorErrorDescription === _enums.KonnectorError.UNKNOWN_ERROR || konnectorErrorDescription === _enums.KonnectorError.CRITICAL || konnectorErrorDescription === _enums.KonnectorError.MISSING_SECRET || konnectorErrorDescription === _enums.KonnectorError.USER_ACTION_NEEDED_ACCOUNT_REMOVED; // CASE FOR ENEDIS CODE INSEE ERROR
               isEnedisCodeInseeError = !isUpdating && fluidType === _enums.FluidType.ELECTRICITY;
-              shouldDeleteAccount = account && !isSuccess && currentFluidStatus && currentFluidStatus.connection.account && (isGlobalLoginFailed || isEnedisCodeInseeError);
+              shouldDeleteAccount = account && !isSuccess && account && (isGlobalLoginFailed || isEnedisCodeInseeError);
               if (!shouldDeleteAccount) {
-                _context4.next = 13;
+                _context4.next = 14;
                 break;
               }
               (0, _logger.default)('info', "shouldDeleteAccount");
               // KEEP LAST LOGIN FOR EPGL
-              if (fluidSlug === _enums.FluidSlugType.WATER && (_currentFluidStatus$c2 = currentFluidStatus.connection.account) !== null && _currentFluidStatus$c2 !== void 0 && _currentFluidStatus$c2.auth) {
-                auth = currentFluidStatus.connection.account.auth;
+              if (fluidSlug === _enums.FluidSlugType.WATER && account !== null && account !== void 0 && account.auth) {
+                auth = account.auth;
                 lastEpglLogin = auth.login;
                 dispatch((0, _global.setLastEpglLogin)(lastEpglLogin));
               }
               // DELETE ACCOUNT
               accountService = new _account.default(client);
-              _context4.next = 9;
+              _context4.next = 10;
               return accountService.deleteAccount(account);
-            case 9:
-              _context4.next = 11;
+            case 10:
+              _context4.next = 12;
               return handleAccountDeletion();
-            case 11:
-              _context4.next = 17;
+            case 12:
+              _context4.next = 18;
               break;
-            case 13:
-              _context4.next = 15;
+            case 14:
+              _context4.next = 16;
               return fluidService.getFluidStatus(partnersInfo);
-            case 15:
+            case 16:
               updatedFluidStatus = _context4.sent;
               dispatch((0, _global.setFluidStatus)(updatedFluidStatus));
-            case 17:
+            case 18:
               dispatch((0, _chart.setShowConnectionDetails)(false));
               setOpenModal(false);
               setKonnectorState(null);
               setKonnectorErrorDescription(null);
-            case 21:
+            case 22:
             case "end":
               return _context4.stop();
           }
@@ -1162,7 +1161,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
     return function (_x) {
       return _ref5.apply(this, arguments);
     };
-  }(), [account, konnectorErrorDescription, currentFluidStatus, isUpdating, fluidType, fluidSlug, client, handleAccountDeletion, fluidService, partnersInfo, dispatch]);
+  }(), [konnectorErrorDescription, currentFluidStatus, fluidType, fluidSlug, client, handleAccountDeletion, fluidService, partnersInfo, dispatch]);
   var toggleModalConnection = (0, _react.useCallback)(function () {
     switch (fluidType) {
       case _enums.FluidType.ELECTRICITY:
@@ -1183,7 +1182,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
         onClick: toggleModalConnection
       }, t("auth.".concat((0, _utils.getKonnectorSlug)(fluidType), ".connect")));
     }
-    if (fluidState === _enums.FluidState.KONNECTOR_NOT_FOUND && !isUpdating) {
+    if (fluidState === _enums.FluidState.KONNECTOR_NOT_FOUND && !currentFluidStatus.connection.isUpdating) {
       return /*#__PURE__*/_react.default.createElement(_ConnectionNotFound.default, {
         konnectorSlug: fluidSlug
       });
@@ -1196,16 +1195,16 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
         fluidType: fluidType
       });
     }
-  }, [account, currentFluidStatus.status, fluidSlug, fluidState, fluidType, handleAccountDeletion, isUpdating, showOfflineData, t, toggleModalConnection]);
+  }, [account, currentFluidStatus.connection.isUpdating, currentFluidStatus.status, fluidSlug, fluidState, fluidType, handleAccountDeletion, showOfflineData, t, toggleModalConnection]);
   var callbackResponse = (0, _react.useCallback)( /*#__PURE__*/function () {
     var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(_state) {
-      var _updatedFluidStatus$, updatedConnection, _yield$Promise$all, _yield$Promise$all2, updatedFluidStatus;
+      var updatedConnection, _yield$Promise$all, _yield$Promise$all2, updatedFluidStatus;
       return _regenerator.default.wrap(function _callee5$(_context5) {
         while (1) {
           switch (_context5.prev = _context5.next) {
             case 0:
               if (!(_state !== _flowEvents.LOGIN_SUCCESS_EVENT)) {
-                _context5.next = 18;
+                _context5.next = 22;
                 break;
               }
               updatedConnection = _objectSpread(_objectSpread({}, currentFluidStatus.connection), {}, {
@@ -1231,13 +1230,18 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
               _yield$Promise$all = _context5.sent;
               _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 2);
               updatedFluidStatus = _yield$Promise$all2[1];
-              setKonnectorState(_state);
-              /** If waiting for consent, close Konnector modal first and handle connection closed */
-              if (((_updatedFluidStatus$ = updatedFluidStatus[2].connection.triggerState) === null || _updatedFluidStatus$ === void 0 ? void 0 : _updatedFluidStatus$.last_error) === _enums.KonnectorError.CHALLENGE_ASKED) {
-                setOpenModal(false);
-                handleConnectionEnd(false);
+              if (!(fluidType === _enums.FluidType.GAS && updatedFluidStatus[2].status == _enums.FluidState.CHALLENGE_ASKED)) {
+                _context5.next = 21;
+                break;
               }
-            case 18:
+              _context5.next = 19;
+              return handleConnectionEnd(false);
+            case 19:
+              _context5.next = 22;
+              break;
+            case 21:
+              setKonnectorState(_state);
+            case 22:
             case "end":
               return _context5.stop();
           }
@@ -1247,7 +1251,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
     return function (_x2) {
       return _ref6.apply(this, arguments);
     };
-  }(), [currentFluidStatus.connection, currentFluidStatus.fluidType, dispatch, handleConnectionEnd, refreshChallengeState, updateGlobalFluidStatus]);
+  }(), [currentFluidStatus.connection, currentFluidStatus.fluidType, dispatch, fluidType, handleConnectionEnd, refreshChallengeState, updateGlobalFluidStatus]);
 
   /** Display konnector icon & its smaller status icon in upper left corner */
   var displayKonnectorIcon = (0, _react.useCallback)(function () {
@@ -1330,19 +1334,20 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
       return _getData.apply(this, arguments);
     }
     function _getData() {
-      _getData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
+      _getData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
         var updatedConnection, connectionFlow;
-        return _regenerator.default.wrap(function _callee7$(_context7) {
+        return _regenerator.default.wrap(function _callee8$(_context8) {
           while (1) {
-            switch (_context7.prev = _context7.next) {
+            switch (_context8.prev = _context8.next) {
               case 0:
                 if (!(currentFluidStatus.connection.shouldLaunchKonnector && !(0, _triggers.isKonnectorRunning)(trigger))) {
-                  _context7.next = 9;
+                  _context8.next = 8;
                   break;
                 }
                 if (subscribed) {
-                  if (currentFluidStatus.connection.isUpdating) setIsUpdating(true);
                   setOpenModal(true);
+                  // Reset any error that might have been set after handleConnectionEnd
+                  setKonnectorErrorDescription(null);
                   updatedConnection = _objectSpread(_objectSpread({}, currentFluidStatus.connection), {}, {
                     shouldLaunchKonnector: false
                   });
@@ -1352,26 +1357,37 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
                   }));
                 }
                 connectionFlow = new _ConnectionFlow.default(client, trigger, konnector);
-                _context7.next = 5;
+                _context8.next = 5;
                 return connectionFlow.launch();
               case 5:
-                console.log('connectionFlow', connectionFlow.jobWatcher);
-                connectionFlow.jobWatcher.on(_flowEvents.ERROR_EVENT, function () {
-                  setKonnectorErrorDescription(connectionFlow.jobWatcher.on()._error);
-                  callbackResponse(_flowEvents.ERROR_EVENT);
-                });
+                connectionFlow.jobWatcher.on(_flowEvents.ERROR_EVENT, /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
+                  return _regenerator.default.wrap(function _callee7$(_context7) {
+                    while (1) {
+                      switch (_context7.prev = _context7.next) {
+                        case 0:
+                          _context7.next = 2;
+                          return callbackResponse(_flowEvents.ERROR_EVENT);
+                        case 2:
+                          setKonnectorErrorDescription(connectionFlow.jobWatcher.on()._error);
+                        case 3:
+                        case "end":
+                          return _context7.stop();
+                      }
+                    }
+                  }, _callee7);
+                })));
                 connectionFlow.jobWatcher.on(_flowEvents.LOGIN_SUCCESS_EVENT, function () {
                   setIsVerifyingIdentity(false);
                 });
                 connectionFlow.jobWatcher.on(_flowEvents.SUCCESS_EVENT, function () {
                   callbackResponse(_flowEvents.SUCCESS_EVENT);
                 });
-              case 9:
+              case 8:
               case "end":
-                return _context7.stop();
+                return _context8.stop();
             }
           }
-        }, _callee7);
+        }, _callee8);
       }));
       return _getData.apply(this, arguments);
     }
@@ -1384,9 +1400,9 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
   }, [callbackResponse, client, currentFluidStatus.connection, currentFluidStatus.fluidType, currentFluidStatus.lastDataDate, dispatch, fluidSlug, fluidType, konnector, shouldRefreshConsent, trigger]);
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "konnector-section-root"
-  }, !showOfflineData && /*#__PURE__*/_react.default.createElement(_Connection.default, {
+  }, isWaitingForConsent && /*#__PURE__*/_react.default.createElement(_GrdfWaitConsent.GrdfWaitConsent, null), !isWaitingForConsent && !showOfflineData && /*#__PURE__*/_react.default.createElement(_Connection.default, {
     fluidType: fluidType
-  }), showOfflineData && !isWaitingForConsent && /*#__PURE__*/_react.default.createElement(_core.Accordion, {
+  }), !isWaitingForConsent && showOfflineData && /*#__PURE__*/_react.default.createElement(_core.Accordion, {
     expanded: showConnectionDetails,
     onChange: toggleAccordion,
     classes: {
@@ -1411,7 +1427,6 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
     }
   }, getConnectionCard())), /*#__PURE__*/_react.default.createElement(_KonnectorModal.default, {
     open: openModal,
-    isUpdating: isUpdating,
     isVerifyingIdentity: isVerifyingIdentity,
     state: konnectorState,
     error: konnectorErrorDescription,
@@ -1653,9 +1668,13 @@ var ExpiredConsentModal = function ExpiredConsentModal(_ref) {
         shouldLaunchAccount: true
       }));
       dispatch((0, _global.setShouldRefreshConsent)(true));
+      toggleModal();
+      navigate("/consumption/".concat(_enums.FluidType[fluidType].toLocaleLowerCase()));
+    }
+    if (fluidType === _enums.FluidType.GAS) {
+      toggleModal();
+      navigate("/connect/".concat(_enums.FluidType[fluidType].toLocaleLowerCase()));
     }
-    toggleModal();
-    navigate("/consumption/".concat(_enums.FluidType[fluidType].toLocaleLowerCase()));
   }, [dispatch, fluidStatus, fluidType, navigate, toggleModal]);
   return /*#__PURE__*/_react.default.createElement(_Dialog.default, {
     open: open,
@@ -2855,22 +2874,19 @@ exports.GrdfWaitConsent = void 0;
 var _regenerator = _interopRequireDefault(__webpack_require__("hJxD"));
 var _defineProperty2 = _interopRequireDefault(__webpack_require__("J58c"));
 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("HZZ/"));
-var _slicedToArray2 = _interopRequireDefault(__webpack_require__("XkwL"));
 var _core = __webpack_require__("rMFn");
 var _grdfMail = _interopRequireDefault(__webpack_require__("70Fk"));
 var _StyledIcon = _interopRequireDefault(__webpack_require__("VP3k"));
 var _I18n = __webpack_require__("nUfk");
 var _enums = __webpack_require__("j0hM");
-var _react = _interopRequireWildcard(__webpack_require__("ivGQ"));
+var _react = _interopRequireDefault(__webpack_require__("ivGQ"));
 var _global = __webpack_require__("33gc");
 var _hooks = __webpack_require__("6FOS");
 __webpack_require__("9gKJ");
-function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
-function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
-var GrdfWaitConsent = function GrdfWaitConsent(_ref) {
-  var showRelaunch = _ref.showRelaunch;
+var GrdfWaitConsent = function GrdfWaitConsent() {
+  var _currentFluidStatus$c;
   var _useI18n = (0, _I18n.useI18n)(),
     t = _useI18n.t;
   var dispatch = (0, _hooks.useAppDispatch)();
@@ -2879,22 +2895,16 @@ var GrdfWaitConsent = function GrdfWaitConsent(_ref) {
     }),
     fluidStatus = _useAppSelector.fluidStatus;
   var currentFluidStatus = fluidStatus[_enums.FluidType.GAS];
-  var account = currentFluidStatus.connection.account;
-  var _useState = (0, _react.useState)(''),
-    _useState2 = (0, _slicedToArray2.default)(_useState, 2),
-    consentEmail = _useState2[0],
-    setConsentEmail = _useState2[1];
+  var authData = (_currentFluidStatus$c = currentFluidStatus.connection.account) === null || _currentFluidStatus$c === void 0 ? void 0 : _currentFluidStatus$c.auth;
   var updateKonnector = /*#__PURE__*/function () {
-    var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
+    var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
       var updatedConnection;
       return _regenerator.default.wrap(function _callee$(_context) {
         while (1) {
           switch (_context.prev = _context.next) {
             case 0:
               updatedConnection = _objectSpread(_objectSpread({}, currentFluidStatus.connection), {}, {
-                // TODO : investigate is this is duplicate ?
-                shouldLaunchKonnector: true,
-                isUpdating: true
+                shouldLaunchKonnector: true
               });
               dispatch((0, _global.updateFluidConnection)({
                 fluidType: currentFluidStatus.fluidType,
@@ -2908,18 +2918,9 @@ var GrdfWaitConsent = function GrdfWaitConsent(_ref) {
       }, _callee);
     }));
     return function updateKonnector() {
-      return _ref2.apply(this, arguments);
+      return _ref.apply(this, arguments);
     };
   }();
-  (0, _react.useEffect)(function () {
-    if (account !== null && account !== void 0 && account.auth) {
-      var auth = account.auth;
-      var authData = auth;
-      if (authData.email) {
-        setConsentEmail(authData.email);
-      }
-    }
-  }, [account]);
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "grdfWait"
   }, /*#__PURE__*/_react.default.createElement("div", {
@@ -2928,14 +2929,14 @@ var GrdfWaitConsent = function GrdfWaitConsent(_ref) {
     className: "text-16-normal"
   }, t('auth.grdfgrandlyon.waiting.mailDelay')), /*#__PURE__*/_react.default.createElement("span", {
     className: "emailContainer"
-  }, consentEmail), /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
+  }, authData.email || ''), /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
     size: 80,
     icon: _grdfMail.default
   }), /*#__PURE__*/_react.default.createElement("div", {
     className: "text-18-normal"
   }, /*#__PURE__*/_react.default.createElement("span", {
     className: "text-18-bold green"
-  }, t('auth.grdfgrandlyon.waiting.validate')), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("span", null, t('auth.grdfgrandlyon.waiting.comeback'))), showRelaunch && /*#__PURE__*/_react.default.createElement(_core.Button, {
+  }, t('auth.grdfgrandlyon.waiting.validate')), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("span", null, t('auth.grdfgrandlyon.waiting.comeback'))), /*#__PURE__*/_react.default.createElement(_core.Button, {
     className: "btnPrimary",
     onClick: updateKonnector
   }, t('auth.grdfgrandlyon.waiting.button_done')));
@@ -3953,6 +3954,7 @@ var _Icon = _interopRequireDefault(__webpack_require__("AHiN"));
 var _enums = __webpack_require__("j0hM");
 var _lodash = __webpack_require__("nHcj");
 var _react = _interopRequireWildcard(__webpack_require__("ivGQ"));
+var _hooks = __webpack_require__("6FOS");
 var _utils = __webpack_require__("RgLR");
 var _KonnectorModalFooter = _interopRequireDefault(__webpack_require__("X1ii"));
 __webpack_require__("0gil");
@@ -3960,7 +3962,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
 var KonnectorModal = function KonnectorModal(_ref) {
   var open = _ref.open,
-    isUpdating = _ref.isUpdating,
     isVerifyingIdentity = _ref.isVerifyingIdentity,
     state = _ref.state,
     error = _ref.error,
@@ -3971,6 +3972,11 @@ var KonnectorModal = function KonnectorModal(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
     t = _useI18n.t;
   var fluidName = (0, _utils.getFluidName)(fluidType);
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+      return state.ecolyo.global;
+    }),
+    fluidStatus = _useAppSelector.fluidStatus;
+  var isUpdating = fluidStatus[fluidType].connection.isUpdating;
   var _useState = (0, _react.useState)(0),
     _useState2 = (0, _slicedToArray2.default)(_useState, 2),
     index = _useState2[0],
@@ -4038,6 +4044,9 @@ var KonnectorModal = function KonnectorModal(_ref) {
       clearInterval(interval);
     };
   }, [open, state]);
+  if (fluidType === _enums.FluidType.GAS && error === _enums.KonnectorError.CHALLENGE_ASKED) {
+    return null;
+  }
   return /*#__PURE__*/_react.default.createElement(_Dialog.default, {
     open: open,
     disableEscapeKeyDown: true,
@@ -4058,7 +4067,7 @@ var KonnectorModal = function KonnectorModal(_ref) {
   }), !isVerifyingIdentity && /*#__PURE__*/_react.default.createElement("div", {
     className: "kmodal-content-text text-16-normal"
   }, /*#__PURE__*/_react.default.createElement("div", {
-    className: "kc-wait text-16-bold"
+    className: "text-16-bold"
   }, t("konnector_modal.loading_data".concat(isUpdating ? '_update' : '')))), isUpdating && getUpdatingText(), !isUpdating && getConnectionText()) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
     className: "kmodal-info"
   }, state === _flowEvents.ERROR_EVENT && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, error === _enums.KonnectorError.LOGIN_FAILED &&
@@ -4531,7 +4540,6 @@ var _defineProperty2 = _interopRequireDefault(__webpack_require__("J58c"));
 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("HZZ/"));
 var _slicedToArray2 = _interopRequireDefault(__webpack_require__("XkwL"));
 var _ExpiredConsentModal = _interopRequireDefault(__webpack_require__("Hmac"));
-var _GrdfWaitConsent = __webpack_require__("c3xf");
 var _Content = _interopRequireDefault(__webpack_require__("Yd9R"));
 var _CustomPopupModal = _interopRequireDefault(__webpack_require__("oJdK"));
 var _DateNavigator = _interopRequireDefault(__webpack_require__("r5RG"));
@@ -4759,14 +4767,12 @@ var ConsumptionView = function ConsumptionView(_ref) {
   })), /*#__PURE__*/_react.default.createElement(_Content.default, null, /*#__PURE__*/_react.default.createElement(_FluidButtons.default, {
     activeFluid: fluidType,
     key: updateKey
-  }), isWaitingForConsent ? /*#__PURE__*/_react.default.createElement(_GrdfWaitConsent.GrdfWaitConsent, {
-    showRelaunch: true
-  }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showOfflineData && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FluidChart.default, {
+  }), showOfflineData && !isWaitingForConsent && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FluidChart.default, {
     fluidType: fluidType,
     key: lastDataDateKey
   }), /*#__PURE__*/_react.default.createElement(_ConsumptionDetails.default, {
     fluidType: fluidType
-  }))), !isMulti && /*#__PURE__*/_react.default.createElement(_KonnectorViewerCard.default, {
+  })), !isMulti && /*#__PURE__*/_react.default.createElement(_KonnectorViewerCard.default, {
     fluidType: fluidType
   }), isMulti && !showOfflineData && /*#__PURE__*/_react.default.createElement(_KonnectorViewerList.default, null)), openReleaseNoteModal && /*#__PURE__*/_react.default.createElement(_ReleaseNotesModal.default, {
     open: openReleaseNoteModal,
diff --git a/app/ecolyo.6670310291ae0f1ea868.js b/app/ecolyo.d42dfcb1d5c372394d0e.js
similarity index 99%
rename from app/ecolyo.6670310291ae0f1ea868.js
rename to app/ecolyo.d42dfcb1d5c372394d0e.js
index 9f300b96c..7c46f965d 100644
--- a/app/ecolyo.6670310291ae0f1ea868.js
+++ b/app/ecolyo.d42dfcb1d5c372394d0e.js
@@ -64,7 +64,7 @@
 /******/
 /******/ 	// script path function
 /******/ 	function jsonpScriptSrc(chunkId) {
-/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"3":"f407a5f06d8f4c483bb7","4":"3b4996d5b14bfb7665c0","5":"6c22dc3940ec3cf20e36","6":"55a8c1b77f056fa82248","7":"d61472e75eb196504d3e","8":"a73a83af326b8e1dfa4a","9":"73a97eac0086801c9dc9","10":"26edbface76655274ad8","11":"3baf0b358c1c353001a4"}[chunkId] + ".js"
+/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"3":"f407a5f06d8f4c483bb7","4":"3b4996d5b14bfb7665c0","5":"a8245e5b7531e1e151eb","6":"55a8c1b77f056fa82248","7":"d61472e75eb196504d3e","8":"a73a83af326b8e1dfa4a","9":"73a97eac0086801c9dc9","10":"26edbface76655274ad8","11":"3baf0b358c1c353001a4"}[chunkId] + ".js"
 /******/ 	}
 /******/
 /******/ 	// The require function
@@ -16903,14 +16903,13 @@ var FluidService = /*#__PURE__*/function () {
                 elecStatus = _yield$Promise$all8[0];
                 waterStatus = _yield$Promise$all8[1];
                 gasStatus = _yield$Promise$all8[2];
-                console.log('🚀 ~ FluidService ~ gasStatus:', gasStatus);
-                _context.next = 36;
+                _context.next = 35;
                 return consumptionService.fetchAllFirstDateData(_utils.allFluids);
-              case 36:
+              case 35:
                 firstDataDates = _context.sent;
-                _context.next = 39;
+                _context.next = 38;
                 return consumptionService.fetchAllLastDateData(_utils.allFluids);
-              case 39:
+              case 38:
                 lastDataDates = _context.sent;
                 result = [{
                   fluidType: _enums.FluidType.ELECTRICITY,
@@ -16959,7 +16958,7 @@ var FluidService = /*#__PURE__*/function () {
                   }
                 }];
                 return _context.abrupt("return", result);
-              case 42:
+              case 41:
               case "end":
                 return _context.stop();
             }
diff --git a/index.html b/index.html
index 8a6d0374e..53688068e 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- PWA Colors --><meta name="theme-color" content="#343641"><meta name="background-color" content="#121212">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.0d643adf7b74041441a1.js"></script><script src="app/ecolyo.6670310291ae0f1ea868.js"></script></div></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- PWA Colors --><meta name="theme-color" content="#343641"><meta name="background-color" content="#121212">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.0d643adf7b74041441a1.js"></script><script src="app/ecolyo.d42dfcb1d5c372394d0e.js"></script></div></body></html>
\ No newline at end of file
diff --git a/services/aggregatorUsageEvents/ecolyo.js b/services/aggregatorUsageEvents/ecolyo.js
index f27c393b4..640c6bde7 100644
--- a/services/aggregatorUsageEvents/ecolyo.js
+++ b/services/aggregatorUsageEvents/ecolyo.js
@@ -100512,7 +100512,6 @@ class FluidService {
       const [elecTrigger, waterTrigger, gasTrigger] = await Promise.all([elecAccount && elecKonnector ? triggerService.getTrigger(elecAccount, elecKonnector) : null, waterAccount && waterKonnector ? triggerService.getTrigger(waterAccount, waterKonnector) : null, gasAccount && gasKonnector ? triggerService.getTrigger(gasAccount, gasKonnector) : null]);
       const consumptionService = new _consumption.default(this._client);
       const [elecStatus, waterStatus, gasStatus] = await Promise.all([elecTrigger ? triggerService.fetchTriggerState(elecTrigger) : null, waterTrigger ? triggerService.fetchTriggerState(waterTrigger) : null, gasTrigger ? triggerService.fetchTriggerState(gasTrigger) : null]);
-      console.log('🚀 ~ FluidService ~ gasStatus:', gasStatus);
       const firstDataDates = await consumptionService.fetchAllFirstDateData(_utils.allFluids);
       const lastDataDates = await consumptionService.fetchAllLastDateData(_utils.allFluids);
       const result = [{
-- 
GitLab