From fb20c0d786547b3be642b1f7bbb5b98e08088679 Mon Sep 17 00:00:00 2001 From: Bastien Dumont <bdumont@grandlyon.com> Date: Fri, 3 May 2024 15:28:31 +0200 Subject: [PATCH] chore: cleanup before v3 --- .../Action/ActionChoose/ActionChoose.spec.tsx | 1 - .../Analysis/Comparison/Comparison.tsx | 33 +------------------ .../Comparison/FluidPerformanceIndicator.tsx | 27 ++++++++++++--- .../GRDFConnect/GrdfConnectView.tsx | 2 +- .../Hooks/useUserInstanceSettings.tsx | 4 +-- src/components/WelcomeModal/WelcomeModal.tsx | 2 +- 6 files changed, 27 insertions(+), 42 deletions(-) diff --git a/src/components/Action/ActionChoose/ActionChoose.spec.tsx b/src/components/Action/ActionChoose/ActionChoose.spec.tsx index 936d23c5f..a2c2d2e70 100644 --- a/src/components/Action/ActionChoose/ActionChoose.spec.tsx +++ b/src/components/Action/ActionChoose/ActionChoose.spec.tsx @@ -12,7 +12,6 @@ import { import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock' import ActionChoose from './ActionChoose' -// jest.mock('components/Action/ActionBegin/ActionBegin', () => 'mock-ActionBegin') jest.mock('components/Action/ActionList/ActionList', () => 'mock-ActionList') jest.mock('services/ecogesture.service', () => { diff --git a/src/components/Analysis/Comparison/Comparison.tsx b/src/components/Analysis/Comparison/Comparison.tsx index afa648f2e..927e1094c 100644 --- a/src/components/Analysis/Comparison/Comparison.tsx +++ b/src/components/Analysis/Comparison/Comparison.tsx @@ -5,10 +5,8 @@ import { useI18n } from 'cozy-ui/transpiled/react/I18n' import { FluidType, TimeStep } from 'enums' import { PerformanceIndicator } from 'models' import React, { useEffect, useMemo, useState } from 'react' -import { useNavigate } from 'react-router-dom' import ConsumptionService from 'services/consumption.service' import { setPeriod } from 'store/analysis/analysis.slice' -import { setCurrentTimeStep, setShowCompare } from 'store/chart/chart.slice' import { useAppDispatch, useAppSelector } from 'store/hooks' import FluidPerformanceIndicator from './FluidPerformanceIndicator' import TemperatureComparison from './TemperatureComparison' @@ -23,12 +21,11 @@ const Comparison = ({ }) => { const { t } = useI18n() const client = useClient() - const navigate = useNavigate() + const dispatch = useAppDispatch() const { global: { fluidTypes }, analysis: { period, analysisMonth }, } = useAppSelector(state => state.ecolyo) - const dispatch = useAppDispatch() const [yearPerformanceIndicators, setYearPerformanceIndicators] = useState< PerformanceIndicator[] >([]) @@ -100,33 +97,6 @@ const Comparison = ({ dispatch, ]) - const handleFluidClick = (fluid: FluidType) => { - let fluidTypeText: string - - switch (fluid) { - case FluidType.ELECTRICITY: - fluidTypeText = 'electricity' - break - case FluidType.WATER: - fluidTypeText = 'water' - break - case FluidType.GAS: - fluidTypeText = 'gas' - break - default: - fluidTypeText = 'unknown' - } - - const url = `/consumption/${fluidTypeText}` - dispatch(setCurrentTimeStep(TimeStep.MONTH)) - if (period === 'year') { - dispatch(setShowCompare(true)) - } else { - dispatch(setShowCompare(false)) - } - navigate(url) - } - return ( <div className="comparison"> {!isLoading && ( @@ -189,7 +159,6 @@ const Comparison = ({ ? periods.previousMonthPeriod.startDate : periods.previousYearPeriod.startDate } - onClickHandler={() => handleFluidClick(fluid)} /> ))} </div> diff --git a/src/components/Analysis/Comparison/FluidPerformanceIndicator.tsx b/src/components/Analysis/Comparison/FluidPerformanceIndicator.tsx index 7a61814c8..1c193147d 100644 --- a/src/components/Analysis/Comparison/FluidPerformanceIndicator.tsx +++ b/src/components/Analysis/Comparison/FluidPerformanceIndicator.tsx @@ -1,27 +1,32 @@ import StyledIcon from 'components/CommonKit/Icon/StyledIcon' import { useI18n } from 'cozy-ui/transpiled/react/I18n' -import { FluidType } from 'enums' +import { FluidType, TimeStep } from 'enums' import { DateTime } from 'luxon' import { PerformanceIndicator } from 'models' import React from 'react' +import { useNavigate } from 'react-router-dom' +import { setCurrentTimeStep, setShowCompare } from 'store/chart/chart.slice' +import { useAppDispatch, useAppSelector } from 'store/hooks' import { getPicto } from 'utils/picto' -import { formatNumberValues, getMonthName } from 'utils/utils' +import { formatNumberValues, getFluidName, getMonthName } from 'utils/utils' import './fluidPerformanceIndicator.scss' interface FluidPerformanceIndicatorProps { performanceIndicator: PerformanceIndicator fluidType: FluidType comparisonDate: DateTime - onClickHandler?: () => void } const FluidPerformanceIndicator = ({ performanceIndicator, fluidType, comparisonDate, - onClickHandler, }: FluidPerformanceIndicatorProps) => { const { t } = useI18n() + const navigate = useNavigate() + const dispatch = useAppDispatch() + const { period } = useAppSelector(state => state.ecolyo.analysis) + const iconType = getPicto(fluidType) const displayedValue = performanceIndicator?.value ? formatNumberValues(performanceIndicator.value).toString() @@ -37,8 +42,20 @@ const FluidPerformanceIndicator = ({ } } + const handleFluidClick = (fluid: FluidType) => { + const fluidName = getFluidName(fluid) + const url = `/consumption/${fluidName}` + dispatch(setCurrentTimeStep(TimeStep.MONTH)) + if (period === 'year') { + dispatch(setShowCompare(true)) + } else { + dispatch(setShowCompare(false)) + } + navigate(url) + } + return ( - <button className="fpi" onClick={onClickHandler}> + <button className="fpi" onClick={() => handleFluidClick(fluidType)}> <StyledIcon icon={iconType} size={50} /> <div className="fpi-content"> {!displayedValue && ( diff --git a/src/components/Connection/GRDFConnect/GrdfConnectView.tsx b/src/components/Connection/GRDFConnect/GrdfConnectView.tsx index 0ec4d939b..8923b875d 100644 --- a/src/components/Connection/GRDFConnect/GrdfConnectView.tsx +++ b/src/components/Connection/GRDFConnect/GrdfConnectView.tsx @@ -21,7 +21,7 @@ export enum GrdfStep { export const GrdfConnectView = () => { const navigate = useNavigate() - const { data: instanceSettings } = useUserInstanceSettings() + const { instanceSettings } = useUserInstanceSettings() const { fluidStatus } = useAppSelector(state => state.ecolyo.global) const currentFluidStatus = fluidStatus[FluidType.GAS] const account = currentFluidStatus.connection.account diff --git a/src/components/Hooks/useUserInstanceSettings.tsx b/src/components/Hooks/useUserInstanceSettings.tsx index 5a8ec6838..5fe6bfdc2 100644 --- a/src/components/Hooks/useUserInstanceSettings.tsx +++ b/src/components/Hooks/useUserInstanceSettings.tsx @@ -18,7 +18,7 @@ interface UserInstanceSettingsAttributes { } const useUserInstanceSettings = (): { - data: UserInstanceSettingsAttributes + instanceSettings: UserInstanceSettingsAttributes } => { const client = useClient() const [settings, setSettings] = useState<UserInstanceSettingsAttributes>({ @@ -42,7 +42,7 @@ const useUserInstanceSettings = (): { }, [client]) return { - data: settings, + instanceSettings: settings, } } diff --git a/src/components/WelcomeModal/WelcomeModal.tsx b/src/components/WelcomeModal/WelcomeModal.tsx index 7af1db715..c61135791 100644 --- a/src/components/WelcomeModal/WelcomeModal.tsx +++ b/src/components/WelcomeModal/WelcomeModal.tsx @@ -19,7 +19,7 @@ const WelcomeModal = ({ open }: { open: boolean }) => { const { t } = useI18n() const client = useClient() const dispatch = useAppDispatch() - const { data: instanceSettings } = useUserInstanceSettings() + const { instanceSettings } = useUserInstanceSettings() const setWelcomeModalViewed = useCallback(async () => { const mailService = new MailService() -- GitLab