@@ -5,11 +5,12 @@ import Image from 'next/image'
55import { useEffect , useMemo , useRef } from 'react'
66import useParamContext from 'src/providers/ParamProvider'
77import { Category } from 'types/category'
8- import { ComputedEquivalent , DeplacementType } from 'types/equivalent'
8+ import { ComputedEquivalent , DeplacementEquivalent , DeplacementType } from 'types/equivalent'
99import { categories } from 'data/categories'
1010import { deplacements } from 'data/categories/deplacement'
1111import formatNumber from 'utils/formatNumber'
1212import { track } from 'utils/matomo'
13+ import { filterByDistance } from 'utils/transport'
1314import useItineraries from 'hooks/useItineraries'
1415import LocalNumber from 'components/base/LocalNumber'
1516import Etiquette from 'components/comparateur/Etiquette'
@@ -45,11 +46,19 @@ const TeletravailSimulator = () => {
4546 } = useParamContext ( )
4647
4748 const t = useTranslations ( 'transport.teletravail' )
48- const deplacement = useMemo (
49- ( ) => transports . find ( ( x ) => x . slug === transport ) as ComputedEquivalent & { type : DeplacementType } ,
50- [ transport ]
51- )
5249 const { data : itineraries } = useItineraries ( start , end , 'télétravail' )
50+ const deplacement = useMemo ( ( ) => {
51+ if ( transport === 'avion' ) {
52+ const avions = transports . filter ( ( x ) => x . slug . startsWith ( 'avion' ) ) as DeplacementEquivalent [ ]
53+ const distance = itineraries ?. plane || 0
54+ return ( avions . find ( ( avion ) => filterByDistance ( avion . display , distance ) ) || avions [ 0 ] ) as ComputedEquivalent & {
55+ type : DeplacementType
56+ }
57+ } else {
58+ return transports . find ( ( x ) => x . slug === transport ) as ComputedEquivalent & { type : DeplacementType }
59+ }
60+ } , [ transport , itineraries ] )
61+
5362 const total = useMemo ( ( ) => {
5463 if ( itineraries && deplacement ) {
5564 const distance = itineraries [ deplacement . type ]
@@ -151,7 +160,7 @@ const TeletravailSimulator = () => {
151160 < span className = { styles . header } > { t ( 'or' ) } </ span >
152161 < span className = { styles . greenValue } >
153162 < span className = { styles . number } data-testid = 'teletravail-saved-percent' >
154- < LocalNumber number = { formatNumber ( ( 0.75 * homeOffice * total ) / 99 ) } />
163+ < LocalNumber number = { formatNumber ( ( 0.75 * homeOffice * total ) / 91 ) } />
155164 </ span > { ' ' }
156165 %
157166 </ span >
0 commit comments