From 9b0df7b1c246a303598b269adf58598ad532a68a Mon Sep 17 00:00:00 2001 From: Alice Dahan Date: Fri, 31 Jan 2025 17:43:24 +0100 Subject: [PATCH] =?UTF-8?q?refactor:=20cr=C3=A9ation=20et=20utilisation=20?= =?UTF-8?q?de=20useTracking?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- site/source/components/ATInternetTracking/index.tsx | 6 +++++- site/source/components/Feedback/Feedback.tsx | 6 +++--- .../ShareSimulationBanner/ShareSimulationPopup.tsx | 6 +++--- site/source/components/ShareSimulationBanner/index.tsx | 5 ++--- site/source/components/layout/Footer/PrivacyPolicy.tsx | 4 ++-- site/source/pages/assistants/demande-mobilité/EndBlock.tsx | 4 ++-- 6 files changed, 17 insertions(+), 14 deletions(-) diff --git a/site/source/components/ATInternetTracking/index.tsx b/site/source/components/ATInternetTracking/index.tsx index 12b5adc83..46c36230c 100644 --- a/site/source/components/ATInternetTracking/index.tsx +++ b/site/source/components/ATInternetTracking/index.tsx @@ -4,6 +4,10 @@ import { ATTracker } from './Tracker' export const TrackingContext = createContext(null) +export function useTracking(): ATTracker | null { + return useContext(TrackingContext) +} + // From https://github.com/nclsmitchell/at-internet export function toAtString(string: string): string { string = string.replace(/ /g, '_').toLowerCase() @@ -78,7 +82,7 @@ export function TrackPage({ children?: React.ReactNode } & Chapters) { const { chapter1, chapter2, chapter3 } = useChapters(chapters) - const tag = useContext(TrackingContext) + const tag = useTracking() useEffect(() => { tag?.sendEvent( 'page.display', diff --git a/site/source/components/Feedback/Feedback.tsx b/site/source/components/Feedback/Feedback.tsx index 422b9a112..e9fda2feb 100644 --- a/site/source/components/Feedback/Feedback.tsx +++ b/site/source/components/Feedback/Feedback.tsx @@ -1,8 +1,8 @@ -import { useCallback, useContext, useState } from 'react' +import { useCallback, useState } from 'react' import { Trans, useTranslation } from 'react-i18next' import { useLocation } from 'react-router-dom' -import { TrackingContext } from '@/components/ATInternetTracking' +import { useTracking } from '@/components/ATInternetTracking' import { Popover } from '@/design-system' import { Button } from '@/design-system/buttons' import { Emoji } from '@/design-system/emoji' @@ -53,7 +53,7 @@ export function Feedback({ const [isNotSatisfied, setIsNotSatisfied] = useState(false) const { t } = useTranslation() const url = useLocation().pathname - const tag = useContext(TrackingContext) + const tag = useTracking() const { absoluteSitePaths } = useSitePaths() const currentPath = useLocation().pathname diff --git a/site/source/components/ShareSimulationBanner/ShareSimulationPopup.tsx b/site/source/components/ShareSimulationBanner/ShareSimulationPopup.tsx index 33f8d8828..e444952df 100644 --- a/site/source/components/ShareSimulationBanner/ShareSimulationPopup.tsx +++ b/site/source/components/ShareSimulationBanner/ShareSimulationPopup.tsx @@ -1,4 +1,4 @@ -import { useContext, useEffect, useRef, useState } from 'react' +import { useEffect, useRef, useState } from 'react' import { Trans, useTranslation } from 'react-i18next' import { Button } from '@/design-system/buttons' @@ -8,13 +8,13 @@ import { Strong } from '@/design-system/typography' import { H3 } from '@/design-system/typography/heading' import { Body, Intro, SmallBody } from '@/design-system/typography/paragraphs' -import { TrackingContext } from '../ATInternetTracking' +import { useTracking } from '../ATInternetTracking' export function ShareSimulationPopup({ url }: { url: string }) { const inputRef = useRef(null) const { t } = useTranslation() const [linkCopied, setLinkCopied] = useState(false) - const tracker = useContext(TrackingContext) + const tracker = useTracking() const selectInput = () => { inputRef.current?.select() diff --git a/site/source/components/ShareSimulationBanner/index.tsx b/site/source/components/ShareSimulationBanner/index.tsx index b0d28e587..4a9e79719 100644 --- a/site/source/components/ShareSimulationBanner/index.tsx +++ b/site/source/components/ShareSimulationBanner/index.tsx @@ -1,4 +1,3 @@ -import { useContext } from 'react' import { Trans, useTranslation } from 'react-i18next' import { styled } from 'styled-components' @@ -8,7 +7,7 @@ import { Emoji } from '@/design-system/emoji' import { Grid, Spacing } from '@/design-system/layout' import { useUrl } from '@/hooks/useUrl' -import { TrackingContext } from '../ATInternetTracking' +import { useTracking } from '../ATInternetTracking' import { ConseillersEntreprisesButton } from '../ConseillersEntreprisesButton' import { ShareSimulationPopup } from './ShareSimulationPopup' @@ -33,7 +32,7 @@ export default function ShareOrSaveSimulationBanner({ customSimulationbutton?: CustomSimulationButton }) { const { t } = useTranslation() - const tracker = useContext(TrackingContext) + const tracker = useTracking() const shareAPIAvailable = !!window?.navigator?.share const url = useUrl() const startSharing = async () => { diff --git a/site/source/components/layout/Footer/PrivacyPolicy.tsx b/site/source/components/layout/Footer/PrivacyPolicy.tsx index 2aa144a07..8c5f63720 100644 --- a/site/source/components/layout/Footer/PrivacyPolicy.tsx +++ b/site/source/components/layout/Footer/PrivacyPolicy.tsx @@ -10,7 +10,7 @@ import { Li, Ul } from '@/design-system/typography/list' import { Body, SmallBody } from '@/design-system/typography/paragraphs' import * as safeLocalStorage from '../../../storage/safeLocalStorage' -import { TrackingContext, TrackPage } from '../../ATInternetTracking' +import { TrackPage, useTracking } from '../../ATInternetTracking' const StyledTable = styled.table` &, @@ -35,7 +35,7 @@ export default function PrivacyPolicy({ label?: string noUnderline?: boolean }) { - const tracker = useContext(TrackingContext) + const tracker = useTracking() const [valueChanged, setValueChanged] = useState(false) const { t } = useTranslation() diff --git a/site/source/pages/assistants/demande-mobilité/EndBlock.tsx b/site/source/pages/assistants/demande-mobilité/EndBlock.tsx index 042cc8af5..133879c55 100644 --- a/site/source/pages/assistants/demande-mobilité/EndBlock.tsx +++ b/site/source/pages/assistants/demande-mobilité/EndBlock.tsx @@ -4,7 +4,7 @@ import { lazy, Suspense, useContext, useRef, useState } from 'react' import SignaturePad from 'react-signature-pad-wrapper' import { useTheme } from 'styled-components' -import { TrackingContext, TrackPage } from '@/components/ATInternetTracking' +import { TrackPage, useTracking } from '@/components/ATInternetTracking' import { Condition } from '@/components/EngineValue/Condition' import { EngineContext, EngineProvider } from '@/components/utils/EngineContext' import { Message, PopoverWithTrigger } from '@/design-system' @@ -32,7 +32,7 @@ export default function EndBlock({ fields, missingValues }: EndBlockProps) { const [place, setPlace] = useState() const engine = useContext(EngineContext) const signatureRef = useRef(null) - const tracker = useContext(TrackingContext) + const tracker = useTracking() const { colors } = useTheme() if (missingValues.length) { return (