From ae7624b888c631d2f3462514c92e7da31109b799 Mon Sep 17 00:00:00 2001
From: build-pipeline <build-token>
Date: Fri, 7 Jul 2023 09:13:42 +0000
Subject: [PATCH] publish: Merge branch 'app-selector' into 'dev'

generated from commit db9fe7929b52480dffe6c441175fa2fe9d5a0afa
---
 ...b94f.js => ecolyo.380565e06c8aa28834aa.js} |  97 +--
 ...84ea.js => ecolyo.1a07b3c4fd8b5b253098.js} |  26 +-
 ...de60.js => ecolyo.303a9e9c179fc6339afc.js} | 299 ++++----
 ...52e4.js => ecolyo.052a7e4347d67d8d23a2.js} |  14 +-
 ...f692.js => ecolyo.1abe158dc55e2f003411.js} |   6 +-
 ...ac49.js => ecolyo.6091887befa8328bcb53.js} |   8 +-
 ...d504.js => ecolyo.e730bea01a9a2f8da8ee.js} | 705 +++++++++---------
 index.html                                    |   2 +-
 8 files changed, 594 insertions(+), 563 deletions(-)
 rename 3/{ecolyo.cb69fe8a89fd2277b94f.js => ecolyo.380565e06c8aa28834aa.js} (98%)
 rename 4/{ecolyo.57299cb28a6df1ed84ea.js => ecolyo.1a07b3c4fd8b5b253098.js} (99%)
 rename 5/{ecolyo.f608963dea1009d4de60.js => ecolyo.303a9e9c179fc6339afc.js} (98%)
 rename 6/{ecolyo.43da79ce35b253d452e4.js => ecolyo.052a7e4347d67d8d23a2.js} (99%)
 rename 7/{ecolyo.ecc0c43fa7f6c253f692.js => ecolyo.1abe158dc55e2f003411.js} (99%)
 rename 9/{ecolyo.4facae32c2f3722bac49.js => ecolyo.6091887befa8328bcb53.js} (99%)
 rename app/{ecolyo.2e0a67ac9d0b71f1d504.js => ecolyo.e730bea01a9a2f8da8ee.js} (99%)

diff --git a/3/ecolyo.cb69fe8a89fd2277b94f.js b/3/ecolyo.380565e06c8aa28834aa.js
similarity index 98%
rename from 3/ecolyo.cb69fe8a89fd2277b94f.js
rename to 3/ecolyo.380565e06c8aa28834aa.js
index 0f482d312..cec0fe89f 100644
--- a/3/ecolyo.cb69fe8a89fd2277b94f.js
+++ b/3/ecolyo.380565e06c8aa28834aa.js
@@ -114,12 +114,12 @@ var _timeStep = __webpack_require__("cKQ8");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _consumption = _interopRequireDefault(__webpack_require__("AVq/"));
 
 var _chart = __webpack_require__("idK9");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("Dswe");
 
 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); }
@@ -133,12 +133,12 @@ var MaxConsumptionCard = function MaxConsumptionCard(_ref) {
       t = _useI18n.t;
 
   var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.analysis;
   }),
-      analysisMonth = _useSelector.analysisMonth;
+      analysisMonth = _useAppSelector.analysisMonth;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -528,8 +528,6 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
@@ -540,6 +538,8 @@ var _analysis = __webpack_require__("JQjK");
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _profile = __webpack_require__("jPH6");
 
 var _date = __webpack_require__("XrP9");
@@ -553,22 +553,23 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 var AnalysisView = function AnalysisView() {
   var client = (0, _cozyClient.useClient)();
 
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo;
+  }),
+      analysisMonth = _useAppSelector.analysis.analysisMonth,
+      selectedDate = _useAppSelector.chart.selectedDate,
+      analysisNotification = _useAppSelector.global.analysisNotification,
+      _useAppSelector$profi = _useAppSelector.profile,
+      monthlyAnalysisDate = _useAppSelector$profi.monthlyAnalysisDate,
+      mailToken = _useAppSelector$profi.mailToken;
+
+  var dispatch = (0, _hooks.useAppDispatch)();
+
   var _useState = (0, _react.useState)(0),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       headerHeight = _useState2[0],
       setHeaderHeight = _useState2[1];
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo;
-  }),
-      analysisMonth = _useSelector.analysis.analysisMonth,
-      selectedDate = _useSelector.chart.selectedDate,
-      analysisNotification = _useSelector.global.analysisNotification,
-      _useSelector$profile = _useSelector.profile,
-      monthlyAnalysisDate = _useSelector$profile.monthlyAnalysisDate,
-      mailToken = _useSelector$profile.mailToken;
-
-  var dispatch = (0, _reactRedux.useDispatch)();
   var defineHeaderHeight = (0, _react.useCallback)(function (height) {
     setHeaderHeight(height);
   }, []);
@@ -1000,10 +1001,10 @@ var _timeStep = __webpack_require__("cKQ8");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _consumption = _interopRequireDefault(__webpack_require__("AVq/"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _picto = __webpack_require__("6DBe");
 
 var _utils = __webpack_require__("c+yx");
@@ -1019,10 +1020,15 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 var TotalAnalysisChart = function TotalAnalysisChart(_ref) {
   var fluidsWithData = _ref.fluidsWithData;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useI18n = (0, _I18n.useI18n)(),
+      t = _useI18n.t;
+
+  var client = (0, _cozyClient.useClient)();
+
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.analysis;
   }),
-      analysisMonth = _useSelector.analysisMonth;
+      analysisMonth = _useAppSelector.analysisMonth;
 
   var _useState = (0, _react.useState)(null),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -1034,11 +1040,6 @@ var TotalAnalysisChart = function TotalAnalysisChart(_ref) {
       totalLoadValue = _useState4[0],
       setTotalLoadValue = _useState4[1];
 
-  var client = (0, _cozyClient.useClient)();
-
-  var _useI18n = (0, _I18n.useI18n)(),
-      t = _useI18n.t;
-
   var _useState5 = (0, _react.useState)(false),
       _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
       openEstimationModal = _useState6[0],
@@ -1203,12 +1204,12 @@ var _timeStep = __webpack_require__("cKQ8");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _consumption = _interopRequireDefault(__webpack_require__("AVq/"));
 
 var _performanceIndicator = _interopRequireDefault(__webpack_require__("8gio"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _Comparison = _interopRequireDefault(__webpack_require__("jQYw"));
 
 var _ElecHalfHourMonthlyAnalysis = _interopRequireDefault(__webpack_require__("zEMi"));
@@ -1230,10 +1231,10 @@ var MonthlyAnalysis = function MonthlyAnalysis(_ref) {
       scrollPosition = _ref.scrollPosition;
   var client = (0, _cozyClient.useClient)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.analysis;
   }),
-      analysisMonth = _useSelector.analysisMonth;
+      analysisMonth = _useAppSelector.analysisMonth;
 
   var consumptionService = (0, _react.useMemo)(function () {
     return new _consumption.default(client);
@@ -1544,12 +1545,12 @@ var _timeStep = __webpack_require__("cKQ8");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _consumption = _interopRequireDefault(__webpack_require__("AVq/"));
 
 var _analysis = __webpack_require__("JQjK");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _FluidPerformanceIndicator = _interopRequireDefault(__webpack_require__("ixpQ"));
 
 __webpack_require__("uXBk");
@@ -1567,15 +1568,15 @@ var Comparison = function Comparison(_ref) {
 
   var client = (0, _cozyClient.useClient)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      fluidTypes = _useSelector.global.fluidTypes,
-      _useSelector$analysis = _useSelector.analysis,
-      period = _useSelector$analysis.period,
-      analysisMonth = _useSelector$analysis.analysisMonth;
+      fluidTypes = _useAppSelector.global.fluidTypes,
+      _useAppSelector$analy = _useAppSelector.analysis,
+      period = _useAppSelector$analy.period,
+      analysisMonth = _useAppSelector$analy.analysisMonth;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
   var _useState = (0, _react.useState)([]),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -1760,14 +1761,14 @@ var _fluid = __webpack_require__("5Wkc");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _profileType = _interopRequireDefault(__webpack_require__("7e12"));
 
 var _profileTypeEntity = _interopRequireDefault(__webpack_require__("aypK"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _ProfileComparatorRow = _interopRequireDefault(__webpack_require__("Q5dr"));
 
 __webpack_require__("nsEu");
@@ -1788,11 +1789,11 @@ var ProfileComparator = function ProfileComparator(_ref) {
   var client = (0, _cozyClient.useClient)();
   var userPriceConsumption = aggregatedPerformanceIndicator.value || 0;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      analysisMonth = _useSelector.analysis.analysisMonth,
-      profile = _useSelector.profile;
+      analysisMonth = _useAppSelector.analysis.analysisMonth,
+      profile = _useAppSelector.profile;
 
   var _useState = (0, _react.useState)(0),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -2450,14 +2451,14 @@ var _timeStep = __webpack_require__("cKQ8");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _consumption = _interopRequireDefault(__webpack_require__("AVq/"));
 
 var _enedisMonthlyAnalysisData = _interopRequireDefault(__webpack_require__("GrKv"));
 
 var _fluidsPrices = _interopRequireDefault(__webpack_require__("VjcQ"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _picto = __webpack_require__("6DBe");
 
 var _ElecHalfHourChart = _interopRequireDefault(__webpack_require__("s76r"));
@@ -2478,10 +2479,10 @@ var ElecHalfHourMonthlyAnalysis = function ElecHalfHourMonthlyAnalysis(_ref) {
 
   var client = (0, _cozyClient.useClient)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.analysis;
   }),
-      analysisMonth = _useSelector.analysisMonth;
+      analysisMonth = _useAppSelector.analysisMonth;
 
   var _useState = (0, _react.useState)(true),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
diff --git a/4/ecolyo.57299cb28a6df1ed84ea.js b/4/ecolyo.1a07b3c4fd8b5b253098.js
similarity index 99%
rename from 4/ecolyo.57299cb28a6df1ed84ea.js
rename to 4/ecolyo.1a07b3c4fd8b5b253098.js
index e0a041be1..7e34d1d74 100644
--- a/4/ecolyo.57299cb28a6df1ed84ea.js
+++ b/4/ecolyo.1a07b3c4fd8b5b253098.js
@@ -57,10 +57,10 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _consumption = _interopRequireDefault(__webpack_require__("AVq/"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _profile = __webpack_require__("jPH6");
 
 __webpack_require__("D92I");
@@ -74,13 +74,13 @@ var ReportOptions = function ReportOptions() {
       t = _useI18n.t;
 
   var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      fluidStatus = _useSelector.global.fluidStatus,
-      profile = _useSelector.profile;
+      fluidStatus = _useAppSelector.global.fluidStatus,
+      profile = _useAppSelector.profile;
 
   var _useState = (0, _react.useState)(null),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -679,10 +679,10 @@ var _userExploration = __webpack_require__("/rev");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("LlCV");
 
 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); }
@@ -690,11 +690,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 _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      profile = _useSelector.profile,
-      profileType = _useSelector.profileType;
+      profile = _useAppSelector.profile,
+      profileType = _useAppSelector.profileType;
 
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
@@ -2251,7 +2251,7 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _modal = __webpack_require__("oKH6");
 
@@ -2261,7 +2261,7 @@ var HelpLink = function HelpLink() {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "help-root",
     onClick: function onClick() {
diff --git a/5/ecolyo.f608963dea1009d4de60.js b/5/ecolyo.303a9e9c179fc6339afc.js
similarity index 98%
rename from 5/ecolyo.f608963dea1009d4de60.js
rename to 5/ecolyo.303a9e9c179fc6339afc.js
index c54fed423..fff40e341 100644
--- a/5/ecolyo.f608963dea1009d4de60.js
+++ b/5/ecolyo.303a9e9c179fc6339afc.js
@@ -847,14 +847,14 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _chart = __webpack_require__("idK9");
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _decoreText = __webpack_require__("j5h9");
 
 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); }
@@ -875,12 +875,12 @@ var SgeInit = function SgeInit(_ref) {
   var konnectorSlug = fluidStatus.connection.konnectorConfig.slug;
   var account = fluidStatus.connection.account;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      sgeConnect = _useSelector.sgeConnect;
+      sgeConnect = _useAppSelector.sgeConnect;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
   var _useKonnectorAuth = (0, _useKonnectorAuth3.default)(fluidStatus),
       _useKonnectorAuth2 = (0, _slicedToArray2.default)(_useKonnectorAuth, 2),
@@ -1068,8 +1068,6 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
@@ -1080,6 +1078,8 @@ var _chart = __webpack_require__("idK9");
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _modal = __webpack_require__("oKH6");
 
 var _date = __webpack_require__("XrP9");
@@ -1108,24 +1108,24 @@ var ConsumptionView = function ConsumptionView(_ref) {
   var fluidType = _ref.fluidType;
   var navigate = (0, _reactRouterDom.useNavigate)();
   var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   var isMulti = fluidType === _fluid.FluidType.MULTIFLUID;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      _useSelector$chart = _useSelector.chart,
-      currentTimeStep = _useSelector$chart.currentTimeStep,
-      loading = _useSelector$chart.loading,
-      showOfflineData = _useSelector$chart.showOfflineData,
-      selectedDate = _useSelector$chart.selectedDate,
-      currentIndex = _useSelector$chart.currentIndex,
-      _useSelector$global = _useSelector.global,
-      fluidStatus = _useSelector$global.fluidStatus,
-      releaseNotes = _useSelector$global.releaseNotes,
-      _useSelector$modal = _useSelector.modal,
-      partnersIssueModal = _useSelector$modal.partnersIssueModal,
-      customPopupModal = _useSelector$modal.customPopupModal;
+      _useAppSelector$chart = _useAppSelector.chart,
+      currentTimeStep = _useAppSelector$chart.currentTimeStep,
+      loading = _useAppSelector$chart.loading,
+      showOfflineData = _useAppSelector$chart.showOfflineData,
+      selectedDate = _useAppSelector$chart.selectedDate,
+      currentIndex = _useAppSelector$chart.currentIndex,
+      _useAppSelector$globa = _useAppSelector.global,
+      fluidStatus = _useAppSelector$globa.fluidStatus,
+      releaseNotes = _useAppSelector$globa.releaseNotes,
+      _useAppSelector$modal = _useAppSelector.modal,
+      partnersIssueModal = _useAppSelector$modal.partnersIssueModal,
+      customPopupModal = _useAppSelector$modal.customPopupModal;
 
   var dateChartService = new _dateChart.default();
 
@@ -1445,10 +1445,10 @@ var _fluid = __webpack_require__("5Wkc");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _EpglInit = _interopRequireDefault(__webpack_require__("waxR"));
 
 var _GrdfInit = _interopRequireDefault(__webpack_require__("L2+7"));
@@ -1467,7 +1467,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
 
 var Connection = function Connection(_ref) {
   var fluidStatus = _ref.fluidStatus;
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   var handleSuccess = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
     var updatedConnection;
     return _regenerator.default.wrap(function _callee$(_context) {
@@ -1539,8 +1539,6 @@ var _usageEvent = __webpack_require__("/fHX");
 
 var _react2 = __webpack_require__("q1tI");
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _account2 = _interopRequireDefault(__webpack_require__("gucQ"));
 
 var _connection = _interopRequireDefault(__webpack_require__("3nDq"));
@@ -1551,6 +1549,8 @@ var _chart = __webpack_require__("idK9");
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _logger = _interopRequireDefault(__webpack_require__("gjtA"));
 
 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); }
@@ -1567,13 +1567,13 @@ var useKonnectorAuth = function useKonnectorAuth(fluidStatus, login, password) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   var konnectorSlug = fluidStatus.connection.konnectorConfig.slug;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      sgeConnect = _useSelector.sgeConnect;
+      sgeConnect = _useAppSelector.sgeConnect;
 
   var _useState = (0, _react2.useState)(''),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -1893,8 +1893,6 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _account = _interopRequireDefault(__webpack_require__("gucQ"));
@@ -1915,6 +1913,8 @@ var _chart = __webpack_require__("idK9");
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _modal = __webpack_require__("oKH6");
 
 var _picto = __webpack_require__("6DBe");
@@ -1950,7 +1950,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
       t = _useI18n.t;
 
   var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   var navigate = (0, _reactRouterDom.useNavigate)();
   var fluidSlug = fluidStatus.connection.konnectorConfig.slug;
   var fluidState = fluidStatus.status;
@@ -1958,14 +1958,14 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) {
   var account = fluidStatus.connection.account;
   var trigger = fluidStatus.connection.trigger;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      currentChallenge = _useSelector.challenge.currentChallenge,
-      _useSelector$global = _useSelector.global,
-      statusArray = _useSelector$global.fluidStatus,
-      shouldRefreshConsent = _useSelector$global.shouldRefreshConsent,
-      partnersInfo = _useSelector$global.partnersInfo;
+      currentChallenge = _useAppSelector.challenge.currentChallenge,
+      _useAppSelector$globa = _useAppSelector.global,
+      statusArray = _useAppSelector$globa.fluidStatus,
+      shouldRefreshConsent = _useAppSelector$globa.shouldRefreshConsent,
+      partnersInfo = _useAppSelector$globa.partnersInfo;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -2896,14 +2896,14 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _consumption = _interopRequireDefault(__webpack_require__("AVq/"));
 
 var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
 
 var _chart = __webpack_require__("idK9");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("C5+q");
 
 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); }
@@ -2918,17 +2918,17 @@ var FluidChartSlide = function FluidChartSlide(_ref) {
       isSwitching = _ref.isSwitching,
       setActive = _ref.setActive;
   var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      _useSelector$chart = _useSelector.chart,
-      currentTimeStep = _useSelector$chart.currentTimeStep,
-      currentIndex = _useSelector$chart.currentIndex,
-      _useSelector$global = _useSelector.global,
-      fluidStatus = _useSelector$global.fluidStatus,
-      fluidTypes = _useSelector$global.fluidTypes;
+      _useAppSelector$chart = _useAppSelector.chart,
+      currentTimeStep = _useAppSelector$chart.currentTimeStep,
+      currentIndex = _useAppSelector$chart.currentIndex,
+      _useAppSelector$globa = _useAppSelector.global,
+      fluidStatus = _useAppSelector$globa.fluidStatus,
+      fluidTypes = _useAppSelector$globa.fluidTypes;
 
   var _useState = (0, _react.useState)({
     actualData: [],
@@ -3084,8 +3084,6 @@ var _usageEvent = __webpack_require__("/fHX");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _account = _interopRequireDefault(__webpack_require__("gucQ"));
 
 var _triggers = _interopRequireDefault(__webpack_require__("7d5P"));
@@ -3094,6 +3092,8 @@ var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _modal = __webpack_require__("oKH6");
 
 __webpack_require__("0OtY");
@@ -3114,12 +3114,12 @@ var GrdfInit = function GrdfInit(_ref) {
   var fluidStatus = _ref.fluidStatus,
       onSuccess = _ref.onSuccess;
   var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo;
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo.modal;
   }),
-      isConnectionModalOpen = _useSelector.modal.isConnectionModalOpen;
+      isConnectionModalOpen = _useAppSelector.isConnectionModalOpen;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -3257,12 +3257,12 @@ var _usageEvent = __webpack_require__("/fHX");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 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; }
@@ -3279,17 +3279,18 @@ var FormOAuth = function FormOAuth(_ref) {
 
   var client = (0, _cozyClient.useClient)();
 
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo.global;
+  }),
+      shouldRefreshConsent = _useAppSelector.shouldRefreshConsent;
+
+  var dispatch = (0, _hooks.useAppDispatch)();
+
   var _useState = (0, _react.useState)(IDLE),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       status = _useState2[0],
       setStatus = _useState2[1];
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.global;
-  }),
-      shouldRefreshConsent = _useSelector.shouldRefreshConsent;
-
-  var dispatch = (0, _reactRedux.useDispatch)();
   var endOAuth = (0, _react.useCallback)(function () {
     setStatus(IDLE); // Set back to false the variable that allows to automatically refresh the consent (deletes and recreates the account)
 
@@ -3556,7 +3557,7 @@ var _dataload = __webpack_require__("D5WE");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _DataloadNoValue = _interopRequireDefault(__webpack_require__("k66a"));
 
@@ -3576,10 +3577,10 @@ var DataloadConsumptionVisualizer = function DataloadConsumptionVisualizer(_ref)
       compareDataload = _ref.compareDataload,
       setActive = _ref.setActive;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.chart;
   }),
-      showCompare = _useSelector.showCompare;
+      showCompare = _useAppSelector.showCompare;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -3659,7 +3660,7 @@ var _timeStep = __webpack_require__("cKQ8");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _date = __webpack_require__("XrP9");
 
@@ -3671,12 +3672,12 @@ var ConsumptionDetails = function ConsumptionDetails(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.chart;
   }),
-      currentTimeStep = _useSelector.currentTimeStep,
-      currentDatachart = _useSelector.currentDatachart,
-      showCompare = _useSelector.showCompare;
+      currentTimeStep = _useAppSelector.currentTimeStep,
+      currentDatachart = _useAppSelector.currentDatachart,
+      showCompare = _useAppSelector.showCompare;
 
   return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
     className: "consumption-details-root"
@@ -3726,7 +3727,7 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _modal = __webpack_require__("oKH6");
 
@@ -3736,7 +3737,7 @@ var GrdfForm = function GrdfForm() {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "connection-form"
   }, /*#__PURE__*/_react.default.createElement("p", {
@@ -4036,7 +4037,7 @@ var _fluid = __webpack_require__("5Wkc");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _InfoDataConsumptionVisualizer = _interopRequireDefault(__webpack_require__("y87k"));
 
@@ -4052,15 +4053,15 @@ var ConsumptionVisualizer = function ConsumptionVisualizer(_ref) {
   var fluidType = _ref.fluidType,
       setActive = _ref.setActive;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      _useSelector$chart = _useSelector.chart,
-      currentDatachart = _useSelector$chart.currentDatachart,
-      currentDatachartIndex = _useSelector$chart.currentDatachartIndex,
-      _useSelector$global = _useSelector.global,
-      fluidStatus = _useSelector$global.fluidStatus,
-      fluidTypes = _useSelector$global.fluidTypes;
+      _useAppSelector$chart = _useAppSelector.chart,
+      currentDatachart = _useAppSelector$chart.currentDatachart,
+      currentDatachartIndex = _useAppSelector$chart.currentDatachartIndex,
+      _useAppSelector$globa = _useAppSelector.global,
+      fluidStatus = _useAppSelector$globa.fluidStatus,
+      fluidTypes = _useAppSelector$globa.fluidTypes;
 
   var dataload = currentDatachart.actualData[currentDatachartIndex];
   var compareDataload = currentDatachart.comparisonData ? currentDatachart.comparisonData[currentDatachartIndex] : null;
@@ -4167,10 +4168,10 @@ var _fluid = __webpack_require__("5Wkc");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _picto = __webpack_require__("6DBe");
 
 var _utils = __webpack_require__("c+yx");
@@ -4185,10 +4186,10 @@ var KonnectorViewerList = function KonnectorViewerList() {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      fluidStatus = _useSelector.fluidStatus;
+      fluidStatus = _useAppSelector.fluidStatus;
 
   var navigate = (0, _reactRouterDom.useNavigate)();
   var goToFluid = (0, _react.useCallback)(function (fluidType) {
@@ -4981,8 +4982,6 @@ var _useChartResize2 = __webpack_require__("tWvI");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactSwipeableViews = _interopRequireDefault(__webpack_require__("7VIw"));
 
 var _reactSwipeableViewsUtils = __webpack_require__("7wYf");
@@ -4991,6 +4990,8 @@ var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
 
 var _chart = __webpack_require__("idK9");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("0Udq");
 
 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); }
@@ -5002,15 +5003,15 @@ var VirtualizeSwipeableViews = (0, _reactSwipeableViewsUtils.virtualize)(_reactS
 var FluidChartSwipe = function FluidChartSwipe(_ref) {
   var fluidType = _ref.fluidType,
       setActive = _ref.setActive;
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.chart;
   }),
-      currentIndex = _useSelector.currentIndex,
-      currentTimeStep = _useSelector.currentTimeStep,
-      selectedDate = _useSelector.selectedDate,
-      loading = _useSelector.loading;
+      currentIndex = _useAppSelector.currentIndex,
+      currentTimeStep = _useAppSelector.currentTimeStep,
+      selectedDate = _useAppSelector.selectedDate,
+      loading = _useAppSelector.loading;
 
   var swipe = (0, _react.useRef)(null);
 
@@ -5414,8 +5415,6 @@ var _userExploration = __webpack_require__("/rev");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _consumption = _interopRequireDefault(__webpack_require__("AVq/"));
@@ -5426,6 +5425,8 @@ var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
 var _chart = __webpack_require__("idK9");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _modal = __webpack_require__("oKH6");
 
 var _utils = __webpack_require__("c+yx");
@@ -5447,16 +5448,16 @@ var FluidChart = function FluidChart(_ref) {
 
   var client = (0, _cozyClient.useClient)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      _useSelector$chart = _useSelector.chart,
-      currentTimeStep = _useSelector$chart.currentTimeStep,
-      selectedDate = _useSelector$chart.selectedDate,
-      showCompare = _useSelector$chart.showCompare,
-      fluidStatus = _useSelector.global.fluidStatus;
+      _useAppSelector$chart = _useAppSelector.chart,
+      currentTimeStep = _useAppSelector$chart.currentTimeStep,
+      selectedDate = _useAppSelector$chart.selectedDate,
+      showCompare = _useAppSelector$chart.showCompare,
+      fluidStatus = _useAppSelector.global.fluidStatus;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   var navigate = (0, _reactRouterDom.useNavigate)();
   var currentFluidStatus = fluidStatus[fluidType];
   var isFluidConnected = (0, _utils.isKonnectorActive)(fluidStatus, fluidType);
@@ -5733,14 +5734,14 @@ var _usageEvent = __webpack_require__("/fHX");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
 
 var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _picto = __webpack_require__("6DBe");
 
 var _utils = __webpack_require__("c+yx");
@@ -5756,14 +5757,13 @@ var FluidButton = function FluidButton(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
+  var client = (0, _cozyClient.useClient)();
   var navigate = (0, _reactRouterDom.useNavigate)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      fluidStatus = _useSelector.fluidStatus;
-
-  var client = (0, _cozyClient.useClient)();
+      fluidStatus = _useAppSelector.fluidStatus;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -5890,12 +5890,12 @@ var _timeStep = __webpack_require__("cKQ8");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _consumption = _interopRequireDefault(__webpack_require__("AVq/"));
 
 var _converter = _interopRequireDefault(__webpack_require__("LXmx"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _utils = __webpack_require__("c+yx");
 
 __webpack_require__("Ijwy");
@@ -5907,12 +5907,12 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 var TotalConsumption = function TotalConsumption(_ref) {
   var fluidType = _ref.fluidType;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.chart;
   }),
-      currentTimeStep = _useSelector.currentTimeStep,
-      showCompare = _useSelector.showCompare,
-      currentDatachart = _useSelector.currentDatachart;
+      currentTimeStep = _useAppSelector.currentTimeStep,
+      showCompare = _useAppSelector.showCompare,
+      currentDatachart = _useAppSelector.currentDatachart;
 
   var client = (0, _cozyClient.useClient)();
 
@@ -6076,10 +6076,10 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _chart = __webpack_require__("idK9");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _modal = __webpack_require__("oKH6");
 
 var _decoreText = __webpack_require__("j5h9");
@@ -6092,7 +6092,7 @@ var GrdfBill = function GrdfBill(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "connection-form"
   }, /*#__PURE__*/_react.default.createElement("p", {
@@ -6551,12 +6551,12 @@ var _fluid = __webpack_require__("5Wkc");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _utils = __webpack_require__("c+yx");
 
 __webpack_require__("B3W9");
@@ -6575,12 +6575,12 @@ var ExpiredConsentModal = function ExpiredConsentModal(_ref) {
       t = _useI18n.t;
 
   var navigate = (0, _reactRouterDom.useNavigate)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      fluidStatus = _useSelector.fluidStatus;
+      fluidStatus = _useAppSelector.fluidStatus;
 
   var launchUpdateConsent = (0, _react.useCallback)(function () {
     if (fluidType === _fluid.FluidType.ELECTRICITY) {
@@ -6703,7 +6703,7 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _decoreText = __webpack_require__("j5h9");
 
@@ -6716,10 +6716,10 @@ var ReleaseNotesModal = function ReleaseNotesModal(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      releaseNotes = _useSelector.releaseNotes;
+      releaseNotes = _useAppSelector.releaseNotes;
 
   return /*#__PURE__*/_react.default.createElement(_Dialog.default, {
     open: open,
@@ -6910,10 +6910,10 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _chart = __webpack_require__("idK9");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _modal = __webpack_require__("oKH6");
 
 var _decoreText = __webpack_require__("j5h9");
@@ -6926,7 +6926,7 @@ var EpglBill = function EpglBill(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "connection-form"
   }, /*#__PURE__*/_react.default.createElement("p", {
@@ -7131,8 +7131,6 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _account2 = _interopRequireDefault(__webpack_require__("gucQ"));
 
 var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
@@ -7141,6 +7139,8 @@ var _triggers = _interopRequireDefault(__webpack_require__("7d5P"));
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _utils = __webpack_require__("c+yx");
 
 var _DeleteGRDFAccountModal = _interopRequireDefault(__webpack_require__("h30T"));
@@ -7172,7 +7172,7 @@ var ConnectionResult = function ConnectionResult(_ref) {
       t = _useI18n.t;
 
   var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   var account = fluidStatus.connection.account;
 
   var _useState = (0, _react.useState)(false),
@@ -7711,14 +7711,14 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
 
 var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
 var _chart = __webpack_require__("idK9");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _utils = __webpack_require__("c+yx");
 
 __webpack_require__("Nxpj");
@@ -7726,16 +7726,17 @@ __webpack_require__("Nxpj");
 var TimeStepSelector = function TimeStepSelector(_ref) {
   var fluidType = _ref.fluidType;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.chart;
-  }),
-      currentTimeStep = _useSelector.currentTimeStep,
-      selectedDate = _useSelector.selectedDate;
-
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
+
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo.chart;
+  }),
+      currentTimeStep = _useAppSelector.currentTimeStep,
+      selectedDate = _useAppSelector.selectedDate;
+
   var dateChartService = new _dateChart.default();
   var client = (0, _cozyClient.useClient)();
   var timeStepElecArray = [_timeStep.TimeStep.HALF_AN_HOUR, _timeStep.TimeStep.WEEK, _timeStep.TimeStep.DAY, _timeStep.TimeStep.MONTH, _timeStep.TimeStep.YEAR];
@@ -7826,7 +7827,7 @@ var _EpglConnectModal = _interopRequireDefault(__webpack_require__("b88j"));
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _modal = __webpack_require__("oKH6");
 
@@ -7842,12 +7843,12 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 
 var EpglInit = function EpglInit(_ref) {
   var fluidStatus = _ref.fluidStatus;
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo;
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo.modal;
   }),
-      isConnectionModalOpen = _useSelector.modal.isConnectionModalOpen;
+      isConnectionModalOpen = _useAppSelector.isConnectionModalOpen;
 
   var siteLink = fluidStatus.connection.konnectorConfig.siteLink;
 
@@ -7960,12 +7961,12 @@ var _fluid = __webpack_require__("5Wkc");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
 
 var _chart = __webpack_require__("idK9");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _NoDataModal = _interopRequireDefault(__webpack_require__("1Yut"));
 
 __webpack_require__("bBuF");
@@ -7982,12 +7983,12 @@ var InfoDataConsumptionVisualizer = function InfoDataConsumptionVisualizer(_ref)
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.chart;
   }),
-      currentTimeStep = _useSelector.currentTimeStep;
+      currentTimeStep = _useAppSelector.currentTimeStep;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
diff --git a/6/ecolyo.43da79ce35b253d452e4.js b/6/ecolyo.052a7e4347d67d8d23a2.js
similarity index 99%
rename from 6/ecolyo.43da79ce35b253d452e4.js
rename to 6/ecolyo.052a7e4347d67d8d23a2.js
index 7a7c2b113..e003d052b 100644
--- a/6/ecolyo.43da79ce35b253d452e4.js
+++ b/6/ecolyo.052a7e4347d67d8d23a2.js
@@ -45,12 +45,12 @@ var _ecogesture = __webpack_require__("SpsK");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _ecogesture2 = _interopRequireDefault(__webpack_require__("w4u3"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _profile = __webpack_require__("jPH6");
 
 var _EcogestureEmptyList = _interopRequireDefault(__webpack_require__("vfcT"));
@@ -92,14 +92,14 @@ var EcogestureView = function EcogestureView() {
 
   var client = (0, _cozyClient.useClient)();
   var tab = new URLSearchParams((0, _reactRouterDom.useLocation)().search).get('tab');
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      profile = _useSelector.profile,
-      profileEcogesture = _useSelector.profileEcogesture,
-      profileType = _useSelector.profileType;
+      profile = _useAppSelector.profile,
+      profileEcogesture = _useAppSelector.profileEcogesture,
+      profileType = _useAppSelector.profileType;
 
   var _useState3 = (0, _react.useState)(tab ? parseInt(tab) : _ecogesture.EcogestureTab.OBJECTIVE),
       _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
diff --git a/7/ecolyo.ecc0c43fa7f6c253f692.js b/7/ecolyo.1abe158dc55e2f003411.js
similarity index 99%
rename from 7/ecolyo.ecc0c43fa7f6c253f692.js
rename to 7/ecolyo.1abe158dc55e2f003411.js
index 4ef7eae65..ea2c85539 100644
--- a/7/ecolyo.ecc0c43fa7f6c253f692.js
+++ b/7/ecolyo.1abe158dc55e2f003411.js
@@ -66,7 +66,7 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var BarChart = function BarChart(_ref) {
   var chartData = _ref.chartData,
@@ -88,10 +88,10 @@ var BarChart = function BarChart(_ref) {
       _ref$clickable = _ref.clickable,
       clickable = _ref$clickable === void 0 ? true : _ref$clickable;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.chart;
   }),
-      showCompare = _useSelector.showCompare;
+      showCompare = _useAppSelector.showCompare;
 
   var getContentWidth = function getContentWidth() {
     return width - marginLeft - marginRight;
diff --git a/9/ecolyo.4facae32c2f3722bac49.js b/9/ecolyo.6091887befa8328bcb53.js
similarity index 99%
rename from 9/ecolyo.4facae32c2f3722bac49.js
rename to 9/ecolyo.6091887befa8328bcb53.js
index 2ec6d0819..8ceafa2a6 100644
--- a/9/ecolyo.4facae32c2f3722bac49.js
+++ b/9/ecolyo.6091887befa8328bcb53.js
@@ -57,12 +57,12 @@ var _Icon = _interopRequireDefault(__webpack_require__("y6ex"));
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _ecogesture = _interopRequireDefault(__webpack_require__("w4u3"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _utils = __webpack_require__("c+yx");
 
 var _EfficiencyRating = _interopRequireDefault(__webpack_require__("Zjkz"));
@@ -125,10 +125,10 @@ var SingleEcogesture = function SingleEcogesture() {
     return new _ecogesture.default(client);
   }, [client]);
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.challenge;
   }),
-      currentChallenge = _useSelector.currentChallenge;
+      currentChallenge = _useAppSelector.currentChallenge;
 
   var _useState13 = (0, _react.useState)(0),
       _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
diff --git a/app/ecolyo.2e0a67ac9d0b71f1d504.js b/app/ecolyo.e730bea01a9a2f8da8ee.js
similarity index 99%
rename from app/ecolyo.2e0a67ac9d0b71f1d504.js
rename to app/ecolyo.e730bea01a9a2f8da8ee.js
index 7b95f66ea..42232d05e 100644
--- a/app/ecolyo.2e0a67ac9d0b71f1d504.js
+++ b/app/ecolyo.e730bea01a9a2f8da8ee.js
@@ -64,7 +64,7 @@
 /******/
 /******/ 	// script path function
 /******/ 	function jsonpScriptSrc(chunkId) {
-/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"1":"c44aefc530d1de68ee3f","3":"cb69fe8a89fd2277b94f","4":"57299cb28a6df1ed84ea","5":"f608963dea1009d4de60","6":"43da79ce35b253d452e4","7":"ecc0c43fa7f6c253f692","8":"a9363dc7eb1de5bcc528","9":"4facae32c2f3722bac49","10":"e8a00fc8bc16cb5a9dfd"}[chunkId] + ".js"
+/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"1":"c44aefc530d1de68ee3f","3":"380565e06c8aa28834aa","4":"1a07b3c4fd8b5b253098","5":"303a9e9c179fc6339afc","6":"052a7e4347d67d8d23a2","7":"1abe158dc55e2f003411","8":"a9363dc7eb1de5bcc528","9":"6091887befa8328bcb53","10":"e8a00fc8bc16cb5a9dfd"}[chunkId] + ".js"
 /******/ 	}
 /******/
 /******/ 	// The require function
@@ -257,10 +257,10 @@ var _usageEvent = __webpack_require__("/fHX");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _utils = __webpack_require__("c+yx");
 
 __webpack_require__("9Pmv");
@@ -286,10 +286,10 @@ var ActionCard = function ActionCard(_ref) {
 
   var client = (0, _cozyClient.useClient)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.challenge;
   }),
-      currentChallenge = _useSelector.currentChallenge;
+      currentChallenge = _useAppSelector.currentChallenge;
 
   var toggleModal = (0, _react.useCallback)(function () {
     setOpenEcogestureModal(function (prev) {
@@ -407,8 +407,6 @@ var _userChallenge = __webpack_require__("dQx6");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
 
 var _quiz = _interopRequireDefault(__webpack_require__("CUhI"));
@@ -417,6 +415,8 @@ var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
 var _challenge2 = __webpack_require__("F6Xr");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("mFBf");
 
 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); }
@@ -432,6 +432,9 @@ var QuizCustomQuestionContent = function QuizCustomQuestionContent(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
+  var client = (0, _cozyClient.useClient)();
+  var dispatch = (0, _hooks.useAppDispatch)();
+
   var _useState = (0, _react.useState)(''),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       userChoice = _useState2[0],
@@ -447,8 +450,6 @@ var QuizCustomQuestionContent = function QuizCustomQuestionContent(_ref) {
       answerIndex = _useState6[0],
       setAnswerIndex = _useState6[1];
 
-  var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
   var quizService = new _quiz.default(client);
   var challengeService = new _challenge.default(client);
 
@@ -632,7 +633,7 @@ var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _environment = _interopRequireDefault(__webpack_require__("X6DI"));
 
-var _store = _interopRequireDefault(__webpack_require__("BhN1"));
+var _store = _interopRequireDefault(__webpack_require__("uFCc"));
 
 var _cozyBar = _interopRequireDefault(__webpack_require__("0mAb"));
 
@@ -2283,7 +2284,7 @@ var _ecogestureForm = __webpack_require__("kcOp");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _EquipmentIcon = _interopRequireDefault(__webpack_require__("Nixq"));
 
@@ -2308,10 +2309,10 @@ var EcogestureFormEquipment = function EcogestureFormEquipment(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.profile;
   }),
-      isProfileEcogestureCompleted = _useSelector.isProfileEcogestureCompleted;
+      isProfileEcogestureCompleted = _useAppSelector.isProfileEcogestureCompleted;
 
   var previousEquipments = (currentProfileType === null || currentProfileType === void 0 ? void 0 : currentProfileType.equipments) || (currentProfileEcogesture === null || currentProfileEcogesture === void 0 ? void 0 : currentProfileEcogesture.equipments) || [];
 
@@ -3135,7 +3136,7 @@ var _userChallenge = __webpack_require__("dQx6");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _ChallengeCard = _interopRequireDefault(__webpack_require__("bncx"));
 
@@ -3149,10 +3150,10 @@ var ChallengeView = function ChallengeView() {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.challenge;
   }),
-      userChallengeList = _useSelector.userChallengeList;
+      userChallengeList = _useAppSelector.userChallengeList;
 
   var marginPx = 16;
   var cardWidth = window.outerWidth < 500 ? window.outerWidth - marginPx * 6 : 285;
@@ -3362,12 +3363,12 @@ var _Icon = _interopRequireDefault(__webpack_require__("y6ex"));
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _environment = _interopRequireDefault(__webpack_require__("X6DI"));
 
 var _mail = _interopRequireDefault(__webpack_require__("40JQ"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _profile = __webpack_require__("jPH6");
 
 __webpack_require__("jCXb");
@@ -3387,7 +3388,7 @@ var WelcomeModal = function WelcomeModal(_ref) {
       t = _useI18n.t;
 
   var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
   var _useUserInstanceSetti = (0, _useUserInstanceSettings.default)(),
       instanceSettings = _useUserInstanceSetti.data;
@@ -3753,23 +3754,23 @@ var _userAction = __webpack_require__("UtDE");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 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; }
 
 var ActionView = function ActionView() {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo.challenge;
+  }),
+      currentChallenge = _useAppSelector.currentChallenge;
+
   var _useState = (0, _react.useState)(0),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       headerHeight = _useState2[0],
       setHeaderHeight = _useState2[1];
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.challenge;
-  }),
-      currentChallenge = _useSelector.currentChallenge;
-
   var defineHeaderHeight = (0, _react.useCallback)(function (height) {
     setHeaderHeight(height);
   }, []);
@@ -4023,7 +4024,7 @@ var _ecogestureForm = __webpack_require__("kcOp");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 __webpack_require__("iYKh");
 
@@ -4046,10 +4047,10 @@ var EcogestureFormSingleChoice = function EcogestureFormSingleChoice(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.profile;
   }),
-      isProfileEcogestureCompleted = _useSelector.isProfileEcogestureCompleted;
+      isProfileEcogestureCompleted = _useAppSelector.isProfileEcogestureCompleted;
 
   var _useState = (0, _react.useState)(isProfileEcogestureCompleted || step < viewedStep ? currentProfileEcogesture[answerType.attribute] : null),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -4508,10 +4509,10 @@ var _sgeStep = __webpack_require__("q1H9");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("8ECJ");
 
 var _StepAddress = _interopRequireDefault(__webpack_require__("3dsA"));
@@ -4529,37 +4530,36 @@ 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 SgeConnectView = function SgeConnectView() {
-  var _useState = (0, _react.useState)(0),
-      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
-      headerHeight = _useState2[0],
-      setHeaderHeight = _useState2[1];
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      sgeConnect = _useSelector.sgeConnect;
+      sgeConnect = _useAppSelector.sgeConnect;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var _useState = (0, _react.useState)(false),
+      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
+      isLoading = _useState2[0],
+      setIsLoading = _useState2[1];
 
-  var _useState3 = (0, _react.useState)(sgeConnect.currentStep),
+  var _useState3 = (0, _react.useState)(sgeConnect),
       _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
-      currentStep = _useState4[0],
-      setCurrentStep = _useState4[1];
+      currentSgeState = _useState4[0],
+      setCurrentSgeState = _useState4[1];
 
-  var _useState5 = (0, _react.useState)(sgeConnect),
+  var _useState5 = (0, _react.useState)(sgeConnect.currentStep),
       _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
-      currentSgeState = _useState6[0],
-      setCurrentSgeState = _useState6[1];
+      currentStep = _useState6[0],
+      setCurrentStep = _useState6[1];
+
+  var _useState7 = (0, _react.useState)(0),
+      _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
+      headerHeight = _useState8[0],
+      setHeaderHeight = _useState8[1];
 
   var defineHeaderHeight = (0, _react.useCallback)(function (height) {
     setHeaderHeight(height);
   }, []);
-
-  var _useState7 = (0, _react.useState)(false),
-      _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
-      isLoading = _useState8[0],
-      setIsLoading = _useState8[1];
-
   var isNextValid = (0, _react.useCallback)(function () {
     switch (currentStep) {
       case _sgeStep.SgeStep.IdentityAndPDL:
@@ -4854,10 +4854,10 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _action = _interopRequireDefault(__webpack_require__("5e6O"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _utils = __webpack_require__("c+yx");
 
 __webpack_require__("09DC");
@@ -4875,11 +4875,11 @@ var ActionBegin = function ActionBegin(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      fluidTypes = _useSelector.global.fluidTypes,
-      isProfileTypeCompleted = _useSelector.profile.isProfileTypeCompleted;
+      fluidTypes = _useAppSelector.global.fluidTypes,
+      isProfileTypeCompleted = _useAppSelector.profile.isProfileTypeCompleted;
 
   var _useState = (0, _react.useState)(),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -5608,8 +5608,6 @@ var _userDuel = __webpack_require__("MBn6");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
@@ -5620,6 +5618,8 @@ var _challenge2 = __webpack_require__("F6Xr");
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _utils = __webpack_require__("c+yx");
 
 __webpack_require__("r6cs");
@@ -5636,13 +5636,13 @@ var DuelOngoing = function DuelOngoing(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.challenge;
   }),
-      currentDataload = _useSelector.currentDataload,
-      userChallengeList = _useSelector.userChallengeList;
+      currentDataload = _useAppSelector.currentDataload,
+      userChallengeList = _useAppSelector.userChallengeList;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   var navigate = (0, _reactRouterDom.useNavigate)();
 
   var _useState = (0, _react.useState)(false),
@@ -8403,10 +8403,10 @@ var _userDuel = __webpack_require__("MBn6");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _DuelEmptyValueModal = _interopRequireDefault(__webpack_require__("upmN"));
 
 var _DuelOngoing = _interopRequireDefault(__webpack_require__("5tjS"));
@@ -8416,16 +8416,16 @@ 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 DuelView = function DuelView() {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo.challenge;
+  }),
+      userChallengeList = _useAppSelector.userChallengeList;
+
   var _useState = (0, _react.useState)(0),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       headerHeight = _useState2[0],
       setHeaderHeight = _useState2[1];
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.challenge;
-  }),
-      userChallengeList = _useSelector.userChallengeList;
-
   var id = new URLSearchParams((0, _reactRouterDom.useLocation)().search).get('id');
   var challengeToDisplay = userChallengeList.find(function (challenge) {
     return challenge.id === id;
@@ -10340,98 +10340,6 @@ var result = _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WE
 
 /***/ }),
 
-/***/ "BhN1":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _interopRequireDefault = __webpack_require__("TqRt");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.defaultAction = exports.default = void 0;
-
-var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
-
-var Sentry = _interopRequireWildcard(__webpack_require__("agHs"));
-
-var _redux = __webpack_require__("ANjH");
-
-var _reduxDevtoolsExtension = __webpack_require__("5HXA");
-
-var _reduxThunk = _interopRequireDefault(__webpack_require__("sINF"));
-
-var _analysis = __webpack_require__("JQjK");
-
-var _challenge = __webpack_require__("F6Xr");
-
-var _chart = __webpack_require__("idK9");
-
-var _global = __webpack_require__("b3rE");
-
-var _modal = __webpack_require__("oKH6");
-
-var _profile = __webpack_require__("QCMq");
-
-var _profileEcogesture = __webpack_require__("L0ad");
-
-var _profileType = __webpack_require__("ZI2v");
-
-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(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
-
-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 defaultAction = {
-  type: null,
-  payload: undefined
-};
-exports.defaultAction = defaultAction;
-var ecolyoReducer = (0, _redux.combineReducers)({
-  analysis: _analysis.analysisSlice.reducer,
-  challenge: _challenge.challengeSlice.reducer,
-  chart: _chart.chartSlice.reducer,
-  global: _global.globalSlice.reducer,
-  modal: _modal.modalSlice.reducer,
-  profile: _profile.profileReducer,
-  profileEcogesture: _profileEcogesture.profileEcogestureReducer,
-  profileType: _profileType.profileTypeSlice.reducer
-});
-
-var appActions = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, _analysis.analysisSlice.actions), _challenge.challengeSlice.actions), _chart.chartSlice.actions), _modal.modalSlice.actions), _profileType.profileTypeSlice.actions), _global.globalSlice.actions); // TODO refactor types with AppActionsTypes = typeof appActions
-
-
-var sentryReduxEnhancer = Sentry.createReduxEnhancer({});
-
-var configureStore = function configureStore(client, persistedState) {
-  var middlewares = [_reduxThunk.default.withExtraArgument({
-    client: client
-  })];
-
-  var composeEnhancers = (0, _reduxDevtoolsExtension.composeWithDevTools)({
-    trace: true,
-    actionCreators: appActions
-  }) || _redux.compose;
-
-  var store = (0, _redux.createStore)((0, _redux.combineReducers)({
-    ecolyo: ecolyoReducer,
-    cozy: client.reducer(),
-    persistedState: persistedState
-  }), composeEnhancers( // eslint-disable-next-line prefer-spread
-  _redux.applyMiddleware.apply(null, middlewares), sentryReduxEnhancer));
-  return store;
-};
-
-var _default = configureStore;
-exports.default = _default;
-
-/***/ }),
-
 /***/ "Bpne":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -10572,10 +10480,10 @@ var _screen = __webpack_require__("41Xj");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _modal = __webpack_require__("oKH6");
 
 var _cozyBar = _interopRequireDefault(__webpack_require__("0mAb"));
@@ -10596,15 +10504,15 @@ var CozyBar = function CozyBar(_ref) {
       t = _useI18n.t;
 
   var navigate = (0, _reactRouterDom.useNavigate)();
-  var dispatch = (0, _reactRedux.useDispatch)();
   var BarLeft = _cozyBar.default.BarLeft,
       BarCenter = _cozyBar.default.BarCenter,
       BarRight = _cozyBar.default.BarRight;
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      screenType = _useSelector.screenType;
+      screenType = _useAppSelector.screenType;
 
   var handleClickBack = (0, _react.useCallback)(function () {
     if (backFunction) {
@@ -13120,12 +13028,12 @@ var _cozyClient = __webpack_require__("SH7X");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _quiz = _interopRequireDefault(__webpack_require__("CUhI"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("mFBf");
 
 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); }
@@ -13155,10 +13063,10 @@ var QuizQuestion = function QuizQuestion(_ref) {
 
   var client = (0, _cozyClient.useClient)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      fluidTypes = _useSelector.fluidTypes;
+      fluidTypes = _useAppSelector.fluidTypes;
 
   var navigate = (0, _reactRouterDom.useNavigate)();
 
@@ -14175,14 +14083,14 @@ var _userQuiz = __webpack_require__("Ush/");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
 
 var _challenge2 = __webpack_require__("F6Xr");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _utils = __webpack_require__("c+yx");
 
 var _ChallengeNoFluidModal = _interopRequireDefault(__webpack_require__("rDu6"));
@@ -14206,8 +14114,16 @@ var ChallengeCardOnGoing = function ChallengeCardOnGoing(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
   var navigate = (0, _reactRouterDom.useNavigate)();
+  var dispatch = (0, _hooks.useAppDispatch)();
+
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo;
+  }),
+      currentDataload = _useAppSelector.challenge.currentDataload,
+      _useAppSelector$globa = _useAppSelector.global,
+      fluidTypes = _useAppSelector$globa.fluidTypes,
+      fluidStatus = _useAppSelector$globa.fluidStatus;
 
   var _useState = (0, _react.useState)(true),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -14229,14 +14145,6 @@ var ChallengeCardOnGoing = function ChallengeCardOnGoing(_ref) {
       isLoading = _useState8[0],
       setIsLoading = _useState8[1];
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo;
-  }),
-      currentDataload = _useSelector.challenge.currentDataload,
-      _useSelector$global = _useSelector.global,
-      fluidTypes = _useSelector$global.fluidTypes,
-      fluidStatus = _useSelector$global.fluidStatus;
-
   var _userChallenge$progre = userChallenge.progress,
       actionProgress = _userChallenge$progre.actionProgress,
       explorationProgress = _userChallenge$progre.explorationProgress,
@@ -14797,10 +14705,10 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _profile = __webpack_require__("jPH6");
 
 __webpack_require__("+yuO");
@@ -14810,6 +14718,12 @@ 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 UnSubscribe = function UnSubscribe() {
+  var _useI18n = (0, _I18n.useI18n)(),
+      t = _useI18n.t;
+
+  var navigate = (0, _reactRouterDom.useNavigate)();
+  var dispatch = (0, _hooks.useAppDispatch)();
+
   var _useState = (0, _react.useState)(0),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       headerHeight = _useState2[0],
@@ -14819,12 +14733,6 @@ var UnSubscribe = function UnSubscribe() {
     setHeaderHeight(height);
   };
 
-  var _useI18n = (0, _I18n.useI18n)(),
-      t = _useI18n.t;
-
-  var dispatch = (0, _reactRedux.useDispatch)();
-  var navigate = (0, _reactRouterDom.useNavigate)();
-
   var unSubscribe = /*#__PURE__*/function () {
     var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
       return _regenerator.default.wrap(function _callee$(_context) {
@@ -15072,14 +14980,14 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _terms = _interopRequireDefault(__webpack_require__("wPjT"));
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _decoreText = __webpack_require__("j5h9");
 
 var _CGUModal = _interopRequireDefault(__webpack_require__("/KKD"));
@@ -15101,14 +15009,13 @@ var TermsView = function TermsView() {
       t = _useI18n.t;
 
   var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var navigate = (0, _reactRouterDom.useNavigate)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      termsStatus = _useSelector.termsStatus;
-
-  var navigate = (0, _reactRouterDom.useNavigate)();
+      termsStatus = _useAppSelector.termsStatus;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -15407,7 +15314,7 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _decoreText = __webpack_require__("j5h9");
 
@@ -15417,10 +15324,10 @@ var DataShareConsentContent = function DataShareConsentContent() {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.profile;
   }),
-      isFirstConnection = _useSelector.isFirstConnection;
+      isFirstConnection = _useAppSelector.isFirstConnection;
 
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "dataShare-content-root"
@@ -15866,12 +15773,12 @@ var _I18n = __webpack_require__("buk/");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _ecogesture = _interopRequireDefault(__webpack_require__("w4u3"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("qzRO");
 
 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); }
@@ -15889,6 +15796,11 @@ var EcogestureSelection = function EcogestureSelection() {
   var client = (0, _cozyClient.useClient)();
   var navigate = (0, _reactRouterDom.useNavigate)();
 
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo;
+  }),
+      profileEcogesture = _useAppSelector.profileEcogesture;
+
   var _useState = (0, _react.useState)(true),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       isLoading = _useState2[0],
@@ -15930,9 +15842,6 @@ var EcogestureSelection = function EcogestureSelection() {
   var ecogestureService = (0, _react.useMemo)(function () {
     return new _ecogesture.default(client);
   }, [client]);
-  var profileEcogesture = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.profileEcogesture;
-  });
   var getTitle = (0, _react.useCallback)(function () {
     if (indexEcogesture <= ecogestureList.length - 1 && ecogestureList[indexEcogesture]) {
       return ecogestureList[indexEcogesture].shortName;
@@ -16261,7 +16170,7 @@ var _lodash = __webpack_require__("LvDl");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 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); }
 
@@ -16282,10 +16191,10 @@ var ProfileTypeFormMultiChoice = function ProfileTypeFormMultiChoice(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.profile;
   }),
-      isProfileTypeCompleted = _useSelector.isProfileTypeCompleted;
+      isProfileTypeCompleted = _useAppSelector.isProfileTypeCompleted;
 
   var _useState = (0, _react.useState)([]),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -16406,7 +16315,7 @@ var _profileType2 = __webpack_require__("D9qV");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 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); }
 
@@ -16427,10 +16336,10 @@ var ProfileTypeFormNumberSelection = function ProfileTypeFormNumberSelection(_re
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.profile;
   }),
-      isProfileTypeCompleted = _useSelector.isProfileTypeCompleted;
+      isProfileTypeCompleted = _useAppSelector.isProfileTypeCompleted;
 
   var _useState = (0, _react.useState)(''),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -16924,7 +16833,7 @@ var _profileType2 = __webpack_require__("D9qV");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 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); }
 
@@ -16945,13 +16854,13 @@ var ProfileTypeFormSingleChoice = function ProfileTypeFormSingleChoice(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      _useSelector$profile = _useSelector.profile,
-      isProfileTypeCompleted = _useSelector$profile.isProfileTypeCompleted,
-      isProfileEcogestureCompleted = _useSelector$profile.isProfileEcogestureCompleted,
-      profileEcogesture = _useSelector.profileEcogesture;
+      _useAppSelector$profi = _useAppSelector.profile,
+      isProfileTypeCompleted = _useAppSelector$profi.isProfileTypeCompleted,
+      isProfileEcogestureCompleted = _useAppSelector$profi.isProfileEcogestureCompleted,
+      profileEcogesture = _useAppSelector.profileEcogesture;
 
   var _useState = (0, _react.useState)(''),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -17748,14 +17657,14 @@ var _userChallenge = __webpack_require__("dQx6");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
 
 var _quiz = _interopRequireDefault(__webpack_require__("CUhI"));
 
 var _challenge2 = __webpack_require__("F6Xr");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("mFBf");
 
 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); }
@@ -17770,6 +17679,8 @@ var QuizQuestionContent = function QuizQuestionContent(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
+  var client = (0, _cozyClient.useClient)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   var questionIndexLocked = userChallenge.quiz.questions.findIndex(function (answer) {
     return answer.result == 0;
   });
@@ -17794,8 +17705,6 @@ var QuizQuestionContent = function QuizQuestionContent(_ref) {
       questionIndex = _useState8[0],
       setQuestionIndex = _useState8[1];
 
-  var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
   var quizService = new _quiz.default(client);
   var challengeService = new _challenge.default(client);
 
@@ -17936,14 +17845,14 @@ var _userChallenge = __webpack_require__("dQx6");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
 
 var _challenge2 = __webpack_require__("F6Xr");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("Giwf");
 
 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); }
@@ -17952,13 +17861,13 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 
 var QuizFinish = function QuizFinish(_ref) {
   var userChallenge = _ref.userChallenge;
-  var client = (0, _cozyClient.useClient)();
 
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
+  var client = (0, _cozyClient.useClient)();
   var navigate = (0, _reactRouterDom.useNavigate)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   var challengeService = (0, _react.useMemo)(function () {
     return new _challenge.default(client);
   }, [client]);
@@ -19297,14 +19206,14 @@ var _userChallenge = __webpack_require__("dQx6");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
 
 var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
 var _challenge2 = __webpack_require__("F6Xr");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _utils = __webpack_require__("c+yx");
 
 __webpack_require__("g+8n");
@@ -19315,12 +19224,13 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 
 var DuelUnlocked = function DuelUnlocked(_ref) {
   var userChallenge = _ref.userChallenge;
-  var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
 
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
+  var client = (0, _cozyClient.useClient)();
+  var dispatch = (0, _hooks.useAppDispatch)();
+
   var _useState = (0, _react.useState)(_default2.default),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       duelIcon = _useState2[0],
@@ -20372,7 +20282,7 @@ var _userQuiz = __webpack_require__("Ush/");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _QuizBegin = _interopRequireDefault(__webpack_require__("lMfa"));
 
@@ -20385,16 +20295,16 @@ 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 QuizView = function QuizView() {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo.challenge;
+  }),
+      currentChallenge = _useAppSelector.currentChallenge;
+
   var _useState = (0, _react.useState)(0),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       headerHeight = _useState2[0],
       setHeaderHeight = _useState2[1];
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.challenge;
-  }),
-      currentChallenge = _useSelector.currentChallenge;
-
   var defineHeaderHeight = (0, _react.useCallback)(function (height) {
     setHeaderHeight(height);
   }, []);
@@ -20514,10 +20424,10 @@ var _screen = __webpack_require__("41Xj");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _modal = __webpack_require__("oKH6");
 
 __webpack_require__("Tg1I");
@@ -20532,13 +20442,13 @@ var Content = function Content(_ref) {
       height = _ref$height === void 0 ? 0 : _ref$height,
       _ref$background = _ref.background,
       background = _ref$background === void 0 ? 'inherit' : _ref$background;
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      screenType = _useSelector.global.screenType,
-      isFeedbacksOpen = _useSelector.modal.isFeedbacksOpen;
+      screenType = _useAppSelector.global.screenType,
+      isFeedbacksOpen = _useAppSelector.modal.isFeedbacksOpen;
 
   var cozyBarHeight = 48;
   var cozyNavHeight = 56;
@@ -21835,7 +21745,7 @@ var _userExploration = __webpack_require__("/rev");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _ExplorationError = _interopRequireDefault(__webpack_require__("PoS9"));
 
@@ -21848,16 +21758,16 @@ 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 ExplorationView = function ExplorationView() {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo.challenge;
+  }),
+      currentChallenge = _useAppSelector.currentChallenge;
+
   var _useState = (0, _react.useState)(0),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       headerHeight = _useState2[0],
       setHeaderHeight = _useState2[1];
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.challenge;
-  }),
-      currentChallenge = _useSelector.currentChallenge;
-
   var defineHeaderHeight = (0, _react.useCallback)(function (height) {
     setHeaderHeight(height);
   }, []);
@@ -22665,7 +22575,7 @@ var _profileType2 = __webpack_require__("D9qV");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 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); }
 
@@ -22686,10 +22596,10 @@ var ProfileTypeFormNumber = function ProfileTypeFormNumber(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.profile;
   }),
-      isProfileTypeCompleted = _useSelector.isProfileTypeCompleted;
+      isProfileTypeCompleted = _useAppSelector.isProfileTypeCompleted;
 
   var _useState = (0, _react.useState)(''),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -23079,10 +22989,10 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 function TextAxis(_ref) {
   var index = _ref.index,
       dataload = _ref.dataload,
@@ -23216,10 +23126,10 @@ var AxisBottom = function AxisBottom(_ref2) {
       _ref2$isDuel = _ref2.isDuel,
       isDuel = _ref2$isDuel === void 0 ? false : _ref2$isDuel;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.chart;
   }),
-      selectedDate = _useSelector.selectedDate;
+      selectedDate = _useAppSelector.selectedDate;
 
   var dashArray = "".concat(height / 30, " ").concat(height / 30);
   var dateChartService = new _dateChart.default();
@@ -23352,6 +23262,29 @@ if(false) {}
 
 /***/ }),
 
+/***/ "Zlw4":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.useAppSelector = exports.useAppDispatch = void 0;
+
+var _reactRedux = __webpack_require__("/MKj");
+
+// Typed hooks
+// https://redux.js.org/tutorials/typescript-quick-start#define-typed-hooks
+var useAppDispatch = _reactRedux.useDispatch; // TODO maybe use AppEcolyoStore
+
+exports.useAppDispatch = useAppDispatch;
+var useAppSelector = _reactRedux.useSelector;
+exports.useAppSelector = useAppSelector;
+
+/***/ }),
+
 /***/ "Zmlh":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -23683,6 +23616,7 @@ var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
 __webpack_require__("K//6");
 
+// what is the type ?
 var FeedbackModal = function FeedbackModal(_ref) {
   var open = _ref.open,
       handleCloseClick = _ref.handleCloseClick;
@@ -25218,6 +25152,8 @@ var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _profileEcogestureForm = _interopRequireDefault(__webpack_require__("QCFg"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _profile = __webpack_require__("jPH6");
 
 var _profileEcogesture2 = __webpack_require__("Zmlh");
@@ -25227,14 +25163,13 @@ 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 EcogestureFormView = function EcogestureFormView() {
-  var dispatch = (0, _reactRedux.useDispatch)();
-
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      isProfileTypeCompleted = _useSelector.profile.isProfileTypeCompleted,
-      profileEcogesture = _useSelector.profileEcogesture;
+      isProfileTypeCompleted = _useAppSelector.profile.isProfileTypeCompleted,
+      profileEcogesture = _useAppSelector.profileEcogesture;
 
+  var dispatch = (0, _reactRedux.useDispatch)();
   var navigate = (0, _reactRouterDom.useNavigate)();
 
   var _useState = (0, _react.useState)(0),
@@ -25936,8 +25871,6 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react2 = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _profileType = _interopRequireDefault(__webpack_require__("7e12"));
@@ -25946,6 +25879,8 @@ var _profileTypeEntity = _interopRequireDefault(__webpack_require__("aypK"));
 
 var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _profile = __webpack_require__("jPH6");
 
 var _profileType2 = __webpack_require__("ZI2v");
@@ -25960,16 +25895,16 @@ var ProfileTypeFinished = function ProfileTypeFinished(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
+  var client = (0, _cozyClient.useClient)();
   var location = (0, _reactRouterDom.useLocation)();
-  var dispatch = (0, _reactRedux.useDispatch)();
   var navigate = (0, _reactRouterDom.useNavigate)();
-  var client = (0, _cozyClient.useClient)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      currentChallenge = _useSelector.challenge.currentChallenge,
-      profile = _useSelector.profile;
+      currentChallenge = _useAppSelector.challenge.currentChallenge,
+      profile = _useAppSelector.profile;
 
   var handleClick = function handleClick() {
     if ((location === null || location === void 0 ? void 0 : location.pathname) === '/ecogesture-form') {
@@ -26775,10 +26710,10 @@ var _screen = __webpack_require__("41Xj");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _modal = __webpack_require__("oKH6");
 
 __webpack_require__("gjrb");
@@ -26800,12 +26735,12 @@ var Header = function Header(_ref) {
 
   var navigate = (0, _reactRouterDom.useNavigate)();
   var header = (0, _react.useRef)(null);
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      screenType = _useSelector.screenType;
+      screenType = _useAppSelector.screenType;
 
   var cozyBarHeight = 48;
   var handleClickBack = (0, _react.useCallback)(function () {
@@ -26965,8 +26900,6 @@ var _userChallenge = __webpack_require__("dQx6");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
@@ -26977,6 +26910,8 @@ var _challenge2 = __webpack_require__("F6Xr");
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("kVKB");
 
 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); }
@@ -26990,7 +26925,7 @@ var ActionDone = function ActionDone(_ref) {
       t = _useI18n.t;
 
   var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   var navigate = (0, _reactRouterDom.useNavigate)();
   var handleEndAction = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
     var challengeService, updatedChallenge;
@@ -27907,12 +27842,12 @@ var _usageEvent = __webpack_require__("/fHX");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("eZUK");
 
 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); }
@@ -27923,13 +27858,13 @@ var Navbar = function Navbar() {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.global;
   }),
-      challengeExplorationNotification = _useSelector.challengeExplorationNotification,
-      challengeActionNotification = _useSelector.challengeActionNotification,
-      challengeDuelNotification = _useSelector.challengeDuelNotification,
-      analysisNotification = _useSelector.analysisNotification;
+      challengeExplorationNotification = _useAppSelector.challengeExplorationNotification,
+      challengeActionNotification = _useAppSelector.challengeActionNotification,
+      challengeDuelNotification = _useAppSelector.challengeDuelNotification,
+      analysisNotification = _useAppSelector.analysisNotification;
 
   var _useLocation = (0, _reactRouterDom.useLocation)(),
       pathname = _useLocation.pathname;
@@ -28582,7 +28517,7 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var DuelBar = function DuelBar(_ref) {
   var userChallenge = _ref.userChallenge,
@@ -28602,10 +28537,10 @@ var DuelBar = function DuelBar(_ref) {
       _ref$marginBottom = _ref.marginBottom,
       marginBottom = _ref$marginBottom === void 0 ? 50 : _ref$marginBottom;
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.challenge;
   }),
-      currentDataload = _useSelector.currentDataload;
+      currentDataload = _useAppSelector.currentDataload;
 
   var dataload = finishedDataLoad ? finishedDataLoad : currentDataload;
 
@@ -30971,12 +30906,12 @@ var _userChallenge = __webpack_require__("dQx6");
 
 var _react = _interopRequireDefault(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
 
 var _challenge2 = __webpack_require__("F6Xr");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("HvHZ");
 
 var QuizBegin = function QuizBegin(_ref) {
@@ -30986,7 +30921,7 @@ var QuizBegin = function QuizBegin(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
   var launchQuiz = /*#__PURE__*/function () {
     var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
@@ -31221,7 +31156,7 @@ var _Icon = _interopRequireDefault(__webpack_require__("y6ex"));
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
+var _hooks = __webpack_require__("Zlw4");
 
 var _picto = __webpack_require__("6DBe");
 
@@ -31245,6 +31180,11 @@ var EcogestureModal = function EcogestureModal(_ref) {
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo.challenge;
+  }),
+      currentChallenge = _useAppSelector.currentChallenge;
+
   var _useState = (0, _react.useState)(''),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       ecogestureIcon = _useState2[0],
@@ -31255,11 +31195,6 @@ var EcogestureModal = function EcogestureModal(_ref) {
       isMoreDetail = _useState4[0],
       setIsMoreDetail = _useState4[1];
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo.challenge;
-  }),
-      currentChallenge = _useSelector.currentChallenge;
-
   var _useExploration = (0, _useExploration3.default)(),
       _useExploration2 = (0, _slicedToArray2.default)(_useExploration, 2),
       setValidExploration = _useExploration2[1];
@@ -31974,8 +31909,6 @@ var _userExploration = __webpack_require__("/rev");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
@@ -31986,6 +31919,8 @@ var _challenge2 = __webpack_require__("F6Xr");
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("zqCP");
 
 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); }
@@ -31994,12 +31929,12 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 
 var ExplorationFinished = function ExplorationFinished(_ref) {
   var userChallenge = _ref.userChallenge;
-  var client = (0, _cozyClient.useClient)();
 
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var client = (0, _cozyClient.useClient)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   var navigate = (0, _reactRouterDom.useNavigate)();
   var checkNotificationToEnd = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
     var challengeService, updatedChallenge;
@@ -32188,10 +32123,10 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _profileTypeForm = _interopRequireDefault(__webpack_require__("u4pq"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _ProfileTypeFormDateSelection = _interopRequireDefault(__webpack_require__("/y87"));
 
 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); }
@@ -32203,12 +32138,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 _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      profile = _useSelector.profile,
-      profileType = _useSelector.profileType,
-      profileEcogesture = _useSelector.profileEcogesture;
+      profile = _useAppSelector.profile,
+      profileType = _useAppSelector.profileType,
+      profileEcogesture = _useAppSelector.profileEcogesture;
 
   var _useState = (0, _react.useState)(0),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -33070,12 +33005,12 @@ var _luxon = __webpack_require__("ExVU");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _dateChart = _interopRequireDefault(__webpack_require__("Ty7+"));
 
 var _chart = __webpack_require__("idK9");
 
+var _hooks = __webpack_require__("Zlw4");
+
 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; }
@@ -33096,12 +33031,12 @@ var Bar = function Bar(_ref) {
       weekdays = _ref.weekdays,
       _ref$clickable = _ref.clickable,
       clickable = _ref$clickable === void 0 ? true : _ref$clickable;
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.chart;
   }),
-      selectedDate = _useSelector.selectedDate;
+      selectedDate = _useAppSelector.selectedDate;
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -33631,8 +33566,6 @@ var _userExploration = __webpack_require__("/rev");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
@@ -33641,6 +33574,8 @@ var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
 var _challenge2 = __webpack_require__("F6Xr");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("1RIw");
 
 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); }
@@ -33649,12 +33584,12 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 
 var ExplorationOngoing = function ExplorationOngoing(_ref) {
   var userChallenge = _ref.userChallenge;
-  var client = (0, _cozyClient.useClient)();
 
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var client = (0, _cozyClient.useClient)();
+  var dispatch = (0, _hooks.useAppDispatch)();
   var navigate = (0, _reactRouterDom.useNavigate)();
   var goBack = (0, _react.useCallback)(function () {
     navigate(-1);
@@ -34027,22 +33962,22 @@ var _userExploration = __webpack_require__("/rev");
 
 var _react = __webpack_require__("q1tI");
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _exploration = _interopRequireDefault(__webpack_require__("z8s1"));
 
 var _challenge = __webpack_require__("F6Xr");
 
 var _global = __webpack_require__("b3rE");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var useExploration = function useExploration() {
   var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+  var dispatch = (0, _hooks.useAppDispatch)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo.challenge;
   }),
-      currentChallenge = _useSelector.currentChallenge;
+      currentChallenge = _useAppSelector.currentChallenge;
 
   var exploration = currentChallenge ? currentChallenge.exploration : null;
   var ecogestureId = exploration ? exploration.ecogesture_id : '';
@@ -34174,10 +34109,10 @@ var _cozyClient = __webpack_require__("SH7X");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _action = _interopRequireDefault(__webpack_require__("5e6O"));
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("09DC");
 
 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); }
@@ -34189,11 +34124,11 @@ var ActionList = function ActionList(_ref) {
       setShowList = _ref.setShowList;
   var client = (0, _cozyClient.useClient)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      fluidTypes = _useSelector.global.fluidTypes,
-      isProfileTypeCompleted = _useSelector.profile.isProfileTypeCompleted;
+      fluidTypes = _useAppSelector.global.fluidTypes,
+      isProfileTypeCompleted = _useAppSelector.profile.isProfileTypeCompleted;
 
   var _useState = (0, _react.useState)(),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -34866,6 +34801,99 @@ if(false) {}
 
 /***/ }),
 
+/***/ "uFCc":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.defaultAction = exports.default = void 0;
+
+var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
+
+var Sentry = _interopRequireWildcard(__webpack_require__("agHs"));
+
+var _redux = __webpack_require__("ANjH");
+
+var _reduxDevtoolsExtension = __webpack_require__("5HXA");
+
+var _reduxThunk = _interopRequireDefault(__webpack_require__("sINF"));
+
+var _analysis = __webpack_require__("JQjK");
+
+var _challenge = __webpack_require__("F6Xr");
+
+var _chart = __webpack_require__("idK9");
+
+var _global = __webpack_require__("b3rE");
+
+var _modal = __webpack_require__("oKH6");
+
+var _profile = __webpack_require__("QCMq");
+
+var _profileEcogesture = __webpack_require__("L0ad");
+
+var _profileType = __webpack_require__("ZI2v");
+
+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(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
+
+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 defaultAction = {
+  type: null,
+  payload: undefined
+};
+exports.defaultAction = defaultAction;
+var ecolyoReducer = (0, _redux.combineReducers)({
+  analysis: _analysis.analysisSlice.reducer,
+  challenge: _challenge.challengeSlice.reducer,
+  chart: _chart.chartSlice.reducer,
+  global: _global.globalSlice.reducer,
+  modal: _modal.modalSlice.reducer,
+  profile: _profile.profileReducer,
+  profileEcogesture: _profileEcogesture.profileEcogestureReducer,
+  profileType: _profileType.profileTypeSlice.reducer
+});
+
+var appActions = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, _analysis.analysisSlice.actions), _challenge.challengeSlice.actions), _chart.chartSlice.actions), _modal.modalSlice.actions), _profileType.profileTypeSlice.actions), _global.globalSlice.actions); // TODO refactor types with AppActionsTypes = typeof appActions
+
+
+var sentryReduxEnhancer = Sentry.createReduxEnhancer({});
+
+var configureStore = function configureStore(client, persistedState) {
+  var middlewares = [_reduxThunk.default.withExtraArgument({
+    client: client
+  })];
+
+  var composeEnhancers = (0, _reduxDevtoolsExtension.composeWithDevTools)({
+    trace: true,
+    actionCreators: appActions
+  }) || _redux.compose;
+
+  var store = (0, _redux.createStore)((0, _redux.combineReducers)({
+    ecolyo: ecolyoReducer,
+    cozy: client.reducer(),
+    persistedState: persistedState
+  }), composeEnhancers( // eslint-disable-next-line prefer-spread
+  _redux.applyMiddleware.apply(null, middlewares), sentryReduxEnhancer));
+  return store;
+};
+
+var _default = configureStore; // Infer the `RootState` and `AppDispatch` types from the store itself
+
+exports.default = _default;
+
+/***/ }),
+
 /***/ "uHV9":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -35592,10 +35620,10 @@ var _Layout = __webpack_require__("Bh3+");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _reactRouterDom = __webpack_require__("SOjZ");
 
+var _hooks = __webpack_require__("Zlw4");
+
 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; }
@@ -35604,11 +35632,11 @@ var App = function App(_ref) {
   var tracker = _ref.tracker;
   var location = (0, _reactRouterDom.useLocation)();
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
     return state.ecolyo;
   }),
-      termsStatus = _useSelector.global.termsStatus,
-      onboarding = _useSelector.profile.onboarding;
+      termsStatus = _useAppSelector.global.termsStatus,
+      onboarding = _useAppSelector.profile.onboarding;
 
   var webviewIntent = (0, _cozyIntent.useWebviewIntent)();
   (0, _react.useEffect)(function () {
@@ -37035,14 +37063,14 @@ var _usageEvent = __webpack_require__("/fHX");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
 
 var _usageEvent2 = _interopRequireDefault(__webpack_require__("dECN"));
 
 var _challenge2 = __webpack_require__("F6Xr");
 
+var _hooks = __webpack_require__("Zlw4");
+
 var _utils = __webpack_require__("c+yx");
 
 var _ChallengeNoFluidModal = _interopRequireDefault(__webpack_require__("rDu6"));
@@ -37060,21 +37088,22 @@ var ChallengeCardUnlocked = function ChallengeCardUnlocked(_ref) {
       t = _useI18n.t;
 
   var client = (0, _cozyClient.useClient)();
-  var dispatch = (0, _reactRedux.useDispatch)();
+
+  var _useAppSelector = (0, _hooks.useAppSelector)(function (state) {
+    return state.ecolyo;
+  }),
+      currentChallenge = _useAppSelector.challenge.currentChallenge,
+      _useAppSelector$globa = _useAppSelector.global,
+      fluidTypes = _useAppSelector$globa.fluidTypes,
+      fluidStatus = _useAppSelector$globa.fluidStatus;
+
+  var dispatch = (0, _hooks.useAppDispatch)();
 
   var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       openNoFluidModal = _useState2[0],
       setopenNoFluidModal = _useState2[1];
 
-  var _useSelector = (0, _reactRedux.useSelector)(function (state) {
-    return state.ecolyo;
-  }),
-      _useSelector$global = _useSelector.global,
-      fluidTypes = _useSelector$global.fluidTypes,
-      fluidStatus = _useSelector$global.fluidStatus,
-      currentChallenge = _useSelector.challenge.currentChallenge;
-
   var _useState3 = (0, _react.useState)(_challengeLocked.default),
       _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
       challengeIcon = _useState4[0],
@@ -37279,12 +37308,12 @@ var _userChallenge = __webpack_require__("dQx6");
 
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
-var _reactRedux = __webpack_require__("/MKj");
-
 var _challenge = _interopRequireDefault(__webpack_require__("kdea"));
 
 var _challenge2 = __webpack_require__("F6Xr");
 
+var _hooks = __webpack_require__("Zlw4");
+
 __webpack_require__("8Eoq");
 
 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); }
@@ -37296,12 +37325,12 @@ var ActionModal = function ActionModal(_ref) {
       action = _ref.action,
       handleCloseClick = _ref.handleCloseClick,
       userChallenge = _ref.userChallenge;
-  var dispatch = (0, _reactRedux.useDispatch)();
   var client = (0, _cozyClient.useClient)();
 
   var _useI18n = (0, _I18n.useI18n)(),
       t = _useI18n.t;
 
+  var dispatch = (0, _hooks.useAppDispatch)();
   var launchAction = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
     var challengeService, updatedChallenge;
     return _regenerator.default.wrap(function _callee$(_context) {
diff --git a/index.html b/index.html
index ca010e5b8..aadab9bac 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.69beab954af56959f24c.js"></script><script src="app/ecolyo.2e0a67ac9d0b71f1d504.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.69beab954af56959f24c.js"></script><script src="app/ecolyo.e730bea01a9a2f8da8ee.js"></script></div></body></html>
\ No newline at end of file
-- 
GitLab