Skip to content

Commit

Permalink
Merge branch 'preprod' into 2-10-0
Browse files Browse the repository at this point in the history
  • Loading branch information
bjlaa committed Feb 18, 2025
2 parents bc4f1f5 + 86686d8 commit db15d1a
Show file tree
Hide file tree
Showing 161 changed files with 1,121 additions and 536 deletions.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"dependencies": {
"@babel/runtime": "^7.23.1",
"@incubateur-ademe/legal-pages-react": "^0.2.0",
"@incubateur-ademe/nosgestesclimat": "3.5.1",
"@incubateur-ademe/nosgestesclimat": "3.5.4",
"@mdx-js/loader": "^3.0.0",
"@mdx-js/react": "^3.0.0",
"@next/bundle-analyzer": "^14.1.0",
Expand Down Expand Up @@ -67,6 +67,7 @@
"next": "14.2.7",
"next-i18n-router": "^4.1.1",
"postcss": "8.4.36",
"posthog-js": "^1.217.2",
"process": "^0.11.10",
"publicodes": "1.4.0",
"qrcode.react": "^3.1.0",
Expand Down
24 changes: 24 additions & 0 deletions public/demo-iframeLazy.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Demo Iframe Lazy</title>
</head>
<body>
<header>
<h2>iframe paramétré</h2>
<p>
Ci-dessous, nosgestesclimat.fr intégré comme un iframe paramétré. Son
chargement est déclenché lorsque l'utilisateur interagit avec la page.
Veuillez vous déplacer vers le bas de la page pour voir l'intégration.
</p>
</header>
<main style="margin-top: 1000px">
<script
id="nosgestesclimat"
src="/iframe.js"
data-share-data="true"></script>
</main>
</body>
</html>
29 changes: 29 additions & 0 deletions public/demo-iframeSimulationHomepage.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Demo Iframe Simulation with Homepage</title>
</head>
<body>
<header>
<h2>
Exemple d'intégration du test avec région fixée par l'intégrateur.
</h2>
<p>
Ci-dessous, nosgestesclimat.fr intégré comme un iframe paramétré pour
afficher uniquement le parcours utilisateur du test Nos Gestes Climat,
de la page d'accueil à la page de résultats.
</p>
<p>La hauteur de l'iframe est fixée à 500px.</p>
</header>
<main style="padding-bottom: 1000px; max-width: 600px">
<script
id="nosgestesclimat"
src="/iframeSimulation.js"
data-only-simulation="true"
data-with-homepage="true"
data-max-height="500"></script>
</main>
</body>
</html>
4 changes: 4 additions & 0 deletions public/iframe.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ const script =
document.getElementById('ecolab-climat') ||
document.getElementById('nosgestesclimat')

if (!script) {
console.error('Iframe Nos Gestes Climat: No target element found')
}

const integratorUrl = encodeURIComponent(window.location.href.toString())

const srcURL = new URL(script.src)
Expand Down
42 changes: 25 additions & 17 deletions public/iframeSimulation.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ const script =
document.getElementById('ecolab-climat') ||
document.getElementById('nosgestesclimat')

if (!script) {
console.error('Iframe Nos Gestes Climat: No target element found')
}

const integratorUrl = encodeURIComponent(window.location.href.toString())

const srcURL = new URL(script.src)
Expand All @@ -13,24 +17,35 @@ const possibleOptions = [
{ key: 'lang' },
{ key: 'onlySimulation' },
{ key: 'pr' },
{ key: 'withHomepage' },
{ key: 'maxHeight' },
]

const lang = script.dataset.lang

const url = new URL(hostname)

url.pathname = `/${lang ? lang + '/' : ''}simulateur/bilan`
// Check if withHomepage is true
const withHomepage = script.dataset.withHomepage

if (withHomepage) {
url.pathname = `/${lang ? lang + '/accueil-iframe' : 'accueil-iframe'}`
} else {
url.pathname = `/${lang ? lang + '/' : ''}simulateur/bilan`
}

url.searchParams.append('iframe', 'true')
url.searchParams.append('integratorUrl', integratorUrl)

possibleOptions.forEach(({ key, legacy }) => {
const value = script.dataset[key] || script.dataset[legacy]
possibleOptions
.filter(({ key }) => key !== 'maxHeight')
.forEach(({ key, legacy }) => {
const value = script.dataset[key] || script.dataset[legacy]

if (value) {
url.searchParams.append(key === 'pr' ? 'PR' : key, value)
}
})
if (value) {
url.searchParams.append(key === 'pr' ? 'PR' : key, value)
}
})

const iframe = document.createElement('iframe')

Expand All @@ -41,20 +56,13 @@ const iframeAttributes = {
mozallowfullscreen: true,
allow: 'fullscreen',
id: 'iframeNGC',
style: 'border: none; width: 100%; display: block; height: 801px;',
style: `border: none; width: 100%; display: block; height: 801px; ${
script.dataset.maxHeight ? `max-height: ${script.dataset.maxHeight}px;` : ''
}`,
}

for (var key in iframeAttributes) {
iframe.setAttribute(key, iframeAttributes[key])
}

script.parentNode.insertBefore(iframe, script)

window.addEventListener('message', function (evt) {
if (
evt.data.kind === 'resize-height' &&
iframe.style.height !== `${evt.data.value}px`
) {
iframe.style.height = `${evt.data.value}px`
}
})
3 changes: 0 additions & 3 deletions public/images/actions/README.md

This file was deleted.

6 changes: 3 additions & 3 deletions src/app/(large-layout)/stats/_components/StatsContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
useCurrentMonthWebsites,
useGetSharedSimulationEvents,
} from '@/helpers/matomo'
import { useNumberSubscribers } from '@/hooks/useNumberSubscriber'
import { useMainNewsletter } from '@/hooks/useMainNewsletter'
import type { UseQueryResult } from '@tanstack/react-query'
import AcquisitionBlock from './content/AcquisitionBlock'
import MetabaseIframe from './content/MetabaseIframe'
Expand Down Expand Up @@ -70,7 +70,7 @@ export default function StatsContent() {
const currentMonthWebsites = useCurrentMonthWebsites()
const currentMonthSocials = useCurrentMonthSocials()
const allSharedSimulationEvents = useGetSharedSimulationEvents()
const allSubscribers = useNumberSubscribers()
const { data: mainNewsletter } = useMainNewsletter()

return (
<div>
Expand Down Expand Up @@ -127,7 +127,7 @@ export default function StatsContent() {
currentMonthIframeVisitsData,
]) => (
<AcquisitionBlock
allSubscribers={allSubscribers}
mainNewsletter={mainNewsletter}
allSharedSimulationEventsData={allSharedSimulationEventsData}
currentMonthWebsitesData={currentMonthWebsitesData}
currentMonthSocialsData={currentMonthSocialsData}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import Trans from '@/components/translation/Trans'
import Card from '@/design-system/layout/Card'
import { useLocale } from '@/hooks/useLocale'
import type { Newsletter } from '@/hooks/useMainNewsletter'
import { formatPercentage, formatValue } from '../utils/formatFigure'
import Sources from './Sources'

type Props = {
allSubscribers: any
mainNewsletter?: Newsletter
allSharedSimulationEventsData: any
currentMonthWebsitesData: any
currentMonthSocialsData: any
Expand All @@ -14,7 +15,7 @@ type Props = {
}

export default function AcquisitionBlock({
allSubscribers,
mainNewsletter,
allSharedSimulationEventsData,
currentMonthWebsitesData,
currentMonthSocialsData,
Expand All @@ -27,9 +28,11 @@ export default function AcquisitionBlock({
<div className="mt-4">
<div className="flex flex-row gap-4">
<Card className="flex-1">
<strong className="text-3xl">
{formatValue(allSubscribers?.data, locale)}
</strong>{' '}
{!!mainNewsletter && (
<strong className="text-3xl">
{formatValue(mainNewsletter.totalSubscribers, locale)}
</strong>
)}
<p className="mb-0 text-sm">
<Trans>inscrits à l'infolettre</Trans>
</p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import {
useTempEngine,
useUser,
} from '@/publicodes-state'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'
import type { DottedName, NGCRuleNode } from '@incubateur-ademe/nosgestesclimat'
import { utils } from 'publicodes'
import ActionForm from '../../_components/actionsContent/actions/ActionForm'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import Emoji from '@/design-system/utils/Emoji'
import { getCarbonFootprint } from '@/helpers/actions/getCarbonFootprint'
import { useClientTranslation } from '@/hooks/useClientTranslation'
import { useCurrentSimulation, useEngine, useUser } from '@/publicodes-state'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'

export default function ActionsTutorial() {
const { t, i18n } = useClientTranslation()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import Trans from '@/components/translation/Trans'
import { actionsClickAdeme } from '@/constants/tracking/pages/actions'
import Card from '@/design-system/layout/Card'
import { useClientTranslation } from '@/hooks/useClientTranslation'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'

export default function AllerPlusLoin() {
const { t } = useClientTranslation()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import {
useTempEngine,
useUser,
} from '@/publicodes-state'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'
import { encodeRuleName } from '@/utils/publicodes/encodeRuleName'
import type { DottedName } from '@incubateur-ademe/nosgestesclimat'
import { useCallback } from 'react'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
useEngine,
useUser,
} from '@/publicodes-state'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'
import { Fragment } from 'react'
import ActionCard from './ActionCard'
import ActionForm from './ActionForm'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
getTextDarkColor,
} from '@/helpers/getCategoryColorClass'
import { useRule } from '@/publicodes-state'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'
import type { DottedName } from '@incubateur-ademe/nosgestesclimat'
import { useRouter, useSearchParams } from 'next/navigation'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import EmailInput from '@/design-system/inputs/EmailInput'
import PrenomInput from '@/design-system/inputs/PrenomInput'
import { useClientTranslation } from '@/hooks/useClientTranslation'
import { useUser } from '@/publicodes-state'
import { trackEvent } from '@/utils/analytics/trackEvent'
import { formatEmail } from '@/utils/format/formatEmail'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { useRouter } from 'next/navigation'
import { useForm as useReactHookForm } from 'react-hook-form'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import { useEndPage } from '@/hooks/navigation/useEndPage'
import { useSimulateurPage } from '@/hooks/navigation/useSimulateurPage'
import { useClientTranslation } from '@/hooks/useClientTranslation'
import { useCurrentSimulation, useUser } from '@/publicodes-state'
import { trackEvent } from '@/utils/analytics/trackEvent'
import { formatEmail } from '@/utils/format/formatEmail'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { captureException } from '@sentry/react'
import { useSearchParams } from 'next/navigation'
import { useEffect, useState } from 'react'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { useIsGroupOwner } from '@/hooks/groups/useIsGroupOwner'
import { useUpdateGroup } from '@/hooks/groups/useUpdateGroup'
import { useClientTranslation } from '@/hooks/useClientTranslation'
import type { Group } from '@/types/groups'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'
import { captureException } from '@sentry/react'
import { useState } from 'react'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { amisDashboardCopyLink } from '@/constants/tracking/pages/amisDashboard'
import Button from '@/design-system/inputs/Button'
import Emoji from '@/design-system/utils/Emoji'
import type { Group } from '@/types/groups'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'
import { useEffect, useRef, useState } from 'react'

const SubmitButton = ({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { linkToClassement } from '@/helpers/navigation/classementPages'
import { useDeleteGroup } from '@/hooks/groups/useDeleteGroup'
import { useUser } from '@/publicodes-state'
import type { Group } from '@/types/groups'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'
import { captureException } from '@sentry/react'
import { useRouter } from 'next/navigation'
import { useEffect, useRef, useState } from 'react'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import Trans from '@/components/translation/Trans'
import { classementCreateOrganisation } from '@/constants/tracking/pages/classements'
import ButtonLink from '@/design-system/inputs/ButtonLink'
import type { Organisation } from '@/types/organisations'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'

type Props = {
organisations?: Organisation[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import Trans from '@/components/translation/Trans'
import { classementClickOrganisation } from '@/constants/tracking/pages/classements'
import Badge from '@/design-system/layout/Badge'
import type { Organisation } from '@/types/organisations'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'

export default function OrganisationItem({
organisation,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import Trans from '@/components/translation/Trans'
import { classementClickOrganisation } from '@/constants/tracking/pages/classements'
import { getLinkToPollDashboard } from '@/helpers/navigation/pollPages'
import type { Organisation, OrganisationPoll } from '@/types/organisations'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'

type Props = {
organisation: Organisation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import Emoji from '@/design-system/utils/Emoji'
import { getLinkToGroupDashboard } from '@/helpers/navigation/groupPages'
import { useUser } from '@/publicodes-state'
import type { Group } from '@/types/groups'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'

type Props = {
group: Group
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {
import Button from '@/design-system/inputs/Button'
import ButtonLink from '@/design-system/inputs/ButtonLink'
import { useClientTranslation } from '@/hooks/useClientTranslation'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'

type Props = {
linkToPrev: string
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import Emoji from '@/design-system/utils/Emoji'
import { useSimulateurPage } from '@/hooks/navigation/useSimulateurPage'
import { usePollQueryParams } from '@/hooks/organisations/usePollQueryParams'
import { useCurrentSimulation } from '@/publicodes-state'
import { trackEvent } from '@/utils/matomo/trackEvent'
import { trackEvent } from '@/utils/analytics/trackEvent'
import { useContext, useEffect, useState } from 'react'
import { InfosContext } from '../_components/InfosProvider'

Expand Down
2 changes: 1 addition & 1 deletion src/app/(simulation)/(large-layout)/infos/email/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import Title from '@/design-system/layout/Title'
import { useInfosPage } from '@/hooks/navigation/useInfosPage'
import { useClientTranslation } from '@/hooks/useClientTranslation'
import { useUser } from '@/publicodes-state'
import { trackPageView } from '@/utils/analytics/trackEvent'
import { isEmailValid } from '@/utils/isEmailValid'
import { trackPageView } from '@/utils/matomo/trackEvent'
import { useRouter, useSearchParams } from 'next/navigation'
import { useCallback, useEffect } from 'react'
import { useForm as useReactHookForm } from 'react-hook-form'
Expand Down
Loading

0 comments on commit db15d1a

Please sign in to comment.