diff --git a/3/ecolyo.915a866471c5813daba0.js b/3/ecolyo.81b42e8f408e27697e26.js similarity index 98% rename from 3/ecolyo.915a866471c5813daba0.js rename to 3/ecolyo.81b42e8f408e27697e26.js index fec5a083dbdeb38679a019fd3b6d95fa9636d512..9c0a1737bc94f5abe71efe291690c5152aa077ab 100644 --- a/3/ecolyo.915a866471c5813daba0.js +++ b/3/ecolyo.81b42e8f408e27697e26.js @@ -1086,31 +1086,32 @@ var SgeInit = function SgeInit(_ref) { switch (_context.prev = _context.next) { case 0: if (!sgeConnect.shouldLaunchAccount) { - _context.next = 9; + _context.next = 10; break; } dispatch((0, _global.updateSgeStore)(_objectSpread(_objectSpread({}, sgeConnect), {}, { shouldLaunchAccount: false }))); + dispatch((0, _global.setShouldRefreshConsent)(false)); if (account) { - _context.next = 7; + _context.next = 8; break; } - _context.next = 5; + _context.next = 6; return connect(); - case 5: - _context.next = 9; + case 6: + _context.next = 10; break; - case 7: - _context.next = 9; + case 8: + _context.next = 10; return update(); - case 9: + case 10: case "end": return _context.stop(); } @@ -1428,12 +1429,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - var ConsumptionView = function ConsumptionView(_ref) { var fluidType = _ref.fluidType; var client = (0, _cozyClient.useClient)(); @@ -1522,6 +1517,15 @@ var ConsumptionView = function ConsumptionView(_ref) { } }, _callee); })), [client, dispatch]); + var handleCloseExpirationModal = (0, _react.useCallback)(function (fluidtype) { + if (fluidtype === _fluid.FluidType.GAS) { + setopenExpiredConsentModal(false); + } + + if (fluidtype === _fluid.FluidType.ELECTRICITY) { + console.log('should delete enedis'); + } + }, []); (0, _react.useEffect)(function () { setIsFluidKonnected((0, _utils.isKonnectorActive)(fluidStatus, fluidType)); @@ -1533,27 +1537,30 @@ var ConsumptionView = function ConsumptionView(_ref) { dispatch((0, _chart.setLoading)(true)); }, [dispatch]); (0, _react.useEffect)(function () { + var _fluidStatus$FluidTyp, _fluidStatus$FluidTyp2, _fluidStatus$FluidTyp3; + var subscribed = true; //Check if some fluids have expired consent error - var expiredConsents = []; + var expiredConsents = []; //Check for GRDF consent expiration - var _iterator = _createForOfIteratorHelper(fluidStatus), - _step; + var gasError = (_fluidStatus$FluidTyp = fluidStatus[_fluid.FluidType.GAS].connection.triggerState) === null || _fluidStatus$FluidTyp === void 0 ? void 0 : _fluidStatus$FluidTyp.last_error; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var _fluid$connection$tri; + if (gasError && (0, _utils.getKonnectorUpdateError)(gasError) === 'error_update_oauth') { + expiredConsents.push(fluidStatus[_fluid.FluidType.GAS].fluidType); + } //Check for Enedis SGE Consent Expiration - var fluid = _step.value; - if ((_fluid$connection$tri = fluid.connection.triggerState) !== null && _fluid$connection$tri !== void 0 && _fluid$connection$tri.last_error && (0, _utils.getKonnectorUpdateError)(fluid.connection.triggerState.last_error) === 'error_update_oauth') { - expiredConsents.push(fluid.fluidType); - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); + var today = _luxon.DateTime.local().setZone('utc', { + keepLocalTime: true + }).startOf('day').toISO(); + + var sgeExpirationDate = (_fluidStatus$FluidTyp2 = fluidStatus[_fluid.FluidType.ELECTRICITY].connection.account) === null || _fluidStatus$FluidTyp2 === void 0 ? void 0 : (_fluidStatus$FluidTyp3 = _fluidStatus$FluidTyp2.data) === null || _fluidStatus$FluidTyp3 === void 0 ? void 0 : _fluidStatus$FluidTyp3.expirationDate; + var isoExpirationDate = sgeExpirationDate ? _luxon.DateTime.fromISO(sgeExpirationDate).setZone('utc', { + keepLocalTime: true + }).startOf('day').toISO() : ''; + + if (isoExpirationDate <= today) { + expiredConsents.push(fluidStatus[_fluid.FluidType.ELECTRICITY].fluidType); } if (subscribed) setconsentExpiredFluids(expiredConsents); @@ -1614,10 +1621,13 @@ var ConsumptionView = function ConsumptionView(_ref) { return /*#__PURE__*/_react.default.createElement(_ExpiredConsentModal.default, { key: fluid, open: openExpiredConsentModal, - handleCloseClick: function handleCloseClick() { - return setopenExpiredConsentModal(false); - }, - fluidType: fluid + handleCloseClick: handleCloseExpirationModal, + fluidType: fluid, + toggleModal: function toggleModal() { + return setopenExpiredConsentModal(function (prev) { + return !prev; + }); + } }); })); }; @@ -2543,6 +2553,44 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) { return t("konnector_options.label_connect_to_".concat(_fluid.FluidType[fluidStatus.fluidType].toLowerCase())); } }, [fluidStatus.connection.account, fluidStatus.fluidType, fluidStatus.status, isOutdatedData, t]); + (0, _react.useEffect)(function () { + // If user has selected accept button on Expired consent modal, then delete its account + function deleteAccountForConsentRefresh() { + return _deleteAccountForConsentRefresh.apply(this, arguments); + } + + function _deleteAccountForConsentRefresh() { + _deleteAccountForConsentRefresh = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() { + var accountService; + return _regenerator.default.wrap(function _callee8$(_context8) { + while (1) { + switch (_context8.prev = _context8.next) { + case 0: + if (!(shouldRefreshConsent && account)) { + _context8.next = 6; + break; + } + + accountService = new _account.default(client); + _context8.next = 4; + return accountService.deleteAccount(account); + + case 4: + _context8.next = 6; + return handleAccountDeletion(); + + case 6: + case "end": + return _context8.stop(); + } + } + }, _callee8); + })); + return _deleteAccountForConsentRefresh.apply(this, arguments); + } + + deleteAccountForConsentRefresh(); + }, [account, client, handleAccountDeletion, shouldRefreshConsent]); (0, _react.useEffect)(function () { var subscribed = true; @@ -2551,14 +2599,14 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) { } function _getData() { - _getData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() { + _getData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() { var connectionFlow; - return _regenerator.default.wrap(function _callee8$(_context8) { + return _regenerator.default.wrap(function _callee9$(_context9) { while (1) { - switch (_context8.prev = _context8.next) { + switch (_context9.prev = _context9.next) { case 0: if (!(fluidStatus.connection.shouldLaunchKonnector && !(0, _triggers.isKonnectorRunning)(trigger))) { - _context8.next = 8; + _context9.next = 8; break; } @@ -2569,7 +2617,7 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) { } connectionFlow = new _ConnectionFlow.default(client, trigger, konnector); - _context8.next = 5; + _context9.next = 5; return connectionFlow.launch(); case 5: @@ -2589,59 +2637,21 @@ var KonnectorViewerCard = function KonnectorViewerCard(_ref) { case 8: case "end": - return _context8.stop(); + return _context9.stop(); } } - }, _callee8); + }, _callee9); })); return _getData.apply(this, arguments); } - getData(); + !shouldRefreshConsent && getData(); var dateChartService = new _dateChart.default(); setIsOutdatedData(dateChartService.isDataOutdated(fluidStatus.lastDataDate, fluidType)); return function () { subscribed = false; }; - }, [client, konnector, trigger, fluidStatus.connection, fluidStatus.connection.shouldLaunchKonnector, fluidStatus.connection.isUpdating, fluidStatus.fluidType, callbackResponse, setActive, fluidStatus.lastDataDate, fluidType, sendUsageEventError, fluidSlug, sendUsageEventSuccess]); - (0, _react.useEffect)(function () { - // If user has selected accept button on Expired consent modal, then delete its account - function deleteAccountForConsentRefresh() { - return _deleteAccountForConsentRefresh.apply(this, arguments); - } - - function _deleteAccountForConsentRefresh() { - _deleteAccountForConsentRefresh = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() { - var accountService; - return _regenerator.default.wrap(function _callee9$(_context9) { - while (1) { - switch (_context9.prev = _context9.next) { - case 0: - if (!(shouldRefreshConsent && account)) { - _context9.next = 6; - break; - } - - accountService = new _account.default(client); - _context9.next = 4; - return accountService.deleteAccount(account); - - case 4: - _context9.next = 6; - return handleAccountDeletion(); - - case 6: - case "end": - return _context9.stop(); - } - } - }, _callee9); - })); - return _deleteAccountForConsentRefresh.apply(this, arguments); - } - - deleteAccountForConsentRefresh(); - }, [account, client, handleAccountDeletion, shouldRefreshConsent]); + }, [client, konnector, trigger, fluidStatus.connection, fluidStatus.connection.shouldLaunchKonnector, fluidStatus.connection.isUpdating, fluidStatus.fluidType, callbackResponse, setActive, fluidStatus.lastDataDate, fluidType, sendUsageEventError, fluidSlug, sendUsageEventSuccess, shouldRefreshConsent]); return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !isDisconnected ? /*#__PURE__*/_react.default.createElement(_core.Accordion, { expanded: active, onChange: toggleAccordion, @@ -6531,20 +6541,47 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && var ExpiredConsentModal = function ExpiredConsentModal(_ref) { var open = _ref.open, handleCloseClick = _ref.handleCloseClick, - fluidType = _ref.fluidType; + fluidType = _ref.fluidType, + toggleModal = _ref.toggleModal; var _useI18n = (0, _I18n.useI18n)(), t = _useI18n.t; var history = (0, _reactRouterDom.useHistory)(); var dispatch = (0, _reactRedux.useDispatch)(); + + var _useSelector = (0, _reactRedux.useSelector)(function (state) { + return state.ecolyo.global; + }), + fluidStatus = _useSelector.fluidStatus; + var launchUpdateConsent = (0, _react.useCallback)(function () { - dispatch((0, _global.setShouldRefreshConsent)(true)); + if (fluidType === _fluid.FluidType.ELECTRICITY) { + var _fluidStatus$FluidTyp; + + var accountData = (_fluidStatus$FluidTyp = fluidStatus[_fluid.FluidType.ELECTRICITY].connection.account) === null || _fluidStatus$FluidTyp === void 0 ? void 0 : _fluidStatus$FluidTyp.auth; //store the previous account data since the onDelete will remove account from DB + + dispatch((0, _global.updateSgeStore)({ + currentStep: 0, + firstName: accountData.firstname, + lastName: accountData.lastname, + pdl: parseInt(accountData.pointId), + address: accountData.address, + zipCode: parseInt(accountData.postalCode), + city: accountData.city, + dataConsent: true, + pdlConfirm: true, + shouldLaunchAccount: true + })); + } + + toggleModal(); history.push("/consumption/".concat(_fluid.FluidType[fluidType].toLocaleLowerCase())); - }, [dispatch, fluidType, history]); + dispatch((0, _global.setShouldRefreshConsent)(true)); + }, [dispatch, fluidStatus, fluidType, history, toggleModal]); return /*#__PURE__*/_react.default.createElement(_Dialog.default, { open: open, - onClose: handleCloseClick, + onClose: toggleModal, "aria-labelledby": 'accessibility-title', classes: { root: 'modal-root', @@ -6555,7 +6592,7 @@ var ExpiredConsentModal = function ExpiredConsentModal(_ref) { }, t('consumption_visualizer.modal.window_title')), /*#__PURE__*/_react.default.createElement(_core.IconButton, { "aria-label": t('consumption_visualizer.modal.close'), className: "modal-paper-close-button", - onClick: handleCloseClick + onClick: toggleModal }, /*#__PURE__*/_react.default.createElement(_Icon.default, { icon: _close.default, size: 16 @@ -6576,7 +6613,9 @@ var ExpiredConsentModal = function ExpiredConsentModal(_ref) { className: "buttons" }, /*#__PURE__*/_react.default.createElement(_core.Button, { "aria-label": t('consent_outdated.later'), - onClick: handleCloseClick, + onClick: function onClick() { + return handleCloseClick(fluidType); + }, classes: { root: 'btn-secondary-positive', label: 'text-16-normal' diff --git a/app/ecolyo.53432c39ba4cb66e5239.js b/app/ecolyo.418ab4376440e8de288f.js similarity index 99% rename from app/ecolyo.53432c39ba4cb66e5239.js rename to app/ecolyo.418ab4376440e8de288f.js index 0197210f4a5ede932d0297ff9be8a9a25900740d..4911af885ffa9e02ecfba5d98d482b6bbfdf0862 100644 --- a/app/ecolyo.53432c39ba4cb66e5239.js +++ b/app/ecolyo.418ab4376440e8de288f.js @@ -64,7 +64,7 @@ /******/ /******/ // script path function /******/ function jsonpScriptSrc(chunkId) { -/******/ return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"2":"4e0ea28c29b22ff83353","3":"915a866471c5813daba0","4":"5e481431cf0b2359d58d","5":"8f0e8caf7949bcc0f768","6":"cf316224f80d91ba8e19","7":"8e0088481e1baf094fa4","8":"2de7ef350ec3c23cc49b","9":"86cadd702f6ebcc5f72c","10":"1823bf23fa5cf052fd8e"}[chunkId] + ".js" +/******/ return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"2":"4e0ea28c29b22ff83353","3":"81b42e8f408e27697e26","4":"5e481431cf0b2359d58d","5":"8f0e8caf7949bcc0f768","6":"cf316224f80d91ba8e19","7":"8e0088481e1baf094fa4","8":"2de7ef350ec3c23cc49b","9":"86cadd702f6ebcc5f72c","10":"1823bf23fa5cf052fd8e"}[chunkId] + ".js" /******/ } /******/ /******/ // The require function diff --git a/index.html b/index.html index 1981157a23e540ba50d5c2ff6aa1b92e89f2ecc0..07b52e5dd85b5a8a1b4381344e0f788470f45bbf 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,user-scalable=0,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.3a3b55374a0c451856ca.js"></script><script src="app/ecolyo.53432c39ba4cb66e5239.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,user-scalable=0,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.3a3b55374a0c451856ca.js"></script><script src="app/ecolyo.418ab4376440e8de288f.js"></script></div></body></html> \ No newline at end of file