🐛🚑 correction du lien de partage dans les iframes

fix #1655
pull/1950/head
Jérémy Rialland 2022-01-19 13:50:21 +01:00 committed by Johan Girod
parent 42530a9e13
commit 6b5b0b530d
1 changed files with 25 additions and 2 deletions

View File

@ -1,9 +1,13 @@
import { Grid } from '@mui/material'
import Emoji from 'Components/utils/Emoji'
import { SitePathsContext } from 'Components/utils/SitePathsContext'
import { Button } from 'DesignSystem/buttons'
import { Spacing } from 'DesignSystem/layout'
import PopoverWithTrigger from 'DesignSystem/PopoverWithTrigger'
import { useContext } from 'react'
import useSimulatorsData, {
SimulatorId,
} from '../../pages/Simulateurs/metadata'
import { useContext, useMemo } from 'react'
import { Trans, useTranslation } from 'react-i18next'
import { useSelector } from 'react-redux'
import { situationSelector } from 'Selectors/simulationSelectors'
@ -15,10 +19,29 @@ import { ShareSimulationPopup } from './ShareSimulationPopup'
export function useUrl() {
const situation = useSelector(situationSelector)
const searchParams = useParamsFromSituation(situation)
const sitePaths = useContext(SitePathsContext)
const simulatorData = useSimulatorsData()
type KeyofSimulator = keyof typeof sitePaths.simulateurs
const simulatorPath = useMemo(() => {
const iframePath = window.location.pathname.split(/[/?]/).slice(-1)[0]
const simulatorKey = (
Object.keys(sitePaths.simulateurs) as KeyofSimulator[]
).find(
(key) =>
key in simulatorData &&
simulatorData[key as SimulatorId]?.iframePath === iframePath
)
return simulatorKey ? sitePaths.simulateurs[simulatorKey] : ''
}, [simulatorData, sitePaths.simulateurs])
searchParams.set('utm_source', 'sharing')
return [
window.location.origin,
window.location.pathname.replace('iframes/', ''),
window.location.pathname.replace(/\/iframes\/.+/, ''),
simulatorPath,
'?',
searchParams.toString(),
].join('')