Skip to content
Snippets Groups Projects
Commit 5e48c1be authored by Guilhem CARRON's avatar Guilhem CARRON
Browse files

Check if data is too old and konnector errored

parent 16547ada
No related branches found
No related tags found
3 merge requests!103Support,!102Dev,!86Features/us160 old fluid data
...@@ -13,9 +13,12 @@ import KonnectorViewerContainer from 'components/ContainerComponents/KonnectorVi ...@@ -13,9 +13,12 @@ import KonnectorViewerContainer from 'components/ContainerComponents/KonnectorVi
import OldFluidDataModal from 'components/ContentComponents/OldFluidDataModal/OldFluidDataModal' import OldFluidDataModal from 'components/ContentComponents/OldFluidDataModal/OldFluidDataModal'
const HomeViewContainer: React.FC = () => { const HomeViewContainer: React.FC = () => {
const { fluidTypes, previousTimeStep, setPreviousTimeStep } = useContext( const {
AppContext fluidTypes,
) fluidStatus,
previousTimeStep,
setPreviousTimeStep,
} = useContext(AppContext)
const [timeStep, setTimeStep] = useState<TimeStep>( const [timeStep, setTimeStep] = useState<TimeStep>(
previousTimeStep && previousTimeStep !== TimeStep.HALF_AN_HOUR previousTimeStep && previousTimeStep !== TimeStep.HALF_AN_HOUR
? previousTimeStep ? previousTimeStep
...@@ -50,8 +53,16 @@ const HomeViewContainer: React.FC = () => { ...@@ -50,8 +53,16 @@ const HomeViewContainer: React.FC = () => {
setHeaderHeight(height) setHeaderHeight(height)
} }
const checkFluidDataPeriod = () => { const checkFluidDataPeriod = () => {
const age = 10 for (const fluid of fluidStatus) {
age > 5 ? setopenOldFluidDataModal(true) : setopenOldFluidDataModal(false) let diffInDays = 0
if (fluid && fluid.lastDataDate)
diffInDays = Math.round(
fluid.lastDataDate.diffNow('days').toObject().days
)
console.log(diffInDays)
if (diffInDays < -5) return setopenOldFluidDataModal(true)
}
} }
const handleCloseClick = () => { const handleCloseClick = () => {
...@@ -60,7 +71,7 @@ const HomeViewContainer: React.FC = () => { ...@@ -60,7 +71,7 @@ const HomeViewContainer: React.FC = () => {
useEffect(() => { useEffect(() => {
checkFluidDataPeriod() checkFluidDataPeriod()
}, []) }, [fluidStatus])
return ( return (
<React.Fragment> <React.Fragment>
...@@ -106,10 +117,13 @@ const HomeViewContainer: React.FC = () => { ...@@ -106,10 +117,13 @@ const HomeViewContainer: React.FC = () => {
<ChallengeCardContainer /> <ChallengeCardContainer />
</div> </div>
</Content> </Content>
<OldFluidDataModal {fluidStatus && (
opened={openOldFluidDataModal} <OldFluidDataModal
handleCloseClick={handleCloseClick} fluidStatus={fluidStatus}
></OldFluidDataModal> opened={openOldFluidDataModal}
handleCloseClick={handleCloseClick}
></OldFluidDataModal>
)}
</> </>
) : ( ) : (
<> <>
......
import React, { useState } from 'react' import React, { useState, useEffect } 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 WarnCross from 'assets/icons/ico/warn-cross.svg' import WarnCross from 'assets/icons/ico/warn-cross.svg'
import StyledIcon from 'components/CommonKit/Icon/StyledIcon' import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
import StyledButton from 'components/CommonKit/Button/StyledButton' import StyledButton from 'components/CommonKit/Button/StyledButton'
import StyledStopButton from 'components/CommonKit/Button/StyledStopButton' import StyledStopButton from 'components/CommonKit/Button/StyledStopButton'
import { Redirect, Router } from 'react-router-dom' import { Redirect } from 'react-router-dom'
import { IFluidStatus } from 'services/fluidService'
import { FluidType } from 'enum/fluid.enum'
interface OldFluidDataModalProps { interface OldFluidDataModalProps {
opened: boolean opened: boolean
t: Function t: Function
fluidStatus: IFluidStatus[]
handleCloseClick: () => void handleCloseClick: () => void
handleStartClick: () => void handleStartClick: () => void
} }
...@@ -17,11 +21,24 @@ interface OldFluidDataModalProps { ...@@ -17,11 +21,24 @@ interface OldFluidDataModalProps {
const OldFluidDataModal: React.FC<OldFluidDataModalProps> = ({ const OldFluidDataModal: React.FC<OldFluidDataModalProps> = ({
opened, opened,
t, t,
fluidStatus,
handleCloseClick, handleCloseClick,
}: OldFluidDataModalProps) => { }: OldFluidDataModalProps) => {
const [problem, setproblem] = useState(0) const [konnectorError, setkonnectorError] = useState<boolean>(false)
const [erroredKonnectors, seterroredKonnectors] = useState<FluidType[]>([])
const [redirect, setRedirect] = useState(false) const [redirect, setRedirect] = useState(false)
const checkFluidDataDate = () => {
fluidStatus &&
fluidStatus.length > 0 &&
fluidStatus.forEach(fluid => {
if (fluid.status === 'errored') {
erroredKonnectors.push(fluid.fluidType)
}
})
if (erroredKonnectors !== []) setkonnectorError(true)
}
const redirectTrue = () => { const redirectTrue = () => {
handleCloseClick() handleCloseClick()
setRedirect(true) setRedirect(true)
...@@ -32,6 +49,12 @@ const OldFluidDataModal: React.FC<OldFluidDataModalProps> = ({ ...@@ -32,6 +49,12 @@ const OldFluidDataModal: React.FC<OldFluidDataModalProps> = ({
} }
} }
useEffect(() => {
checkFluidDataDate()
}, [fluidStatus])
console.log('status', fluidStatus)
console.log('errored', erroredKonnectors)
return ( return (
<> <>
<Modal open={opened} handleCloseClick={handleCloseClick}> <Modal open={opened} handleCloseClick={handleCloseClick}>
...@@ -41,12 +64,19 @@ const OldFluidDataModal: React.FC<OldFluidDataModalProps> = ({ ...@@ -41,12 +64,19 @@ const OldFluidDataModal: React.FC<OldFluidDataModalProps> = ({
<p>Aie ! </p> <p>Aie ! </p>
</div> </div>
<p className="od-main"> {t('modalData.oldData')}</p> <p className="od-main"> {t('modalData.oldData')}</p>
{problem == 0 ? ( {konnectorError ? (
<div className="verifyState"> <div className="verifyState">
<p>{t('modalData.verify')}</p> <p>{t('modalData.verify')}</p>
<ul className="od-konnectorsList"> <ul className="od-konnectorsList">
<li>Electricité</li> {erroredKonnectors.map((err, index) => {
<li>Gaz</li> return (
<li key={index}>
{err === 0 && t('modalData.elec')}
{err === 1 && t('modalData.water')}
{err === 2 && t('modalData.gas')}
</li>
)
})}
</ul> </ul>
<div className="buttons"> <div className="buttons">
<StyledStopButton color="secondary" onClick={handleCloseClick}> <StyledStopButton color="secondary" onClick={handleCloseClick}>
......
...@@ -289,6 +289,9 @@ ...@@ -289,6 +289,9 @@
"problem": "Vos connecteurs semblent bien connectés, il se peut qu’il y ait un problème au niveau de votre fournisseur de données (Enedis, GRDF, Eau du GrandLyon)", "problem": "Vos connecteurs semblent bien connectés, il se peut qu’il y ait un problème au niveau de votre fournisseur de données (Enedis, GRDF, Eau du GrandLyon)",
"contact": "Veuillez prendre contact directement avec eux.", "contact": "Veuillez prendre contact directement avec eux.",
"accessButton": "Accéder aux connecteurs", "accessButton": "Accéder aux connecteurs",
"later": "Plus tard" "later": "Plus tard",
"elec": "Electricité",
"water": "Eau",
"gas": "Gaz"
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment