From ad92a6787385ec991edc4c031633b10cd12bcb3c Mon Sep 17 00:00:00 2001
From: Bastien DUMONT <bdumont@grandlyon.com>
Date: Wed, 15 Mar 2023 13:58:25 +0100
Subject: [PATCH] publish: Merge branch 'cleanup-redux' into 'dev'

generated from commit ca12a903c26e0a3627a456127723ba8fa4b96266
---
 ...41cb.js => ecolyo.11a0524f373f31cee670.js} |  23 +-
 ...1eff.js => ecolyo.9343f3201d05ad1a3cf3.js} | 100 ++-
 ...d8e2.js => ecolyo.36d65c19c36ee336be1e.js} |  15 +-
 ...de9c.js => ecolyo.b68bd78f52796a5a0574.js} |  15 +-
 ...bb12.js => ecolyo.5d999cf4bd9b64c4eb2f.js} |  40 +-
 ...2805.js => ecolyo.50adf68b820b9d0f117e.js} | 648 +++++++++---------
 apple-touch-icon-retina.png                   | Bin 23363 -> 0 bytes
 cover.png                                     | Bin 29305 -> 0 bytes
 index.html                                    |   2 +-
 serviceWorker.js                              |  13 +
 10 files changed, 439 insertions(+), 417 deletions(-)
 rename 2/{ecolyo.428a0f6e105059ec41cb.js => ecolyo.11a0524f373f31cee670.js} (99%)
 rename 3/{ecolyo.0e7e4206658f5e4b1eff.js => ecolyo.9343f3201d05ad1a3cf3.js} (99%)
 rename 4/{ecolyo.b36c04845ac8ccdfd8e2.js => ecolyo.36d65c19c36ee336be1e.js} (99%)
 rename 5/{ecolyo.4c1d9ae558d5214ade9c.js => ecolyo.b68bd78f52796a5a0574.js} (98%)
 rename 6/{ecolyo.8a0fb54d4ad7a438bb12.js => ecolyo.5d999cf4bd9b64c4eb2f.js} (99%)
 rename app/{ecolyo.c6f769f46df3b9432805.js => ecolyo.50adf68b820b9d0f117e.js} (99%)
 delete mode 100644 apple-touch-icon-retina.png
 delete mode 100644 cover.png

diff --git a/2/ecolyo.428a0f6e105059ec41cb.js b/2/ecolyo.11a0524f373f31cee670.js
similarity index 99%
rename from 2/ecolyo.428a0f6e105059ec41cb.js
rename to 2/ecolyo.11a0524f373f31cee670.js
index 330b6544a..23dba3270 100644
--- a/2/ecolyo.428a0f6e105059ec41cb.js
+++ b/2/ecolyo.11a0524f373f31cee670.js
@@ -146,14 +146,12 @@ var AnalysisConsumption = function AnalysisConsumption(_ref) {
   var navigate = (0, _reactRouterDom.useNavigate)();
   var client = (0, _cozyClient.useClient)();
   var userPriceConsumption = aggregatedPerformanceIndicator.value || 0;
-  var profile = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profile;
-  });
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
+    return state.ecolyo;
   }),
-      fluidTypes = _useSelector.fluidTypes;
+      fluidTypes = _useSelector.global.fluidTypes,
+      profile = _useSelector.profile;
 
   var _useState = (0, _react.useState)(0),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -1124,24 +1122,17 @@ var AnalysisView = function AnalysisView() {
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
     return state.ecolyo;
   }),
+      selectedDate = _useSelector.chart.selectedDate,
       analysisNotification = _useSelector.global.analysisNotification,
-      monthlyAnalysisDate = _useSelector.profile.monthlyAnalysisDate;
-
-  var _useSelector2 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.chart;
-  }),
-      selectedDate = _useSelector2.selectedDate;
+      _useSelector$profile = _useSelector.profile,
+      monthlyAnalysisDate = _useSelector$profile.monthlyAnalysisDate,
+      mailToken = _useSelector$profile.mailToken;
 
   var _useState3 = (0, _react.useState)(monthlyAnalysisDate),
       _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
       currentAnalysisDate = _useState4[0],
       setCurrentAnalysisDate = _useState4[1];
 
-  var _useSelector3 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profile;
-  }),
-      mailToken = _useSelector3.mailToken;
-
   var dispatch = (0, _reactRedux.useDispatch)();
   var defineHeaderHeight = (0, _react.useCallback)(function (height) {
     setHeaderHeight(height);
diff --git a/3/ecolyo.0e7e4206658f5e4b1eff.js b/3/ecolyo.9343f3201d05ad1a3cf3.js
similarity index 99%
rename from 3/ecolyo.0e7e4206658f5e4b1eff.js
rename to 3/ecolyo.9343f3201d05ad1a3cf3.js
index 3123e1b17..c19a010bb 100644
--- a/3/ecolyo.0e7e4206658f5e4b1eff.js
+++ b/3/ecolyo.9343f3201d05ad1a3cf3.js
@@ -1210,6 +1210,8 @@ var _chart = __webpack_require__("U6AS");
 
 var _global = __webpack_require__("c4IZ");
 
+var _modal = __webpack_require__("lSJB");
+
 var _utils = __webpack_require__("c+yx");
 
 __webpack_require__("xz5R");
@@ -1247,7 +1249,7 @@ var ConsumptionView = function ConsumptionView(_ref) {
       fluidStatus = _useSelector$global.fluidStatus,
       releaseNotes = _useSelector$global.releaseNotes,
       customPopupModal = _useSelector$global.customPopupModal,
-      openPartnersIssueModal = _useSelector$global.openPartnersIssueModal;
+      partnersIssueModal = _useSelector.modal.partnersIssueModal;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -1337,7 +1339,7 @@ var ConsumptionView = function ConsumptionView(_ref) {
               updatedProfile = _context.sent;
 
               if (updatedProfile) {
-                dispatch((0, _global.setPartnersIssue)(_objectSpread(_objectSpread({}, openPartnersIssueModal), {}, (0, _defineProperty2.default)({}, getPartnerKey(fluidType), false))));
+                dispatch((0, _modal.openPartnersModal)(_objectSpread(_objectSpread({}, partnersIssueModal), {}, (0, _defineProperty2.default)({}, getPartnerKey(fluidType), false))));
               }
 
             case 9:
@@ -1351,7 +1353,7 @@ var ConsumptionView = function ConsumptionView(_ref) {
     return function (_x) {
       return _ref2.apply(this, arguments);
     };
-  }(), [client, dispatch, openPartnersIssueModal]);
+  }(), [client, dispatch, partnersIssueModal]);
 
   var handleCloseCustomPopupModal = /*#__PURE__*/function () {
     var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
@@ -1480,7 +1482,7 @@ var ConsumptionView = function ConsumptionView(_ref) {
     return /*#__PURE__*/_react.default.createElement(_PartnerIssueModal.default, {
       key: issuedFluid.fluidType,
       issuedFluid: issuedFluid,
-      open: openPartnersIssueModal[getPartnerKey(issuedFluid.fluidType)],
+      open: partnersIssueModal[getPartnerKey(issuedFluid.fluidType)],
       handleCloseClick: handleClosePartnerIssueModal
     });
   }), /*#__PURE__*/_react.default.createElement(_CustomPopupModal.default, {
@@ -1975,7 +1977,7 @@ var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
 
 var _fluid2 = _interopRequireDefault(__webpack_require__("z34f"));
 
-var _partnersInfo = _interopRequireDefault(__webpack_require__("4zrG"));
+var _partnersInfo2 = _interopRequireDefault(__webpack_require__("4zrG"));
 
 var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
@@ -2023,10 +2025,13 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
   var trigger = fluidStatus.connection.trigger;
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
+    return state.ecolyo;
   }),
-      statusArray = _useSelector.fluidStatus,
-      shouldRefreshConsent = _useSelector.shouldRefreshConsent;
+      currentChallenge = _useSelector.challenge.currentChallenge,
+      _useSelector$global = _useSelector.global,
+      statusArray = _useSelector$global.fluidStatus,
+      shouldRefreshConsent = _useSelector$global.shouldRefreshConsent,
+      partnersInfo = _useSelector$global.partnersInfo;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -2063,16 +2068,11 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
       isOutdatedData = _useState14[0],
       setIsOutdatedData = _useState14[1];
 
-  var _useSelector2 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.challenge;
-  }),
-      currentChallenge = _useSelector2.currentChallenge;
-
   var fluidService = (0, _react.useMemo)(function () {
     return new _fluid2.default(client);
   }, [client]);
   var partnersInfoService = (0, _react.useMemo)(function () {
-    return new _partnersInfo.default(client);
+    return new _partnersInfo2.default(client);
   }, [client]);
   var lastDataDate = fluidType !== _fluid.FluidType.MULTIFLUID && statusArray[fluidType].lastDataDate ? statusArray[fluidType].lastDataDate.toLocaleString() + fluidType : fluidType;
   var iconType = (0, _picto.getParamPicto)(fluidStatus.fluidType);
@@ -2166,7 +2166,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
     }, _callee2);
   })), [client, dispatch, currentChallenge]);
   var handleAccountDeletion = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
-    var _updatedFluidStatus, partnersInfo, _updatedFluidStatus2;
+    var _updatedFluidStatus, _partnersInfo, _updatedFluidStatus2;
 
     return _regenerator.default.wrap(function _callee3$(_context3) {
       while (1) {
@@ -2191,9 +2191,9 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
             return partnersInfoService.getPartnersInfo();
 
           case 8:
-            partnersInfo = _context3.sent;
+            _partnersInfo = _context3.sent;
             _context3.next = 11;
-            return fluidService.getFluidStatus(partnersInfo);
+            return fluidService.getFluidStatus(_partnersInfo);
 
           case 11:
             _updatedFluidStatus2 = _context3.sent;
@@ -2211,7 +2211,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
   })), [refreshChallengeState, updateGlobalFluidStatus, setActive, partnersInfoService, fluidService, dispatch]);
   var handleConnectionEnd = (0, _react.useCallback)( /*#__PURE__*/function () {
     var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(isSuccess) {
-      var auth, accountService, partnersInfo, _updatedFluidStatus;
+      var auth, accountService, _updatedFluidStatus3;
 
       return _regenerator.default.wrap(function _callee4$(_context4) {
         while (1) {
@@ -2240,7 +2240,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
               return handleAccountDeletion();
 
             case 7:
-              _context4.next = 20;
+              _context4.next = 17;
               break;
 
             case 9:
@@ -2254,30 +2254,25 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
 
             case 12:
               if (!(updatedFluidStatus.length > 0)) {
-                _context4.next = 20;
+                _context4.next = 17;
                 break;
               }
 
               _context4.next = 15;
-              return partnersInfoService.getPartnersInfo();
-
-            case 15:
-              partnersInfo = _context4.sent;
-              _context4.next = 18;
               return fluidService.getFluidStatus(partnersInfo);
 
-            case 18:
-              _updatedFluidStatus = _context4.sent;
-              dispatch((0, _global.setFluidStatus)(_updatedFluidStatus));
+            case 15:
+              _updatedFluidStatus3 = _context4.sent;
+              dispatch((0, _global.setFluidStatus)(_updatedFluidStatus3));
 
-            case 20:
+            case 17:
               setActive(false);
               setOpenModal(false); // TODO null state seems to be read before modal closing and display a success icon in modal
 
               setKonnectorState(null);
               setKonnectorErrorDescription(null);
 
-            case 24:
+            case 21:
             case "end":
               return _context4.stop();
           }
@@ -2961,16 +2956,14 @@ var FluidChartSlide = function FluidChartSlide(_ref) {
   var dispatch = (0, _reactRedux.useDispatch)();
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.chart;
-  }),
-      currentTimeStep = _useSelector.currentTimeStep,
-      currentIndex = _useSelector.currentIndex;
-
-  var _useSelector2 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
+    return state.ecolyo;
   }),
-      fluidTypes = _useSelector2.fluidTypes,
-      fluidStatus = _useSelector2.fluidStatus;
+      _useSelector$chart = _useSelector.chart,
+      currentTimeStep = _useSelector$chart.currentTimeStep,
+      currentIndex = _useSelector$chart.currentIndex,
+      _useSelector$global = _useSelector.global,
+      fluidStatus = _useSelector$global.fluidStatus,
+      fluidTypes = _useSelector$global.fluidTypes;
 
   var _useState = (0, _react.useState)({
     actualData: [],
@@ -4237,16 +4230,14 @@ var ConsumptionVisualizer = function ConsumptionVisualizer(_ref) {
       setActive = _ref.setActive;
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
-  }),
-      fluidStatus = _useSelector.fluidStatus,
-      fluidTypes = _useSelector.fluidTypes;
-
-  var _useSelector2 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.chart;
+    return state.ecolyo;
   }),
-      currentDatachart = _useSelector2.currentDatachart,
-      currentDatachartIndex = _useSelector2.currentDatachartIndex;
+      _useSelector$chart = _useSelector.chart,
+      currentDatachart = _useSelector$chart.currentDatachart,
+      currentDatachartIndex = _useSelector$chart.currentDatachartIndex,
+      _useSelector$global = _useSelector.global,
+      fluidStatus = _useSelector$global.fluidStatus,
+      fluidTypes = _useSelector$global.fluidTypes;
 
   var dataload = currentDatachart.actualData[currentDatachartIndex];
   var compareDataload = currentDatachart.comparisonData ? currentDatachart.comparisonData[currentDatachartIndex] : null;
@@ -5631,15 +5622,12 @@ var FluidChart = function FluidChart(_ref) {
   var client = (0, _cozyClient.useClient)();
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
-  }),
-      fluidStatus = _useSelector.fluidStatus;
-
-  var _useSelector2 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.chart;
+    return state.ecolyo;
   }),
-      currentTimeStep = _useSelector2.currentTimeStep,
-      selectedDate = _useSelector2.selectedDate;
+      _useSelector$chart = _useSelector.chart,
+      currentTimeStep = _useSelector$chart.currentTimeStep,
+      selectedDate = _useSelector$chart.selectedDate,
+      fluidStatus = _useSelector.global.fluidStatus;
 
   var _useExploration = (0, _useExploration3.default)(),
       _useExploration2 = (0, _slicedToArray2.default)(_useExploration, 2),
diff --git a/4/ecolyo.b36c04845ac8ccdfd8e2.js b/4/ecolyo.36d65c19c36ee336be1e.js
similarity index 99%
rename from 4/ecolyo.b36c04845ac8ccdfd8e2.js
rename to 4/ecolyo.36d65c19c36ee336be1e.js
index b0b9e8790..d6c6faec1 100644
--- a/4/ecolyo.b36c04845ac8ccdfd8e2.js
+++ b/4/ecolyo.36d65c19c36ee336be1e.js
@@ -95,18 +95,15 @@ var EcogestureView = function EcogestureView() {
   var client = (0, _cozyClient.useClient)();
   var dispatch = (0, _reactRedux.useDispatch)();
   var tab = new URLSearchParams((0, _reactRouterDom.useLocation)().search).get('tab');
-  var profileType = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profileType;
-  });
-  var profileEcogesture = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profileEcogesture;
-  });
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profile;
+    return state.ecolyo;
   }),
-      haveSeenEcogestureModal = _useSelector.haveSeenEcogestureModal,
-      isProfileEcogestureCompleted = _useSelector.isProfileEcogestureCompleted;
+      _useSelector$profile = _useSelector.profile,
+      haveSeenEcogestureModal = _useSelector$profile.haveSeenEcogestureModal,
+      isProfileEcogestureCompleted = _useSelector$profile.isProfileEcogestureCompleted,
+      profileEcogesture = _useSelector.profileEcogesture,
+      profileType = _useSelector.profileType;
 
   var _useState3 = (0, _react.useState)(tab ? parseInt(tab) : _ecogesture.EcogestureTab.OBJECTIVE),
       _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
diff --git a/5/ecolyo.4c1d9ae558d5214ade9c.js b/5/ecolyo.b68bd78f52796a5a0574.js
similarity index 98%
rename from 5/ecolyo.4c1d9ae558d5214ade9c.js
rename to 5/ecolyo.b68bd78f52796a5a0574.js
index 872207057..886876155 100644
--- a/5/ecolyo.4c1d9ae558d5214ade9c.js
+++ b/5/ecolyo.b68bd78f52796a5a0574.js
@@ -120,16 +120,13 @@ var DateNavigator = function DateNavigator(_ref) {
   var dispatch = (0, _reactRedux.useDispatch)();
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.chart;
+    return state.ecolyo;
   }),
-      currentTimeStep = _useSelector.currentTimeStep,
-      selectedDate = _useSelector.selectedDate,
-      currentIndex = _useSelector.currentIndex;
-
-  var _useSelector2 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
-  }),
-      fluidStatus = _useSelector2.fluidStatus;
+      _useSelector$chart = _useSelector.chart,
+      currentTimeStep = _useSelector$chart.currentTimeStep,
+      selectedDate = _useSelector$chart.selectedDate,
+      currentIndex = _useSelector$chart.currentIndex,
+      fluidStatus = _useSelector.global.fluidStatus;
 
   var disablePrev = selectedDate < _luxon.DateTime.local(0, 1, 1).setZone('utc', {
     keepLocalTime: true
diff --git a/6/ecolyo.8a0fb54d4ad7a438bb12.js b/6/ecolyo.5d999cf4bd9b64c4eb2f.js
similarity index 99%
rename from 6/ecolyo.8a0fb54d4ad7a438bb12.js
rename to 6/ecolyo.5d999cf4bd9b64c4eb2f.js
index e60253ab7..2cf57f8e4 100644
--- a/6/ecolyo.8a0fb54d4ad7a438bb12.js
+++ b/6/ecolyo.5d999cf4bd9b64c4eb2f.js
@@ -53,14 +53,12 @@ var ReportOptions = function ReportOptions() {
 
   var client = (0, _cozyClient.useClient)();
   var dispatch = (0, _reactRedux.useDispatch)();
-  var profile = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profile;
-  });
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
+    return state.ecolyo;
   }),
-      fluidStatus = _useSelector.fluidStatus;
+      fluidStatus = _useSelector.global.fluidStatus,
+      profile = _useSelector.profile;
 
   var _useState = (0, _react.useState)(null),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -305,12 +303,11 @@ 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 ProfileTypeOptions = function ProfileTypeOptions() {
-  var profile = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profile;
-  });
-  var profileType = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profileType;
-  });
+  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+    return state.ecolyo;
+  }),
+      profile = _useSelector.profile,
+      profileType = _useSelector.profileType;
 
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
@@ -1905,6 +1902,21 @@ var OptionsView = function OptionsView() {
     setHeaderHeight(height);
   };
 
+  var beforeInstallPrompt = null;
+  window.addEventListener('beforeinstallprompt', eventHandler, errorHandler);
+
+  function eventHandler(event) {
+    beforeInstallPrompt = event;
+  }
+
+  function errorHandler(e) {
+    console.log('error: ' + e);
+  }
+
+  function install() {
+    if (beforeInstallEvent) beforeInstallPrompt.prompt();
+  }
+
   return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CozyBar.default, {
     titleKey: 'common.title_options'
   }), /*#__PURE__*/_react.default.createElement(_Header.default, {
@@ -1912,7 +1924,9 @@ var OptionsView = function OptionsView() {
     desktopTitleKey: 'common.title_options'
   }), /*#__PURE__*/_react.default.createElement(_Content.default, {
     height: headerHeight
-  }, /*#__PURE__*/_react.default.createElement(_ProfileTypeOptions.default, null), /*#__PURE__*/_react.default.createElement(_exportOptions.default, null), /*#__PURE__*/_react.default.createElement(_ReportOptions.default, null), /*#__PURE__*/_react.default.createElement(_HelpLink.default, null), /*#__PURE__*/_react.default.createElement(_LegalNoticeLink.default, null), /*#__PURE__*/_react.default.createElement(_GCULink.default, null), /*#__PURE__*/_react.default.createElement(_MatomoOptOut.default, null), /*#__PURE__*/_react.default.createElement("div", {
+  }, /*#__PURE__*/_react.default.createElement(_ProfileTypeOptions.default, null), /*#__PURE__*/_react.default.createElement(_exportOptions.default, null), /*#__PURE__*/_react.default.createElement(_ReportOptions.default, null), /*#__PURE__*/_react.default.createElement(_HelpLink.default, null), /*#__PURE__*/_react.default.createElement(_LegalNoticeLink.default, null), /*#__PURE__*/_react.default.createElement(_GCULink.default, null), /*#__PURE__*/_react.default.createElement("button", {
+    onClick: install
+  }, "Installer"), /*#__PURE__*/_react.default.createElement(_MatomoOptOut.default, null), /*#__PURE__*/_react.default.createElement("div", {
     className: "parameters-logos"
   }, /*#__PURE__*/_react.default.createElement("img", {
     src: _logos_partenaires.default,
@@ -2109,7 +2123,7 @@ var HelpLink = function HelpLink() {
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "help-root",
     onClick: function onClick() {
-      return dispatch((0, _modal.updateModalIsFeedbacksOpen)(true));
+      return dispatch((0, _modal.openFeedbackModal)(true));
     }
   }, /*#__PURE__*/_react.default.createElement("div", {
     className: "help-content"
diff --git a/app/ecolyo.c6f769f46df3b9432805.js b/app/ecolyo.50adf68b820b9d0f117e.js
similarity index 99%
rename from app/ecolyo.c6f769f46df3b9432805.js
rename to app/ecolyo.50adf68b820b9d0f117e.js
index 191f14ae0..0f6e72c4c 100644
--- a/app/ecolyo.c6f769f46df3b9432805.js
+++ b/app/ecolyo.50adf68b820b9d0f117e.js
@@ -64,7 +64,7 @@
 /******/
 /******/ 	// script path function
 /******/ 	function jsonpScriptSrc(chunkId) {
-/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"2":"428a0f6e105059ec41cb","3":"0e7e4206658f5e4b1eff","4":"b36c04845ac8ccdfd8e2","5":"4c1d9ae558d5214ade9c","6":"8a0fb54d4ad7a438bb12","7":"403585665c5e67c3d156","8":"8763ca2635d712139819","9":"9ad8f654859d6a5af353"}[chunkId] + ".js"
+/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"2":"11a0524f373f31cee670","3":"9343f3201d05ad1a3cf3","4":"36d65c19c36ee336be1e","5":"b68bd78f52796a5a0574","6":"5d999cf4bd9b64c4eb2f","7":"403585665c5e67c3d156","8":"8763ca2635d712139819","9":"9ad8f654859d6a5af353"}[chunkId] + ".js"
 /******/ 	}
 /******/
 /******/ 	// The require function
@@ -1685,6 +1685,8 @@ var _chart = __webpack_require__("U6AS");
 
 var _global = __webpack_require__("c4IZ");
 
+var _modal = __webpack_require__("lSJB");
+
 var _profile = __webpack_require__("jPH6");
 
 var _profileEcogesture = __webpack_require__("Zmlh");
@@ -1841,7 +1843,7 @@ var SplashRoot = function SplashRoot(_ref) {
                   if (Object.values(partnersIssue).some(function (issue) {
                     return issue;
                   })) {
-                    dispatch((0, _global.setPartnersIssue)(partnersIssue));
+                    dispatch((0, _modal.openPartnersModal)(partnersIssue));
                   }
                 }
               } catch (error) {
@@ -1890,63 +1892,64 @@ var SplashRoot = function SplashRoot(_ref) {
     }
 
     function _loadData() {
-      _loadData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
-        var initializationService, customPopupService, ms, migrationsResult, termsStatus, profile, profileType, profileEcogesture, _yield$Promise$all, _yield$Promise$all2, ecogestureHash, duelHash, quizHash, challengeHash, explorationHash, analysisResult, fluidStatus, refDate, lastDataDate, _iterator, _step, fluid, userChallengeList, _filteredCurrentOngoi, _filteredCurrentOngoi2, _filteredCurrentOngoi3, _filteredCurrentDuelC, filteredCurrentOngoingChallenge, actionService, updatedUserChallenge, filteredCurrentDuelChallenge, _yield$initialization, _updatedUserChallenge, dataloads, challengeService, _yield$challengeServi, isDone, customPopup, partnersInfoService, partnersInfo;
+      _loadData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
+        var initializationService, customPopupService, partnersInfoService, ms, migrationsResult, termsStatus, profile, profileType, profileEcogesture, _yield$Promise$all, _yield$Promise$all2, ecogestureHash, duelHash, quizHash, challengeHash, explorationHash, analysisResult, fluidStatus, refDate, lastDataDate, _iterator, _step, fluid, userChallengeList, _filteredCurrentOngoi, _filteredCurrentOngoi2, _filteredCurrentOngoi3, _filteredCurrentDuelC, filteredCurrentOngoingChallenge, actionService, updatedUserChallenge, filteredCurrentDuelChallenge, _yield$initialization, _updatedUserChallenge, dataloads, challengeService, _yield$challengeServi, isDone;
 
-        return _regenerator.default.wrap(function _callee4$(_context4) {
+        return _regenerator.default.wrap(function _callee6$(_context6) {
           while (1) {
-            switch (_context4.prev = _context4.next) {
+            switch (_context6.prev = _context6.next) {
               case 0:
                 initializationService = new _initialization.default(client, setInitStep, setInitStepErrors);
                 customPopupService = new _customPopup.default(client);
+                partnersInfoService = new _partnersInfo.default(client);
                 ms = new _migration2.MigrationService(client, setInitStepErrors);
-                _context4.prev = 3;
-                _context4.next = 6;
+                _context6.prev = 4;
+                _context6.next = 7;
                 return ms.runMigrations(_migration.migrations);
 
-              case 6:
-                migrationsResult = _context4.sent;
+              case 7:
+                migrationsResult = _context6.sent;
                 // Init last release notes when they exist
                 dispatch((0, _global.showReleaseNotes)(migrationsResult.show, migrationsResult.notes, migrationsResult.redirectLink)); // init Terms
 
-                _context4.next = 10;
+                _context6.next = 11;
                 return initializationService.initConsent();
 
-              case 10:
-                termsStatus = _context4.sent;
+              case 11:
+                termsStatus = _context6.sent;
                 if (subscribed) dispatch((0, _global.updateTermValidation)(termsStatus)); // Init fluidPrices
 
-                _context4.next = 14;
+                _context6.next = 15;
                 return initializationService.initFluidPrices();
 
-              case 14:
-                _context4.next = 16;
+              case 15:
+                _context6.next = 17;
                 return initializationService.initProfile();
 
-              case 16:
-                profile = _context4.sent;
-                _context4.next = 19;
+              case 17:
+                profile = _context6.sent;
+                _context6.next = 20;
                 return initializationService.initProfileType();
 
-              case 19:
-                profileType = _context4.sent;
-                _context4.next = 22;
+              case 20:
+                profileType = _context6.sent;
+                _context6.next = 23;
                 return initializationService.initProfileEcogesture();
 
-              case 22:
-                profileEcogesture = _context4.sent;
+              case 23:
+                profileEcogesture = _context6.sent;
 
                 if (!(subscribed && profile)) {
-                  _context4.next = 46;
+                  _context6.next = 47;
                   break;
                 }
 
                 setValidExploration(_userExploration.UserExplorationID.EXPLORATION007);
-                _context4.next = 27;
+                _context6.next = 28;
                 return Promise.all([initializationService.initEcogesture(profile.ecogestureHash), initializationService.initDuelEntity(profile.duelHash), initializationService.initQuizEntity(profile.quizHash), initializationService.initExplorationEntity(profile.challengeHash), initializationService.initChallengeEntity(profile.explorationHash), initializationService.initAnalysis(profile)]);
 
-              case 27:
-                _yield$Promise$all = _context4.sent;
+              case 28:
+                _yield$Promise$all = _context6.sent;
                 _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 6);
                 ecogestureHash = _yield$Promise$all2[0];
                 duelHash = _yield$Promise$all2[1];
@@ -1973,12 +1976,12 @@ var SplashRoot = function SplashRoot(_ref) {
 
                 dispatch((0, _global.toggleAnalysisNotification)(!profile.haveSeenLastAnalysis));
 
-              case 46:
-                _context4.next = 48;
+              case 47:
+                _context6.next = 49;
                 return initializationService.initFluidStatus();
 
-              case 48:
-                fluidStatus = _context4.sent;
+              case 49:
+                fluidStatus = _context6.sent;
 
                 if (subscribed) {
                   dispatch((0, _global.setFluidStatus)(fluidStatus));
@@ -2006,14 +2009,14 @@ var SplashRoot = function SplashRoot(_ref) {
                 } // Init Challenge
 
 
-                _context4.next = 52;
+                _context6.next = 53;
                 return initializationService.initUserChallenges(fluidStatus);
 
-              case 52:
-                userChallengeList = _context4.sent;
+              case 53:
+                userChallengeList = _context6.sent;
 
                 if (!subscribed) {
-                  _context4.next = 79;
+                  _context6.next = 80;
                   break;
                 }
 
@@ -2028,22 +2031,22 @@ var SplashRoot = function SplashRoot(_ref) {
 
 
                 if (!(((_filteredCurrentOngoi2 = filteredCurrentOngoingChallenge[0]) === null || _filteredCurrentOngoi2 === void 0 ? void 0 : _filteredCurrentOngoi2.action.state) === _userAction.UserActionState.ONGOING)) {
-                  _context4.next = 63;
+                  _context6.next = 64;
                   break;
                 }
 
                 actionService = new _action.default(client);
-                _context4.next = 61;
+                _context6.next = 62;
                 return actionService.isActionDone(filteredCurrentOngoingChallenge[0]);
 
-              case 61:
-                updatedUserChallenge = _context4.sent;
+              case 62:
+                updatedUserChallenge = _context6.sent;
 
                 if (updatedUserChallenge) {
                   dispatch((0, _challenge2.updateUserChallengeList)(updatedUserChallenge));
                 }
 
-              case 63:
+              case 64:
                 // Set Notification if action state is notification
                 if (((_filteredCurrentOngoi3 = filteredCurrentOngoingChallenge[0]) === null || _filteredCurrentOngoi3 === void 0 ? void 0 : _filteredCurrentOngoi3.action.state) === _userAction.UserActionState.NOTIFICATION) {
                   dispatch((0, _global.toggleChallengeActionNotification)(true));
@@ -2054,83 +2057,108 @@ var SplashRoot = function SplashRoot(_ref) {
                 });
 
                 if (!(((_filteredCurrentDuelC = filteredCurrentDuelChallenge[0]) === null || _filteredCurrentDuelC === void 0 ? void 0 : _filteredCurrentDuelC.duel.state) === _userDuel.UserDuelState.ONGOING)) {
-                  _context4.next = 79;
+                  _context6.next = 80;
                   break;
                 }
 
-                _context4.next = 68;
+                _context6.next = 69;
                 return initializationService.initDuelProgress(filteredCurrentDuelChallenge[0]);
 
-              case 68:
-                _yield$initialization = _context4.sent;
+              case 69:
+                _yield$initialization = _context6.sent;
                 _updatedUserChallenge = _yield$initialization.updatedUserChallenge;
                 dataloads = _yield$initialization.dataloads;
 
                 if (!subscribed) {
-                  _context4.next = 79;
+                  _context6.next = 80;
                   break;
                 }
 
                 dispatch((0, _challenge2.setChallengeConsumption)(_updatedUserChallenge, dataloads)); // Check is duel is done and display notification
 
                 challengeService = new _challenge.default(client);
-                _context4.next = 76;
+                _context6.next = 77;
                 return challengeService.isChallengeDone(_updatedUserChallenge, dataloads);
 
-              case 76:
-                _yield$challengeServi = _context4.sent;
+              case 77:
+                _yield$challengeServi = _context6.sent;
                 isDone = _yield$challengeServi.isDone;
                 dispatch((0, _global.toggleChallengeDuelNotification)(isDone));
 
-              case 79:
+              case 80:
                 if (!profile) {
-                  _context4.next = 82;
+                  _context6.next = 83;
                   break;
                 }
 
-                _context4.next = 82;
+                _context6.next = 83;
                 return _usageEvent2.default.addEvent(client, {
                   type: _usageEvent.UsageEventType.CONNECTION_EVENT,
                   result: profile.isFirstConnection ? 'firstConnection' : undefined,
                   context: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? 'mobile' : 'desktop'
                 });
 
-              case 82:
-                _context4.next = 84;
-                return customPopupService.getCustomPopup();
-
-              case 84:
-                customPopup = _context4.sent;
-
-                if (!(profile && customPopup)) {
-                  _context4.next = 88;
-                  break;
-                }
-
-                _context4.next = 88;
-                return processCustomPopup(profile, customPopup);
-
-              case 88:
-                partnersInfoService = new _partnersInfo.default(client);
-                _context4.next = 91;
-                return partnersInfoService.getPartnersInfo();
-
-              case 91:
-                partnersInfo = _context4.sent;
-
-                if (!(profile && partnersInfo)) {
-                  _context4.next = 97;
-                  break;
-                }
+              case 83:
+                /**
+                 * Load custom popup and partners info synchronously so these treatments don't block the loading
+                 */
+                customPopupService.getCustomPopup().then( /*#__PURE__*/function () {
+                  var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(customPopup) {
+                    return _regenerator.default.wrap(function _callee4$(_context4) {
+                      while (1) {
+                        switch (_context4.prev = _context4.next) {
+                          case 0:
+                            if (!(profile && customPopup)) {
+                              _context4.next = 3;
+                              break;
+                            }
+
+                            _context4.next = 3;
+                            return processCustomPopup(profile, customPopup);
+
+                          case 3:
+                          case "end":
+                            return _context4.stop();
+                        }
+                      }
+                    }, _callee4);
+                  }));
 
-                _context4.next = 95;
-                return processFluidsStatus(profile, partnersInfo);
+                  return function (_x7) {
+                    return _ref5.apply(this, arguments);
+                  };
+                }());
+                partnersInfoService.getPartnersInfo().then( /*#__PURE__*/function () {
+                  var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(partnersInfo) {
+                    return _regenerator.default.wrap(function _callee5$(_context5) {
+                      while (1) {
+                        switch (_context5.prev = _context5.next) {
+                          case 0:
+                            if (!(profile && partnersInfo)) {
+                              _context5.next = 5;
+                              break;
+                            }
+
+                            _context5.next = 3;
+                            return processFluidsStatus(profile, partnersInfo);
+
+                          case 3:
+                            _context5.next = 5;
+                            return processPartnersStatus(profile, partnersInfo);
+
+                          case 5:
+                          case "end":
+                            return _context5.stop();
+                        }
+                      }
+                    }, _callee5);
+                  }));
 
-              case 95:
-                _context4.next = 97;
-                return processPartnersStatus(profile, partnersInfo);
+                  return function (_x8) {
+                    return _ref6.apply(this, arguments);
+                  };
+                }());
 
-              case 97:
                 if (subscribed) {
                   _logger.default.info('[Initialization] Finished successfully !');
 
@@ -2141,29 +2169,29 @@ var SplashRoot = function SplashRoot(_ref) {
                   });
                 }
 
-                _context4.next = 105;
+                _context6.next = 93;
                 break;
 
-              case 100:
-                _context4.prev = 100;
-                _context4.t0 = _context4["catch"](3);
+              case 88:
+                _context6.prev = 88;
+                _context6.t0 = _context6["catch"](4);
 
-                if (_context4.t0.message === 'Failed to fetch' && !initStepErrors) {
+                if (_context6.t0.message === 'Failed to fetch' && !initStepErrors) {
                   setInitStepErrors(_initialisationSteps.InitStepsErrors.UNKNOWN_ERROR);
                 }
 
-                _logger.default.error("[Initialization] Error : ".concat(_context4.t0));
+                _logger.default.error("[Initialization] Error : ".concat(_context6.t0));
 
                 Sentry.captureException(JSON.stringify({
-                  error: _context4.t0
+                  error: _context6.t0
                 }));
 
-              case 105:
+              case 93:
               case "end":
-                return _context4.stop();
+                return _context6.stop();
             }
           }
-        }, _callee4, null, [[3, 100]]);
+        }, _callee6, null, [[4, 88]]);
       }));
       return _loadData.apply(this, arguments);
     }
@@ -3677,37 +3705,42 @@ var initialState = {
 var chartReducer = function chartReducer() {
   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
   var action = arguments.length > 1 ? arguments[1] : undefined;
+  if (action.payload == undefined) return state;
+
+  var updateState = function updateState(updates) {
+    return _objectSpread(_objectSpread({}, state), updates);
+  };
 
   switch (action.type) {
     case _chart.SET_SELECTED_DATE:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         selectedDate: action.payload
-      }) : state;
+      });
 
     case _chart.SET_CURRENT_TIMESTEP:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         currentTimeStep: action.payload
-      }) : state;
+      });
 
     case _chart.SET_CURRENT_INDEX:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         currentIndex: action.payload
-      }) : state;
+      });
 
     case _chart.SET_CURRENT_DATACHART:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         currentDatachart: action.payload
-      }) : state;
+      });
 
     case _chart.SET_CURRENT_DATACHART_INDEX:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         currentDatachartIndex: action.payload
-      }) : state;
+      });
 
     case _chart.SET_LOADING:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         loading: action.payload
-      }) : state;
+      });
 
     default:
       return state;
@@ -4604,14 +4637,10 @@ var ActionBegin = function ActionBegin(_ref) {
       t = _useI18n.t;
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profile;
-  }),
-      isProfileTypeCompleted = _useSelector.isProfileTypeCompleted;
-
-  var _useSelector2 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
+    return state.ecolyo;
   }),
-      fluidTypes = _useSelector2.fluidTypes;
+      fluidTypes = _useSelector.global.fluidTypes,
+      isProfileTypeCompleted = _useSelector.profile.isProfileTypeCompleted;
 
   var _useState = (0, _react.useState)(),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -5369,7 +5398,8 @@ var DuelOngoing = function DuelOngoing(_ref) {
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
     return state.ecolyo.challenge;
   }),
-      currentDataload = _useSelector.currentDataload;
+      currentDataload = _useSelector.currentDataload,
+      userChallengeList = _useSelector.userChallengeList;
 
   var dispatch = (0, _reactRedux.useDispatch)();
   var navigate = (0, _reactRouterDom.useNavigate)();
@@ -5402,18 +5432,12 @@ var DuelOngoing = function DuelOngoing(_ref) {
   var _useState11 = (0, _react.useState)(),
       _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
       finishedDataLoad = _useState12[0],
-      setfinishedDataLoad = _useState12[1];
+      setFinishedDataLoad = _useState12[1];
 
   var chartContainer = (0, _react.useRef)(null);
   var challengeService = (0, _react.useMemo)(function () {
     return new _challenge.default(client);
   }, [client]);
-
-  var _useSelector2 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.challenge;
-  }),
-      userChallengeList = _useSelector2.userChallengeList;
-
   var duel = userChallenge.duel;
   var title = duel.title;
   var durationInDays = duel.duration.days;
@@ -5568,7 +5592,7 @@ var DuelOngoing = function DuelOngoing(_ref) {
                 dataloads = _context4.sent;
 
                 if (subscribed) {
-                  setfinishedDataLoad(dataloads);
+                  setFinishedDataLoad(dataloads);
                 }
 
               case 5:
@@ -9937,7 +9961,7 @@ var _interopRequireDefault = __webpack_require__("TqRt");
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.ecolyoReducer = exports.default = void 0;
+exports.defaultAction = exports.default = void 0;
 
 var Sentry = _interopRequireWildcard(__webpack_require__("agHs"));
 
@@ -9965,16 +9989,20 @@ 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 defaultAction = {
+  type: null,
+  payload: undefined
+};
+exports.defaultAction = defaultAction;
 var ecolyoReducer = (0, _redux.combineReducers)({
+  challenge: _challenge.challengeReducer,
+  chart: _chart.chartReducer,
   global: _global.globalReducer,
+  modal: _modal.modalReducer,
   profile: _profile.profileReducer,
-  profileType: _profileType.profileTypeReducer,
   profileEcogesture: _profileEcogesture.profileEcogestureReducer,
-  chart: _chart.chartReducer,
-  modal: _modal.modalReducer,
-  challenge: _challenge.challengeReducer
+  profileType: _profileType.profileTypeReducer
 });
-exports.ecolyoReducer = ecolyoReducer;
 var sentryReduxEnhancer = Sentry.createReduxEnhancer({});
 
 var configureStore = function configureStore(client, persistedState) {
@@ -10182,7 +10210,7 @@ var CozyBar = function CozyBar(_ref) {
   }, [backFunction, navigate]);
 
   var handleClickFeedbacks = function handleClickFeedbacks() {
-    dispatch((0, _modal.updateModalIsFeedbacksOpen)(true));
+    dispatch((0, _modal.openFeedbackModal)(true));
   };
 
   var cozyBarCustom = function cozyBarCustom(screen) {
@@ -14560,10 +14588,11 @@ var initialState = {
 var profileEcogestureReducer = function profileEcogestureReducer() {
   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
   var action = arguments.length > 1 ? arguments[1] : undefined;
+  if (action.payload == undefined) return state;
 
   switch (action.type) {
-    case _profileEcogesture.UPDATE_PROFILEECOGESTURE:
-    case _profileEcogesture.CREATE_NEW_PROFILEECOGESTURE:
+    case _profileEcogesture.UPDATE_PROFILE_ECOGESTURE:
+    case _profileEcogesture.CREATE_NEW_PROFILE_ECOGESTURE:
       return _objectSpread(_objectSpread({}, state), action.payload);
 
     default:
@@ -18429,24 +18458,27 @@ var initialState = {
 var challengeReducer = function challengeReducer() {
   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
   var action = arguments.length > 1 ? arguments[1] : undefined;
+  if (action.payload == undefined) return state;
+
+  var updateState = function updateState(updates) {
+    return _objectSpread(_objectSpread({}, state), updates);
+  };
 
   switch (action.type) {
     case _challenge.SET_USER_CHALLENGE_LIST:
-      if (action.payload !== undefined) {
+      {
         var filteredCurrentChallenge = action.payload.filter(function (challenge) {
           return challenge.state === _userChallenge.UserChallengeState.ONGOING || challenge.state === _userChallenge.UserChallengeState.DUEL;
         });
-        var currentChallenge = filteredCurrentChallenge[0] ? filteredCurrentChallenge[0] : null;
-        return _objectSpread(_objectSpread({}, state), {}, {
+        var currentChallenge = filteredCurrentChallenge[0] || null;
+        return updateState({
           userChallengeList: action.payload,
           currentChallenge: currentChallenge
         });
-      } else {
-        return state;
       }
 
     case _challenge.UPDATE_USER_CHALLENGE_LIST:
-      if (action.payload !== undefined) {
+      {
         var id = action.payload.id;
 
         var _currentChallenge = action.payload.state === _userChallenge.UserChallengeState.ONGOING || action.payload.state === _userChallenge.UserChallengeState.DUEL ? action.payload : null;
@@ -18456,16 +18488,14 @@ var challengeReducer = function challengeReducer() {
           return challenge.id === id;
         });
         updatedList[findIndex] = action.payload;
-        return _objectSpread(_objectSpread({}, state), {}, {
+        return updateState({
           userChallengeList: updatedList,
-          currentChallenge: _currentChallenge ? _currentChallenge : state.currentChallenge
+          currentChallenge: _currentChallenge || state.currentChallenge
         });
-      } else {
-        return state;
       }
 
     case _challenge.UNLOCK_NEXT_USER_CHALLENGE:
-      if (action.payload !== undefined) {
+      {
         var _id = action.payload.id;
 
         var _updatedList = (0, _toConsumableArray2.default)(state.userChallengeList);
@@ -18482,16 +18512,14 @@ var challengeReducer = function challengeReducer() {
           });
         }
 
-        return _objectSpread(_objectSpread({}, state), {}, {
+        return updateState({
           userChallengeList: _updatedList,
           currentChallenge: null
         });
-      } else {
-        return state;
       }
 
     case _challenge.SET_CHALLENGE_CONSUMPTION:
-      if (action.payload !== undefined) {
+      {
         var _id2 = action.payload.userChallenge.id;
 
         var _updatedList2 = (0, _toConsumableArray2.default)(state.userChallengeList);
@@ -18501,13 +18529,11 @@ var challengeReducer = function challengeReducer() {
         });
 
         _updatedList2[_findIndex2] = action.payload.userChallenge;
-        return _objectSpread(_objectSpread({}, state), {}, {
+        return updateState({
           userChallengeList: _updatedList2,
           currentChallenge: state.currentChallenge && state.currentChallenge.id === action.payload.userChallenge.id ? action.payload.userChallenge : state.currentChallenge,
           currentDataload: action.payload.currentDataload
         });
-      } else {
-        return state;
       }
 
     default:
@@ -18711,10 +18737,9 @@ function updateProfileTypeSuccess(updatedProfileType) {
     type: UPDATE_PROFILETYPE,
     payload: updatedProfileType
   };
-} // eslint-disable-next-line @typescript-eslint/no-explicit-any
-
+}
 
-function updateProfileType(upd) {
+function updateProfileType(updates) {
   return /*#__PURE__*/function () {
     var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(dispatch, getState, _ref) {
       var client, profileTypeEntityService, updatedProfileType;
@@ -18725,7 +18750,7 @@ function updateProfileType(upd) {
               client = _ref.client;
               profileTypeEntityService = new _profileTypeEntity.default(client);
               _context.next = 4;
-              return profileTypeEntityService.updateProfileType(upd);
+              return profileTypeEntityService.updateProfileType(updates);
 
             case 4:
               updatedProfileType = _context.sent;
@@ -18746,10 +18771,9 @@ function updateProfileType(upd) {
       return _ref2.apply(this, arguments);
     };
   }();
-} // eslint-disable-next-line @typescript-eslint/no-explicit-any
-
+}
 
-function newProfileTypeEntry(upd) {
+function newProfileTypeEntry(updates) {
   return /*#__PURE__*/function () {
     var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(dispatch, getState, _ref3) {
       var client, _yield$client$create, newProfileType;
@@ -18760,7 +18784,7 @@ function newProfileTypeEntry(upd) {
             case 0:
               client = _ref3.client;
               _context2.next = 3;
-              return client.create(_doctypes.PROFILETYPE_DOCTYPE, upd);
+              return client.create(_doctypes.PROFILETYPE_DOCTYPE, updates);
 
             case 3:
               _yield$client$create = _context2.sent;
@@ -19396,18 +19420,18 @@ exports.setCurrentIndex = setCurrentIndex;
 exports.setCurrentTimeStep = setCurrentTimeStep;
 exports.setLoading = setLoading;
 exports.setSelectedDate = setSelectedDate;
-var SET_CURRENT_TIMESTEP = 'SET_CURRENT_TIMESTEP';
-exports.SET_CURRENT_TIMESTEP = SET_CURRENT_TIMESTEP;
-var SET_SELECTED_DATE = 'SET_SELECTED_DATE';
-exports.SET_SELECTED_DATE = SET_SELECTED_DATE;
-var SET_CURRENT_INDEX = 'SET_CURRENT_INDEX';
-exports.SET_CURRENT_INDEX = SET_CURRENT_INDEX;
 var SET_CURRENT_DATACHART = 'SET_CURRENT_DATACHART';
 exports.SET_CURRENT_DATACHART = SET_CURRENT_DATACHART;
 var SET_CURRENT_DATACHART_INDEX = 'SET_CURRENT_DATACHART_INDEX';
 exports.SET_CURRENT_DATACHART_INDEX = SET_CURRENT_DATACHART_INDEX;
+var SET_CURRENT_INDEX = 'SET_CURRENT_INDEX';
+exports.SET_CURRENT_INDEX = SET_CURRENT_INDEX;
+var SET_CURRENT_TIMESTEP = 'SET_CURRENT_TIMESTEP';
+exports.SET_CURRENT_TIMESTEP = SET_CURRENT_TIMESTEP;
 var SET_LOADING = 'SET_LOADING';
 exports.SET_LOADING = SET_LOADING;
+var SET_SELECTED_DATE = 'SET_SELECTED_DATE';
+exports.SET_SELECTED_DATE = SET_SELECTED_DATE;
 
 function setSelectedDate(date) {
   return {
@@ -20003,19 +20027,15 @@ var Content = function Content(_ref) {
   var dispatch = (0, _reactRedux.useDispatch)();
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
-  }),
-      screenType = _useSelector.screenType;
-
-  var _useSelector2 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.modal;
+    return state.ecolyo;
   }),
-      isFeedbacksOpen = _useSelector2.isFeedbacksOpen;
+      screenType = _useSelector.global.screenType,
+      isFeedbacksOpen = _useSelector.modal.isFeedbacksOpen;
 
   var cozyBarHeight = 48;
   var cozyNavHeight = 56;
   var handleFeedbackModalClose = (0, _react.useCallback)(function () {
-    dispatch((0, _modal.updateModalIsFeedbacksOpen)(false));
+    dispatch((0, _modal.openFeedbackModal)(false));
   }, [dispatch]); // Set listeners for scroll
 
   (0, _react.useEffect)(function () {
@@ -22266,10 +22286,11 @@ var initialState = {
     description: '',
     endDate: ''
   },
-  openPartnersIssueModal: {
-    enedis: false,
-    egl: false,
-    grdf: false
+  partnersInfo: {
+    egl_failure: false,
+    enedis_failure: false,
+    grdf_failure: false,
+    notification_activated: false
   },
   shouldRefreshConsent: false,
   sgeConnect: {
@@ -22300,84 +22321,84 @@ var getFluidTypesFromStatus = function getFluidTypesFromStatus(fluidStatus) {
 var globalReducer = function globalReducer() {
   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
   var action = arguments.length > 1 ? arguments[1] : undefined;
+  if (action.payload == undefined) return state;
+
+  var updateState = function updateState(updates) {
+    return _objectSpread(_objectSpread({}, state), updates);
+  };
 
   switch (action.type) {
     case _global.CHANGE_SCREEN_TYPE:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         screenType: action.payload
-      }) : state;
+      });
 
     case _global.TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         challengeExplorationNotification: action.payload
-      }) : state;
+      });
 
     case _global.TOGGLE_CHALLENGE_ACTION_NOTIFICATION:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         challengeActionNotification: action.payload
-      }) : state;
+      });
 
     case _global.TOGGLE_CHALLENGE_DUEL_NOTIFICATION:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         challengeDuelNotification: action.payload
-      }) : state;
+      });
 
     case _global.TOGGLE_ANALYSIS_NOTIFICATION:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         analysisNotification: action.payload
-      }) : state;
+      });
 
     case _global.SET_FLUID_STATUS:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         fluidStatus: action.payload,
         fluidTypes: getFluidTypesFromStatus(action.payload)
-      }) : state;
+      });
 
     case _global.UPDATE_TERMS_VALIDATION:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         termsStatus: action.payload
-      }) : state;
+      });
 
     case _global.SHOW_RELEASE_NOTES:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         releaseNotes: action.payload
-      }) : state;
+      });
 
-    case _global.SET_PARTNERS_ISSUE:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
-        openPartnersIssueModal: action.payload
-      }) : state;
+    case _global.SET_PARTNERS_INFO:
+      return updateState({
+        partnersInfo: action.payload
+      });
 
     case _global.SET_CUSTOM_POPUP:
-      return _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         customPopupModal: action.payload
       });
 
     case _global.SET_SHOULD_REFRESH_CONSENT:
-      return action.payload != undefined ? _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         shouldRefreshConsent: action.payload
-      }) : state;
+      });
 
     case _global.UPDATE_FLUID_CONNECTION:
-      if (action.payload !== undefined) {
-        var updatedFluidStatus = (0, _toConsumableArray2.default)(state.fluidStatus);
-        var fluidType = action.payload.fluidType;
-        var findIndex = state.fluidStatus.findIndex(function (fluid) {
-          return fluid.fluidType === fluidType;
-        });
-        updatedFluidStatus[findIndex].connection = action.payload.fluidConnection;
-        return _objectSpread(_objectSpread({}, state), {}, {
-          fluidStatus: updatedFluidStatus
-        });
-      } else {
-        return state;
-      }
+      var updatedFluidStatus = (0, _toConsumableArray2.default)(state.fluidStatus);
+      var fluidType = action.payload.fluidType;
+      var findIndex = state.fluidStatus.findIndex(function (fluid) {
+        return fluid.fluidType === fluidType;
+      });
+      updatedFluidStatus[findIndex].connection = action.payload.fluidConnection;
+      return _objectSpread(_objectSpread({}, state), {}, {
+        fluidStatus: updatedFluidStatus
+      });
 
     case _global.UPDATE_SGE_CONNECT:
-      if (action.payload != undefined) return _objectSpread(_objectSpread({}, state), {}, {
+      return updateState({
         sgeConnect: action.payload
       });
-      return state;
 
     default:
       return state;
@@ -22806,7 +22827,7 @@ var _interopRequireDefault = __webpack_require__("TqRt");
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.UPDATE_PROFILEECOGESTURE = exports.CREATE_NEW_PROFILEECOGESTURE = void 0;
+exports.UPDATE_PROFILE_ECOGESTURE = exports.CREATE_NEW_PROFILE_ECOGESTURE = void 0;
 exports.newProfileEcogestureEntry = newProfileEcogestureEntry;
 exports.updateProfileEcogesture = updateProfileEcogesture;
 exports.updateProfileEcogestureSuccess = updateProfileEcogestureSuccess;
@@ -22819,20 +22840,20 @@ var _comGrandlyonEcolyoProfileecogesture = __webpack_require__("fGnb");
 
 var _profileEcogesture = _interopRequireDefault(__webpack_require__("4iQs"));
 
-var UPDATE_PROFILEECOGESTURE = 'UPDATE_PROFILEECOGESTURE';
-exports.UPDATE_PROFILEECOGESTURE = UPDATE_PROFILEECOGESTURE;
-var CREATE_NEW_PROFILEECOGESTURE = 'CREATE_NEW_PROFILEECOGESTURE';
-exports.CREATE_NEW_PROFILEECOGESTURE = CREATE_NEW_PROFILEECOGESTURE;
+// TODO never used ?
+var CREATE_NEW_PROFILE_ECOGESTURE = 'CREATE_NEW_PROFILE_ECOGESTURE';
+exports.CREATE_NEW_PROFILE_ECOGESTURE = CREATE_NEW_PROFILE_ECOGESTURE;
+var UPDATE_PROFILE_ECOGESTURE = 'UPDATE_PROFILE_ECOGESTURE';
+exports.UPDATE_PROFILE_ECOGESTURE = UPDATE_PROFILE_ECOGESTURE;
 
 function updateProfileEcogestureSuccess(updatedProfileEcogesture) {
   return {
-    type: UPDATE_PROFILEECOGESTURE,
+    type: UPDATE_PROFILE_ECOGESTURE,
     payload: updatedProfileEcogesture
   };
-} // eslint-disable-next-line @typescript-eslint/no-explicit-any
-
+}
 
-function updateProfileEcogesture(upd) {
+function updateProfileEcogesture(updates) {
   return /*#__PURE__*/function () {
     var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(dispatch, getState, _ref) {
       var client, profileEcogestureService, updatedProfileEcogesture;
@@ -22843,7 +22864,7 @@ function updateProfileEcogesture(upd) {
               client = _ref.client;
               profileEcogestureService = new _profileEcogesture.default(client);
               _context.next = 4;
-              return profileEcogestureService.updateProfileEcogesture(upd);
+              return profileEcogestureService.updateProfileEcogesture(updates);
 
             case 4:
               updatedProfileEcogesture = _context.sent;
@@ -22866,7 +22887,7 @@ function updateProfileEcogesture(upd) {
   }();
 }
 
-function newProfileEcogestureEntry(upd) {
+function newProfileEcogestureEntry(updates) {
   return /*#__PURE__*/function () {
     var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(dispatch, getState, _ref3) {
       var client, _yield$client$create, newProfileEcogesture;
@@ -22877,7 +22898,7 @@ function newProfileEcogestureEntry(upd) {
             case 0:
               client = _ref3.client;
               _context2.next = 3;
-              return client.create(_comGrandlyonEcolyoProfileecogesture.PROFILEECOGESTURE_DOCTYPE, upd);
+              return client.create(_comGrandlyonEcolyoProfileecogesture.PROFILEECOGESTURE_DOCTYPE, updates);
 
             case 3:
               _yield$client$create = _context2.sent;
@@ -24192,11 +24213,11 @@ exports.getTodayDate = getTodayDate;
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.UPDATE_TERMS_VALIDATION = exports.UPDATE_SGE_CONNECT = exports.UPDATE_FLUID_CONNECTION = exports.TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION = exports.TOGGLE_CHALLENGE_DUEL_NOTIFICATION = exports.TOGGLE_CHALLENGE_ACTION_NOTIFICATION = exports.TOGGLE_ANALYSIS_NOTIFICATION = exports.SHOW_RELEASE_NOTES = exports.SET_SHOULD_REFRESH_CONSENT = exports.SET_PARTNERS_ISSUE = exports.SET_FLUID_STATUS = exports.SET_CUSTOM_POPUP = exports.CHANGE_SCREEN_TYPE = void 0;
+exports.UPDATE_TERMS_VALIDATION = exports.UPDATE_SGE_CONNECT = exports.UPDATE_FLUID_CONNECTION = exports.TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION = exports.TOGGLE_CHALLENGE_DUEL_NOTIFICATION = exports.TOGGLE_CHALLENGE_ACTION_NOTIFICATION = exports.TOGGLE_ANALYSIS_NOTIFICATION = exports.SHOW_RELEASE_NOTES = exports.SET_SHOULD_REFRESH_CONSENT = exports.SET_PARTNERS_INFO = exports.SET_FLUID_STATUS = exports.SET_CUSTOM_POPUP = exports.CHANGE_SCREEN_TYPE = void 0;
 exports.changeScreenType = changeScreenType;
 exports.setCustomPopup = setCustomPopup;
 exports.setFluidStatus = setFluidStatus;
-exports.setPartnersIssue = setPartnersIssue;
+exports.setPartnersInfo = setPartnersInfo;
 exports.setShouldRefreshConsent = setShouldRefreshConsent;
 exports.showReleaseNotes = showReleaseNotes;
 exports.toggleAnalysisNotification = toggleAnalysisNotification;
@@ -24208,30 +24229,30 @@ exports.updateTermValidation = updateTermValidation;
 exports.updatedFluidConnection = updatedFluidConnection;
 var CHANGE_SCREEN_TYPE = 'CHANGE_SCREEN_TYPE';
 exports.CHANGE_SCREEN_TYPE = CHANGE_SCREEN_TYPE;
+var SET_CUSTOM_POPUP = 'SET_CUSTOM_POPUP';
+exports.SET_CUSTOM_POPUP = SET_CUSTOM_POPUP;
+var SET_FLUID_STATUS = 'SET_FLUID_STATUS';
+exports.SET_FLUID_STATUS = SET_FLUID_STATUS;
+var SET_PARTNERS_INFO = 'SET_PARTNERS_INFO';
+exports.SET_PARTNERS_INFO = SET_PARTNERS_INFO;
+var SET_SHOULD_REFRESH_CONSENT = 'SET_SHOULD_REFRESH_CONSENT';
+exports.SET_SHOULD_REFRESH_CONSENT = SET_SHOULD_REFRESH_CONSENT;
 var SHOW_RELEASE_NOTES = 'SHOW_RELEASE_NOTES';
 exports.SHOW_RELEASE_NOTES = SHOW_RELEASE_NOTES;
-var TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION = 'TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION';
-exports.TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION = TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION;
+var TOGGLE_ANALYSIS_NOTIFICATION = 'TOGGLE_ANALYSIS_NOTIFICATION';
+exports.TOGGLE_ANALYSIS_NOTIFICATION = TOGGLE_ANALYSIS_NOTIFICATION;
 var TOGGLE_CHALLENGE_ACTION_NOTIFICATION = 'TOGGLE_CHALLENGE_ACTION_NOTIFICATION';
 exports.TOGGLE_CHALLENGE_ACTION_NOTIFICATION = TOGGLE_CHALLENGE_ACTION_NOTIFICATION;
 var TOGGLE_CHALLENGE_DUEL_NOTIFICATION = 'TOGGLE_CHALLENGE_DUEL_NOTIFICATION';
 exports.TOGGLE_CHALLENGE_DUEL_NOTIFICATION = TOGGLE_CHALLENGE_DUEL_NOTIFICATION;
-var TOGGLE_ANALYSIS_NOTIFICATION = 'TOGGLE_ANALYSIS_NOTIFICATION';
-exports.TOGGLE_ANALYSIS_NOTIFICATION = TOGGLE_ANALYSIS_NOTIFICATION;
-var SET_FLUID_STATUS = 'SET_FLUID_STATUS';
-exports.SET_FLUID_STATUS = SET_FLUID_STATUS;
+var TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION = 'TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION';
+exports.TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION = TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION;
 var UPDATE_FLUID_CONNECTION = 'UPDATE_FLUID_CONNECTION';
 exports.UPDATE_FLUID_CONNECTION = UPDATE_FLUID_CONNECTION;
-var UPDATE_TERMS_VALIDATION = 'UPDATE_TERMS_VALIDATION';
-exports.UPDATE_TERMS_VALIDATION = UPDATE_TERMS_VALIDATION;
-var SET_PARTNERS_ISSUE = 'SET_PARTNERS_ISSUE';
-exports.SET_PARTNERS_ISSUE = SET_PARTNERS_ISSUE;
-var SET_CUSTOM_POPUP = 'SET_CUSTOM_POPUP';
-exports.SET_CUSTOM_POPUP = SET_CUSTOM_POPUP;
-var SET_SHOULD_REFRESH_CONSENT = 'SET_SHOULD_REFRESH_CONSENT';
-exports.SET_SHOULD_REFRESH_CONSENT = SET_SHOULD_REFRESH_CONSENT;
 var UPDATE_SGE_CONNECT = 'UPDATE_SGE_CONNECT';
 exports.UPDATE_SGE_CONNECT = UPDATE_SGE_CONNECT;
+var UPDATE_TERMS_VALIDATION = 'UPDATE_TERMS_VALIDATION';
+exports.UPDATE_TERMS_VALIDATION = UPDATE_TERMS_VALIDATION;
 
 function changeScreenType(screenType) {
   return {
@@ -24251,31 +24272,31 @@ function showReleaseNotes(show, notes, redirectLink) {
   };
 }
 
-function toggleChallengeExplorationNotification(notif) {
+function toggleChallengeExplorationNotification(notification) {
   return {
     type: TOGGLE_CHALLENGE_EXPLORATION_NOTIFICATION,
-    payload: notif
+    payload: notification
   };
 }
 
-function toggleChallengeActionNotification(notif) {
+function toggleChallengeActionNotification(notification) {
   return {
     type: TOGGLE_CHALLENGE_ACTION_NOTIFICATION,
-    payload: notif
+    payload: notification
   };
 }
 
-function toggleChallengeDuelNotification(notif) {
+function toggleChallengeDuelNotification(notification) {
   return {
     type: TOGGLE_CHALLENGE_DUEL_NOTIFICATION,
-    payload: notif
+    payload: notification
   };
 }
 
-function toggleAnalysisNotification(notif) {
+function toggleAnalysisNotification(notification) {
   return {
     type: TOGGLE_ANALYSIS_NOTIFICATION,
-    payload: notif
+    payload: notification
   };
 }
 
@@ -24303,10 +24324,10 @@ function updateTermValidation(termsStatus) {
   };
 }
 
-function setPartnersIssue(openPartnersIssueModal) {
+function setPartnersInfo(partnersInfo) {
   return {
-    type: SET_PARTNERS_ISSUE,
-    payload: openPartnersIssueModal
+    type: SET_PARTNERS_INFO,
+    payload: partnersInfo
   };
 }
 
@@ -24502,13 +24523,11 @@ var EcogestureFormView = function EcogestureFormView() {
   };
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profile;
+    return state.ecolyo;
   }),
-      isProfileTypeCompleted = _useSelector.isProfileTypeCompleted;
+      isProfileTypeCompleted = _useSelector.profile.isProfileTypeCompleted,
+      curProfileEcogesture = _useSelector.profileEcogesture;
 
-  var curProfileEcogesture = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profileEcogesture;
-  });
   var shouldOpenModal = new URLSearchParams((0, _reactRouterDom.useLocation)().search).get('modal');
 
   var _useState3 = (0, _react.useState)(_ecogestureForm.EcogestureStepForm.HEATING_TYPE),
@@ -25191,9 +25210,10 @@ var ProfileTypeFinished = function ProfileTypeFinished(_ref) {
   var client = (0, _cozyClient.useClient)();
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.challenge;
+    return state.ecolyo;
   }),
-      currentChallenge = _useSelector.currentChallenge;
+      currentChallenge = _useSelector.challenge.currentChallenge,
+      profile = _useSelector.profile;
 
   var handleClick = function handleClick() {
     if ((location === null || location === void 0 ? void 0 : location.pathname) === '/ecogesture-form') {
@@ -25212,9 +25232,6 @@ var ProfileTypeFinished = function ProfileTypeFinished(_ref) {
       _useExploration2 = (0, _slicedToArray2.default)(_useExploration, 2),
       setValidExploration = _useExploration2[1];
 
-  var profile = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profile;
-  });
   (0, _react2.useEffect)(function () {
     function checkForExistingProfileType() {
       return _checkForExistingProfileType.apply(this, arguments);
@@ -25980,7 +25997,7 @@ var Header = function Header(_ref) {
   }, [backFunction, navigate]);
 
   var handleClickFeedbacks = function handleClickFeedbacks() {
-    dispatch((0, _modal.updateModalIsFeedbacksOpen)(true));
+    dispatch((0, _modal.openFeedbackModal)(true));
   };
 
   (0, _react.useEffect)(function () {
@@ -27316,9 +27333,8 @@ var _interopRequireDefault = __webpack_require__("TqRt");
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.UPDATE_PROFILE = exports.SET_FIRST_CONNECTION = void 0;
+exports.UPDATE_PROFILE = void 0;
 exports.updateProfile = updateProfile;
-exports.updateProfileSuccess = updateProfileSuccess;
 
 var _regenerator = _interopRequireDefault(__webpack_require__("o0o1"));
 
@@ -27328,18 +27344,15 @@ var _profile = _interopRequireDefault(__webpack_require__("2l2O"));
 
 var UPDATE_PROFILE = 'UPDATE_PROFILE';
 exports.UPDATE_PROFILE = UPDATE_PROFILE;
-var SET_FIRST_CONNECTION = 'SET_FIRST_CONNECTION';
-exports.SET_FIRST_CONNECTION = SET_FIRST_CONNECTION;
 
 function updateProfileSuccess(updatedProfile) {
   return {
     type: UPDATE_PROFILE,
     payload: updatedProfile
   };
-} // eslint-disable-next-line @typescript-eslint/no-explicit-any
-
+}
 
-function updateProfile(upd) {
+function updateProfile(updates) {
   return /*#__PURE__*/function () {
     var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(dispatch, getState, _ref) {
       var client, profileService, updatedProfile;
@@ -27350,7 +27363,7 @@ function updateProfile(upd) {
               client = _ref.client;
               profileService = new _profile.default(client);
               _context.next = 4;
-              return profileService.updateProfile(upd);
+              return profileService.updateProfile(updates);
 
             case 4:
               updatedProfile = _context.sent;
@@ -30013,18 +30026,28 @@ module.exports = JSON.parse("[{\"_id\":\"QUIZ001\",\"questions\":[{\"questionLab
 Object.defineProperty(exports, "__esModule", {
   value: true
 });
-exports.UPDATE_MODAL_ISFEEDBACKSOPEN = void 0;
-exports.updateModalIsFeedbacksOpen = updateModalIsFeedbacksOpen;
-var UPDATE_MODAL_ISFEEDBACKSOPEN = 'UPDATE_MODAL_ISFEEDBACKSOPEN';
-exports.UPDATE_MODAL_ISFEEDBACKSOPEN = UPDATE_MODAL_ISFEEDBACKSOPEN;
+exports.OPEN_PARTNERS_MODAL = exports.OPEN_FEEDBACK_MODAL = void 0;
+exports.openFeedbackModal = openFeedbackModal;
+exports.openPartnersModal = openPartnersModal;
+var OPEN_PARTNERS_MODAL = 'OPEN_PARTNERS_ISSUE';
+exports.OPEN_PARTNERS_MODAL = OPEN_PARTNERS_MODAL;
+var OPEN_FEEDBACK_MODAL = 'OPEN_FEEDBACK_MODAL';
+exports.OPEN_FEEDBACK_MODAL = OPEN_FEEDBACK_MODAL;
 
-function updateModalIsFeedbacksOpen(isOpen) {
+function openFeedbackModal(isOpen) {
   return {
-    type: UPDATE_MODAL_ISFEEDBACKSOPEN,
+    type: OPEN_FEEDBACK_MODAL,
     payload: isOpen
   };
 }
 
+function openPartnersModal(openPartnersModal) {
+  return {
+    type: OPEN_PARTNERS_MODAL,
+    payload: openPartnersModal
+  };
+}
+
 /***/ }),
 
 /***/ "lrcb":
@@ -31183,15 +31206,12 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
 
 var ProfileTypeView = function ProfileTypeView() {
-  var profile = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profile;
-  });
-  var curProfileType = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profileType;
-  });
-  var curProfileEcogesture = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profileEcogesture;
-  });
+  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+    return state.ecolyo;
+  }),
+      profile = _useSelector.profile,
+      curProfileType = _useSelector.profileType,
+      curProfileEcogesture = _useSelector.profileEcogesture;
 
   var _useState = (0, _react.useState)(0),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -33140,14 +33160,10 @@ var ActionList = function ActionList(_ref) {
   var client = (0, _cozyClient.useClient)();
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profile;
-  }),
-      isProfileTypeCompleted = _useSelector.isProfileTypeCompleted;
-
-  var _useSelector2 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
+    return state.ecolyo;
   }),
-      fluidTypes = _useSelector2.fluidTypes;
+      fluidTypes = _useSelector.global.fluidTypes,
+      isProfileTypeCompleted = _useSelector.profile.isProfileTypeCompleted;
 
   var _useState = (0, _react.useState)(),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -34483,14 +34499,10 @@ var App = function App(_ref) {
   var location = (0, _reactRouterDom.useLocation)();
 
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profile;
-  }),
-      onboarding = _useSelector.onboarding;
-
-  var _useSelector2 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
+    return state.ecolyo;
   }),
-      termsStatus = _useSelector2.termsStatus;
+      termsStatus = _useSelector.global.termsStatus,
+      onboarding = _useSelector.profile.onboarding;
 
   (0, _react.useEffect)(function () {
     tracker === null || tracker === void 0 ? void 0 : tracker.track(location);
@@ -35716,12 +35728,8 @@ var ChallengeCardUnlocked = function ChallengeCardUnlocked(_ref) {
   var _useSelector = (0, _reactRedux.useSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      fluidTypes = _useSelector.fluidTypes;
-
-  var _useSelector2 = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
-  }),
-      fluidStatus = _useSelector2.fluidStatus;
+      fluidTypes = _useSelector.fluidTypes,
+      fluidStatus = _useSelector.fluidStatus;
 
   var _useState3 = (0, _react.useState)(_challengeLocked.default),
       _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
@@ -38618,7 +38626,7 @@ var InitializationService = /*#__PURE__*/function () {
 
                 return _context10.abrupt("return", {
                   monthlyAnalysisDate: actualAnalysisDate,
-                  haveSeenLastAnalysis: profile.isFirstConnection ? true : false
+                  haveSeenLastAnalysis: profile.isFirstConnection
                 });
 
               case 8:
@@ -39073,18 +39081,32 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
 
 var initialState = {
-  isFeedbacksOpen: false
+  isFeedbacksOpen: false,
+  partnersIssueModal: {
+    enedis: false,
+    egl: false,
+    grdf: false
+  }
 };
 
 var modalReducer = function modalReducer() {
   var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
   var action = arguments.length > 1 ? arguments[1] : undefined;
+  if (action.payload == undefined) return state;
+
+  var updateState = function updateState(updates) {
+    return _objectSpread(_objectSpread({}, state), updates);
+  };
 
   switch (action.type) {
-    case _modal.UPDATE_MODAL_ISFEEDBACKSOPEN:
-      var isOpen = action.payload != undefined ? action.payload : state.isFeedbacksOpen;
-      return _objectSpread(_objectSpread({}, state), {}, {
-        isFeedbacksOpen: isOpen
+    case _modal.OPEN_FEEDBACK_MODAL:
+      return updateState({
+        isFeedbacksOpen: action.payload
+      });
+
+    case _modal.OPEN_PARTNERS_MODAL:
+      return updateState({
+        partnersIssueModal: action.payload
       });
 
     default:
diff --git a/apple-touch-icon-retina.png b/apple-touch-icon-retina.png
deleted file mode 100644
index 659c6a53916e7cdc5647d0b6ca5d0411cfb4fb3f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 23363
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

diff --git a/cover.png b/cover.png
deleted file mode 100644
index ba57a0e8e13a24699c0430771d128f8357636879..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 29305
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

diff --git a/index.html b/index.html
index 2489c1d02..11d0040a6 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" href="/apple-touch-icon.png"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon-retina.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.35f915516b9585855081.js"></script><script src="app/ecolyo.c6f769f46df3b9432805.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.35f915516b9585855081.js"></script><script src="app/ecolyo.50adf68b820b9d0f117e.js"></script></div></body></html>
\ No newline at end of file
diff --git a/serviceWorker.js b/serviceWorker.js
index 51dc9b97b..56ef4139d 100644
--- a/serviceWorker.js
+++ b/serviceWorker.js
@@ -28,6 +28,19 @@ self.addEventListener('fetch', event => {
   )
 })
 
+let deferredPrompt
+self.addEventListener('beforeinstallprompt', e => {
+  // Prevents the default mini-infobar or install dialog from appearing on mobile
+  e.preventDefault()
+  // Save the event because you'll need to trigger it later.
+  deferredPrompt = e
+  // Show your customized install prompt for your PWA
+  // Your own UI doesn't have to be a single element, you
+  // can have buttons in different locations, or wait to prompt
+  // as part of a critical journey.
+  showInAppInstallPromotion()
+})
+
 // Activate the SW
 self.addEventListener('activate', event => {
   const cacheWhitelist = []
-- 
GitLab