Skip to content
Snippets Groups Projects
Commit c9d2f7fe authored by Romain CREY's avatar Romain CREY
Browse files

notif disapear on modal open + filter

parent 38e5543d
No related branches found
No related tags found
3 merge requests!103Support,!102Dev,!71Notification des écogestes débloqués
...@@ -160,12 +160,14 @@ const FinishedChallengeDetailsViewContainer: React.FC<FinishedChallengeDetailsVi ...@@ -160,12 +160,14 @@ const FinishedChallengeDetailsViewContainer: React.FC<FinishedChallengeDetailsVi
</div> </div>
</div> </div>
</div> </div>
<EcogestureModal {openEcogestureModal && (
opened={openEcogestureModal} <EcogestureModal
ecogesture={challenge.selectedEcogestures[challengeEcogesture]} opened={openEcogestureModal}
handleCloseClick={handleCloseClick} ecogesture={challenge.selectedEcogestures[challengeEcogesture]}
unlockedEcogesture={true} handleCloseClick={handleCloseClick}
/> unlockedEcogesture={true}
/>
)}
</> </>
)} )}
</Content> </Content>
......
...@@ -38,9 +38,12 @@ const OngoingChallengeDetailsViewContainer: React.FC<OngoingChallengeDetailsView ...@@ -38,9 +38,12 @@ const OngoingChallengeDetailsViewContainer: React.FC<OngoingChallengeDetailsView
const client = props.client const client = props.client
const challengeManager = new ChallengeManager(client) const challengeManager = new ChallengeManager(client)
const { refreshCurrentChallenge, screenType, userProfile } = useContext( const {
AppContext refreshCurrentChallenge,
) screenType,
userProfile,
setNotificationEcogesture,
} = useContext(AppContext)
const [challengeEcogesture, setChallengeEcogesture] = useState<number>(0) const [challengeEcogesture, setChallengeEcogesture] = useState<number>(0)
const [openEcogestureModal, setOpenEcogestureModal] = useState(false) const [openEcogestureModal, setOpenEcogestureModal] = useState(false)
const [challenge, setChallenge] = useState<UserChallenge | null>(null) const [challenge, setChallenge] = useState<UserChallenge | null>(null)
...@@ -57,7 +60,18 @@ const OngoingChallengeDetailsViewContainer: React.FC<OngoingChallengeDetailsView ...@@ -57,7 +60,18 @@ const OngoingChallengeDetailsViewContainer: React.FC<OngoingChallengeDetailsView
challenge.id, challenge.id,
ChallengeState.ABANDONED 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() await refreshCurrentChallenge()
history.goBack() history.goBack()
} }
......
...@@ -19,7 +19,6 @@ const EcogesturesList: React.FC<EcogesturesListProps> = ({ ...@@ -19,7 +19,6 @@ const EcogesturesList: React.FC<EcogesturesListProps> = ({
t, t,
client, client,
}: EcogesturesListProps) => { }: EcogesturesListProps) => {
const { userProfile, setNotificationEcogesture } = useContext(AppContext)
const [ const [
selectedEcogesture, selectedEcogesture,
setSelectedEcogesture, setSelectedEcogesture,
...@@ -32,14 +31,6 @@ const EcogesturesList: React.FC<EcogesturesListProps> = ({ ...@@ -32,14 +31,6 @@ const EcogesturesList: React.FC<EcogesturesListProps> = ({
const handleClick = (ecogesture: EcogestureType) => { const handleClick = (ecogesture: EcogestureType) => {
setSelectedEcogesture(ecogesture) setSelectedEcogesture(ecogesture)
setOpenEcogestureModal(true) 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 = () => { const handleCloseClick = () => {
......
import React, { useState, useEffect } from 'react' import React, { useState, useEffect, useContext } from 'react'
import { translate } from 'cozy-ui/react/I18n' import { translate } from 'cozy-ui/react/I18n'
import Modal from 'components/CommonKit/Modal/Modal' import Modal from 'components/CommonKit/Modal/Modal'
import { getPicto } from 'utils/utils' import { getPicto } from 'utils/utils'
...@@ -6,6 +6,7 @@ import { EcogestureType } from 'services/dataChallengeContracts' ...@@ -6,6 +6,7 @@ import { EcogestureType } from 'services/dataChallengeContracts'
import StyledIcon from 'components/CommonKit/Icon/StyledIcon' import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
import Icon from 'cozy-ui/react/Icon' import Icon from 'cozy-ui/react/Icon'
import def from 'assets/icons/visu/ecogesture/default.svg' import def from 'assets/icons/visu/ecogesture/default.svg'
import { AppContext } from 'components/Contexts/AppContextProvider'
interface EcogestureModalProps { interface EcogestureModalProps {
opened: boolean opened: boolean
...@@ -24,6 +25,7 @@ const EcogestureModal: React.FC<EcogestureModalProps> = ({ ...@@ -24,6 +25,7 @@ const EcogestureModal: React.FC<EcogestureModalProps> = ({
handleCloseClick, handleCloseClick,
}: EcogestureModalProps) => { }: EcogestureModalProps) => {
const [ecogestureIcon, setEcogestureIcon] = useState(def) const [ecogestureIcon, setEcogestureIcon] = useState(def)
const { userProfile, setNotificationEcogesture } = useContext(AppContext)
async function importEcogestureIcon(id: string) { async function importEcogestureIcon(id: string) {
// Les svg doivent être au format id.svg // Les svg doivent être au format id.svg
...@@ -38,6 +40,17 @@ const EcogestureModal: React.FC<EcogestureModalProps> = ({ ...@@ -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(() => { useEffect(() => {
if (ecogesture) { if (ecogesture) {
importEcogestureIcon(ecogesture.id) importEcogestureIcon(ecogesture.id)
......
...@@ -211,8 +211,6 @@ export class QueryRunner { ...@@ -211,8 +211,6 @@ export class QueryRunner {
) { ) {
const doctype = this.getRelevantDoctype(fluidType, timeStep) const doctype = this.getRelevantDoctype(fluidType, timeStep)
if (timeStep === TimeStep.HALF_AN_HOUR) { if (timeStep === TimeStep.HALF_AN_HOUR) {
const lastDayOfPreviousMonth = maxTimePeriod.startDate.plus({ day: -1 })
return this._client return this._client
.find(doctype) .find(doctype)
.where(this.getPredicate(maxTimePeriod, 20)) .where(this.getPredicate(maxTimePeriod, 20))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment