From c40c68e10cd064d220b5e2ad96c68ac2d1373a8f Mon Sep 17 00:00:00 2001 From: Bastien Dumont <bdumont@grandlyon.com> Date: Mon, 25 Mar 2024 17:35:48 +0100 Subject: [PATCH] wip waitconsent --- .../Consumption/ConsumptionView.tsx | 73 +++++++++++-------- .../Konnector/KonnectorViewerCard.tsx | 7 -- 2 files changed, 41 insertions(+), 39 deletions(-) diff --git a/src/components/Consumption/ConsumptionView.tsx b/src/components/Consumption/ConsumptionView.tsx index 2cddfc1ad..9fd4340a5 100644 --- a/src/components/Consumption/ConsumptionView.tsx +++ b/src/components/Consumption/ConsumptionView.tsx @@ -1,4 +1,5 @@ import ExpiredConsentModal from 'components/Connection/ExpiredConsentModal/ExpiredConsentModal' +import { GrdfWaitConsent } from 'components/Connection/GRDFConnect/GrdfWaitConsent' import Content from 'components/Content/Content' import CustomPopupModal from 'components/CustomPopup/CustomPopupModal' import DateNavigator from 'components/DateNavigator/DateNavigator' @@ -10,7 +11,7 @@ import KonnectorViewerList from 'components/Konnector/KonnectorViewerList' import PartnerIssueModal from 'components/PartnerIssue/PartnerIssueModal' import ReleaseNotesModal from 'components/ReleaseNotesModal/ReleaseNotesModal' import { useClient } from 'cozy-client' -import { FluidType, TimeStep } from 'enums' +import { FluidState, FluidType, TimeStep } from 'enums' import { DateTime } from 'luxon' import React, { useCallback, useEffect, useState } from 'react' import { useNavigate } from 'react-router-dom' @@ -45,6 +46,7 @@ const ConsumptionView = ({ fluidType }: { fluidType: FluidType }) => { modal: { partnersIssueModal, customPopupModal }, } = useAppSelector(state => state.ecolyo) + const currentFluidStatus = fluidStatus[fluidType] const dateChartService = new DateChartService() const [openReleaseNoteModal, setOpenReleaseNoteModal] = useState<boolean>( @@ -60,14 +62,14 @@ const ConsumptionView = ({ fluidType }: { fluidType: FluidType }) => { ) const updateKey = - fluidType !== FluidType.MULTIFLUID && fluidStatus[fluidType].lastDataDate - ? `${fluidStatus[fluidType].lastDataDate!.toLocaleString()} + ${ - fluidStatus[fluidType].status + fluidType + fluidType !== FluidType.MULTIFLUID && currentFluidStatus.lastDataDate + ? `${currentFluidStatus.lastDataDate.toLocaleString()} + ${ + currentFluidStatus.status + fluidType }` : '' const lastDataDateKey = - fluidType !== FluidType.MULTIFLUID && fluidStatus[fluidType].lastDataDate - ? `${fluidStatus[fluidType].lastDataDate!.toLocaleString() + fluidType}` + fluidType !== FluidType.MULTIFLUID && currentFluidStatus.lastDataDate + ? `${currentFluidStatus.lastDataDate.toLocaleString() + fluidType}` : '' const handleCloseReleaseNoteModal = useCallback(() => { @@ -136,15 +138,18 @@ const ConsumptionView = ({ fluidType }: { fluidType: FluidType }) => { } } - /** Handle time change */ - useEffect(() => { - if ( - fluidType !== FluidType.ELECTRICITY && - currentTimeStep == TimeStep.HALF_AN_HOUR - ) { - dispatch(setCurrentTimeStep(TimeStep.WEEK)) - } - }, [dispatch, fluidType, currentTimeStep]) + useEffect( + /** Reset half-hour timestep for water & gas */ + function setDefaultTimeStep() { + if ( + fluidType !== FluidType.ELECTRICITY && + currentTimeStep == TimeStep.HALF_AN_HOUR + ) { + dispatch(setCurrentTimeStep(TimeStep.WEEK)) + } + }, + [dispatch, fluidType, currentTimeStep] + ) /** * If fluid is not connected, display Connect components @@ -225,12 +230,11 @@ const ConsumptionView = ({ fluidType }: { fluidType: FluidType }) => { <Content heightOffset={headerHeight}> <FluidButtons activeFluid={fluidType} key={updateKey} /> - {openReleaseNoteModal && ( - <ReleaseNotesModal - open={openReleaseNoteModal} - handleCloseClick={handleCloseReleaseNoteModal} - /> - )} + {fluidType === FluidType.GAS && + currentFluidStatus.status === FluidState.CHALLENGE_ASKED && ( + <GrdfWaitConsent /> + )} + {showOfflineData && ( <> <FluidChart @@ -267,6 +271,13 @@ const ConsumptionView = ({ fluidType }: { fluidType: FluidType }) => { </div> )} </Content> + {/* MODALS */} + {openReleaseNoteModal && ( + <ReleaseNotesModal + open={openReleaseNoteModal} + handleCloseClick={handleCloseReleaseNoteModal} + /> + )} {/* Partner issue modals for individual fluids */} {fluidStatus .filter(fluid => fluid.maintenance) @@ -284,17 +295,15 @@ const ConsumptionView = ({ fluidType }: { fluidType: FluidType }) => { handleCloseClick={handleCloseCustomPopupModal} /> {Boolean(consentExpiredFluids.length) && - consentExpiredFluids.map(fluid => { - return ( - <ExpiredConsentModal - key={fluid} - open={openExpiredConsentModal} - handleCloseClick={() => setOpenExpiredConsentModal(false)} - fluidType={fluid} - toggleModal={() => setOpenExpiredConsentModal(prev => !prev)} - /> - ) - })} + consentExpiredFluids.map(fluid => ( + <ExpiredConsentModal + key={fluid} + open={openExpiredConsentModal} + handleCloseClick={() => setOpenExpiredConsentModal(false)} + fluidType={fluid} + toggleModal={() => setOpenExpiredConsentModal(prev => !prev)} + /> + ))} </> ) } diff --git a/src/components/Konnector/KonnectorViewerCard.tsx b/src/components/Konnector/KonnectorViewerCard.tsx index 527d32ff3..e8ac935e4 100644 --- a/src/components/Konnector/KonnectorViewerCard.tsx +++ b/src/components/Konnector/KonnectorViewerCard.tsx @@ -12,7 +12,6 @@ import OfflinePicto from 'assets/icons/visu/offline-param.svg' import classNames from 'classnames' import StyledIcon from 'components/CommonKit/Icon/StyledIcon' import Connection from 'components/Connection/Connection' -import { GrdfWaitConsent } from 'components/Connection/GRDFConnect/GrdfWaitConsent' import KonnectorModal from 'components/Konnector/KonnectorModal' import { useClient } from 'cozy-client' import { isKonnectorRunning } from 'cozy-harvest-lib/dist/helpers/triggers' @@ -249,12 +248,6 @@ const KonnectorViewerCard = ({ }, [dispatch, fluidType, navigate]) const getConnectionCard = useCallback(() => { - if ( - fluidType === FluidType.GAS && - fluidState === FluidState.CHALLENGE_ASKED - ) { - return <GrdfWaitConsent /> - } if (showOfflineData && !account) { return ( <Button className="btnPrimary" onClick={toggleModalConnection}> -- GitLab