From c9d2f7fee723b2c55728b39d400b6deca12ce0bb Mon Sep 17 00:00:00 2001
From: Romain CREY <ext.sopra.rcrey@grandlyon.com>
Date: Thu, 30 Jul 2020 18:20:54 +0200
Subject: [PATCH] notif disapear on modal open + filter

---
 .../FinishedChallengeDetailsViewContainer.tsx | 14 +++++++-----
 .../OngoingChallengeDetailsViewContainer.tsx  | 22 +++++++++++++++----
 .../EcogestureList/EcogestureList.tsx         |  9 --------
 .../EcogestureModal/EcogestureModal.tsx       | 15 ++++++++++++-
 src/services/queryRunnerService.ts            |  2 --
 5 files changed, 40 insertions(+), 22 deletions(-)

diff --git a/src/components/ContainerComponents/ViewContainer/FinishedChallengeDetailsViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/FinishedChallengeDetailsViewContainer.tsx
index 7f01171dd..d1fb4bfaf 100644
--- a/src/components/ContainerComponents/ViewContainer/FinishedChallengeDetailsViewContainer.tsx
+++ b/src/components/ContainerComponents/ViewContainer/FinishedChallengeDetailsViewContainer.tsx
@@ -160,12 +160,14 @@ const FinishedChallengeDetailsViewContainer: React.FC<FinishedChallengeDetailsVi
                 </div>
               </div>
             </div>
-            <EcogestureModal
-              opened={openEcogestureModal}
-              ecogesture={challenge.selectedEcogestures[challengeEcogesture]}
-              handleCloseClick={handleCloseClick}
-              unlockedEcogesture={true}
-            />
+            {openEcogestureModal && (
+              <EcogestureModal
+                opened={openEcogestureModal}
+                ecogesture={challenge.selectedEcogestures[challengeEcogesture]}
+                handleCloseClick={handleCloseClick}
+                unlockedEcogesture={true}
+              />
+            )}
           </>
         )}
       </Content>
diff --git a/src/components/ContainerComponents/ViewContainer/OngoingChallengeDetailsViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/OngoingChallengeDetailsViewContainer.tsx
index e1a4bc389..ff39bebd9 100644
--- a/src/components/ContainerComponents/ViewContainer/OngoingChallengeDetailsViewContainer.tsx
+++ b/src/components/ContainerComponents/ViewContainer/OngoingChallengeDetailsViewContainer.tsx
@@ -38,9 +38,12 @@ const OngoingChallengeDetailsViewContainer: React.FC<OngoingChallengeDetailsView
   const client = props.client
   const challengeManager = new ChallengeManager(client)
 
-  const { refreshCurrentChallenge, screenType, userProfile } = useContext(
-    AppContext
-  )
+  const {
+    refreshCurrentChallenge,
+    screenType,
+    userProfile,
+    setNotificationEcogesture,
+  } = useContext(AppContext)
   const [challengeEcogesture, setChallengeEcogesture] = useState<number>(0)
   const [openEcogestureModal, setOpenEcogestureModal] = useState(false)
   const [challenge, setChallenge] = useState<UserChallenge | null>(null)
@@ -57,7 +60,18 @@ const OngoingChallengeDetailsViewContainer: React.FC<OngoingChallengeDetailsView
         challenge.id,
         ChallengeState.ABANDONED
       )
-      userProfile.notificationEcogesture = []
+
+      userProfile.notificationEcogesture =
+        userProfile &&
+        userProfile.notificationEcogesture.filter(
+          x =>
+            x !== challenge.selectedEcogestures[0].id &&
+            x !== challenge.selectedEcogestures[1].id
+        )
+      await setNotificationEcogesture(
+        userProfile && userProfile.notificationEcogesture
+      )
+
       await refreshCurrentChallenge()
       history.goBack()
     }
diff --git a/src/components/ContentComponents/EcogestureList/EcogestureList.tsx b/src/components/ContentComponents/EcogestureList/EcogestureList.tsx
index d7de60cae..51fe49e01 100644
--- a/src/components/ContentComponents/EcogestureList/EcogestureList.tsx
+++ b/src/components/ContentComponents/EcogestureList/EcogestureList.tsx
@@ -19,7 +19,6 @@ const EcogesturesList: React.FC<EcogesturesListProps> = ({
   t,
   client,
 }: EcogesturesListProps) => {
-  const { userProfile, setNotificationEcogesture } = useContext(AppContext)
   const [
     selectedEcogesture,
     setSelectedEcogesture,
@@ -32,14 +31,6 @@ const EcogesturesList: React.FC<EcogesturesListProps> = ({
   const handleClick = (ecogesture: EcogestureType) => {
     setSelectedEcogesture(ecogesture)
     setOpenEcogestureModal(true)
-    let index = -1
-    index = userProfile.notificationEcogesture.indexOf(ecogesture.id)
-    if (index > -1) {
-      const updatedNotificationEcogestureList =
-        userProfile && userProfile.notificationEcogesture
-      updatedNotificationEcogestureList.splice(index, 1)
-      setNotificationEcogesture(updatedNotificationEcogestureList)
-    }
   }
 
   const handleCloseClick = () => {
diff --git a/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx b/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx
index 4d9d01fc7..8ceed213d 100644
--- a/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx
+++ b/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect } from 'react'
+import React, { useState, useEffect, useContext } from 'react'
 import { translate } from 'cozy-ui/react/I18n'
 import Modal from 'components/CommonKit/Modal/Modal'
 import { getPicto } from 'utils/utils'
@@ -6,6 +6,7 @@ import { EcogestureType } from 'services/dataChallengeContracts'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
 import Icon from 'cozy-ui/react/Icon'
 import def from 'assets/icons/visu/ecogesture/default.svg'
+import { AppContext } from 'components/Contexts/AppContextProvider'
 
 interface EcogestureModalProps {
   opened: boolean
@@ -24,6 +25,7 @@ const EcogestureModal: React.FC<EcogestureModalProps> = ({
   handleCloseClick,
 }: EcogestureModalProps) => {
   const [ecogestureIcon, setEcogestureIcon] = useState(def)
+  const { userProfile, setNotificationEcogesture } = useContext(AppContext)
 
   async function importEcogestureIcon(id: string) {
     // Les svg doivent ĂȘtre au format id.svg
@@ -38,6 +40,17 @@ const EcogestureModal: React.FC<EcogestureModalProps> = ({
     }
   }
 
+  useEffect(() => {
+    let index = -1
+    index = userProfile.notificationEcogesture.indexOf(ecogesture.id)
+    if (index > -1) {
+      const updatedNotificationEcogestureList =
+        userProfile && userProfile.notificationEcogesture
+      updatedNotificationEcogestureList.splice(index, 1)
+      setNotificationEcogesture(updatedNotificationEcogestureList)
+    }
+  }, [])
+
   useEffect(() => {
     if (ecogesture) {
       importEcogestureIcon(ecogesture.id)
diff --git a/src/services/queryRunnerService.ts b/src/services/queryRunnerService.ts
index a788e6d6c..1d2f16e6c 100644
--- a/src/services/queryRunnerService.ts
+++ b/src/services/queryRunnerService.ts
@@ -211,8 +211,6 @@ export class QueryRunner {
   ) {
     const doctype = this.getRelevantDoctype(fluidType, timeStep)
     if (timeStep === TimeStep.HALF_AN_HOUR) {
-      const lastDayOfPreviousMonth = maxTimePeriod.startDate.plus({ day: -1 })
-
       return this._client
         .find(doctype)
         .where(this.getPredicate(maxTimePeriod, 20))
-- 
GitLab