🎨 Prise en compte des retours

Réduit un peu l'emphase sur la section "aller plus loin". Je ne suis pas
100% satisfait de la présentation mais je pense qu'on peut merger et
l'améliorer ultérieurement.
pull/1512/head
Maxime Quandalle 2021-04-26 14:55:25 +02:00
parent 68f887efc8
commit d3d1880c03
8 changed files with 59 additions and 49 deletions

View File

@ -7,7 +7,7 @@ export default function IntegrationTest() {
const integrableModuleNames = useMemo(
() =>
Object.values(simulators)
.map((s) => s.iframe)
.map((s) => s.iframePath)
.filter(Boolean),
[simulators]
)

View File

@ -19,11 +19,11 @@ export default function Iframes() {
<div className="ui__ container">
<Switch>
{Object.values(simulators)
.filter(({ iframe }) => !!iframe)
.filter(({ iframePath }) => !!iframePath)
.map((s) => (
<Route
key={s.iframe}
path={`/iframes/${s.iframe}`}
key={s.iframePath}
path={`/iframes/${s.iframePath}`}
render={() => (
<>
<Helmet>

View File

@ -115,13 +115,17 @@ export default function Simulateurs() {
export function SimulateurCard({
small = false,
noBorder = false,
shortName,
meta,
path,
tooltip,
iframe,
iframePath,
icône,
}: SimulatorData[keyof SimulatorData] & { small?: boolean }) {
}: SimulatorData[keyof SimulatorData] & {
small?: boolean
noBorder?: boolean
}) {
const isIframe = useContext(IsEmbeddedContext)
const name = (
<span>
@ -130,13 +134,17 @@ export function SimulateurCard({
)
return (
<Link
className={classnames('ui__ interactive card box light-border', {
small,
})}
className={classnames(
'ui__ interactive card box',
!noBorder && 'light-border',
{
small,
}
)}
key={path}
to={{
state: { fromSimulateurs: true },
pathname: (isIframe && iframe) || path,
pathname: (isIframe && iframePath) || path,
}}
>
<div className={classnames('ui__ box-icon', { big: !small })}>

View File

@ -77,7 +77,7 @@ function ExerciceDate() {
Exercice du{' '}
<RuleInput
dottedName={'entreprise . exercice . début'}
showDefaultDateValue={true}
showDefaultDateValue
onChange={(x) =>
dispatch(updateSituation('entreprise . exercice . début', x))
}
@ -85,7 +85,7 @@ function ExerciceDate() {
au{' '}
<RuleInput
dottedName={'entreprise . exercice . fin'}
showDefaultDateValue={true}
showDefaultDateValue
onChange={(x) =>
dispatch(updateSituation('entreprise . exercice . fin', x))
}

View File

@ -7,7 +7,7 @@ import useSearchParamsSimulationSharing from 'Components/utils/useSearchParamsSi
import useSimulationConfig from 'Components/utils/useSimulationConfig'
import { default as React, useContext } from 'react'
import emoji from 'react-easy-emoji'
import { Trans, useTranslation } from 'react-i18next'
import { useTranslation } from 'react-i18next'
import { Link, useLocation } from 'react-router-dom'
import { TrackChapter } from '../../ATInternetTracking'
import { SimulateurCard } from './Home'
@ -20,7 +20,7 @@ export default function PageData({
tracking,
tooltip,
description,
iframe,
iframePath,
component: Component,
seoExplanations,
nextSteps,
@ -86,7 +86,7 @@ export default function PageData({
{!inIframe && (
<>
{seoExplanations}
<NextSteps iframe={iframe} nextSteps={nextSteps} />
<NextSteps iframePath={iframePath} nextSteps={nextSteps} />
</>
)}
</ThemeColorsProvider>
@ -95,14 +95,14 @@ export default function PageData({
}
type NextStepsProps = {
iframe?: string
iframePath?: string
nextSteps?: Array<SimulatorId>
}
function NextSteps({ iframe, nextSteps }: NextStepsProps) {
function NextSteps({ iframePath, nextSteps }: NextStepsProps) {
const sitePaths = useContext(SitePathsContext)
const simulators = useSimulatorsData()
if (!iframe && !nextSteps) {
if (!iframePath && !nextSteps) {
return null
}
return (
@ -110,23 +110,25 @@ function NextSteps({ iframe, nextSteps }: NextStepsProps) {
<h3>Aller plus loin</h3>
<div className="ui__ box-container">
{nextSteps?.map((simulatorId) => (
<SimulateurCard key={simulatorId} {...simulators[simulatorId]} />
<SimulateurCard
key={simulatorId}
noBorder
{...simulators[simulatorId]}
/>
))}
{iframe && (
{13 && (
<Link
className="ui__ interactive card box light-border"
className="ui__ interactive card box"
to={{
pathname: sitePaths.integration.iframe,
search: `?module=${iframe}`,
search: `?module=${iframePath}`,
}}
>
<div className="ui__ big box-icon">{emoji('📱')}</div>
<Trans i18nKey="pages.simulateurs.cartes.intégrer module web">
<h3>Intégrer le module web</h3>
<p className="ui__ notice">
Ajouter ce simulateur sur votre site internet en un clic
</p>
</Trans>
<h3>Intégrer le module web</h3>
<p className="ui__ notice">
Ajouter ce simulateur sur votre site internet en un clic
</p>
</Link>
)}
</div>

View File

@ -85,7 +85,7 @@ export type SimulatorData = Record<
shortName: string
path?: string
tooltip?: string
iframe?: string
iframePath?: string
title?: string
description?: React.ReactNode
config?: SimulationConfig
@ -111,7 +111,7 @@ export function getSimulatorsData({
'pages.simulateurs.salarié.title',
'Simulateur de revenus pour salarié'
),
iframe: 'simulateur-embauche',
iframePath: 'simulateur-embauche',
meta: {
description: t(
'pages.simulateurs.salarié.meta.description',
@ -208,7 +208,7 @@ export function getSimulatorsData({
tracking: 'auto_entrepreneur',
config: autoEntrepreneurConfig,
icône: '🚶‍♂️',
iframe: 'simulateur-autoentrepreneur',
iframePath: 'simulateur-autoentrepreneur',
meta: {
description: t(
'pages.simulateurs.auto-entrepreneur.meta.description',
@ -315,7 +315,7 @@ export function getSimulatorsData({
config: indépendantConfig,
tracking: 'independant',
icône: '🏃',
iframe: 'simulateur-independant',
iframePath: 'simulateur-independant',
path: sitePaths.simulateurs.indépendant,
shortName: t('pages.simulateurs.indépendant.shortname', 'Indépendant'),
title: t(
@ -339,7 +339,7 @@ export function getSimulatorsData({
config: sasuConfig,
tracking: 'dirigeant_sasu',
icône: '👨‍✈️',
iframe: 'simulateur-assimilesalarie',
iframePath: 'simulateur-assimilesalarie',
meta: {
description: t(
'pages.simulateurs.sasu.meta.description',
@ -419,7 +419,7 @@ export function getSimulatorsData({
'artiste-auteur': {
icône: '👩‍🎨',
tracking: 'artiste-auteur',
iframe: 'simulateur-artiste-auteur',
iframePath: 'simulateur-artiste-auteur',
meta: {
title: t(
'pages.simulateurs.artiste-auteur.meta.title',
@ -450,7 +450,7 @@ export function getSimulatorsData({
config: chômageParielConfig,
path: sitePaths.simulateurs['chômage-partiel'],
icône: '😷',
iframe: 'simulateur-chomage-partiel',
iframePath: 'simulateur-chomage-partiel',
meta: {
description: t(
'pages.simulateurs.chômage-partiel.meta.description',
@ -646,7 +646,7 @@ export function getSimulatorsData({
'Demande de mobilité internationale'
),
private: true,
iframe: 'demande-mobilite',
iframePath: 'demande-mobilite',
},
médecin: {
config: médecinConfig,
@ -655,7 +655,7 @@ export function getSimulatorsData({
chapter3: 'medecin',
},
icône: '⚕️',
iframe: 'médecin',
iframePath: 'médecin',
path: sitePaths.simulateurs['profession-libérale'].médecin,
shortName: t('pages.simulateurs.médecin.shortname', 'Médecin'),
title: t(
@ -671,7 +671,7 @@ export function getSimulatorsData({
chapter2: 'profession_liberale',
chapter3: 'chirurgien_dentiste',
},
iframe: 'chirurgien-dentiste',
iframePath: 'chirurgien-dentiste',
path: sitePaths.simulateurs['profession-libérale']['chirurgien-dentiste'],
shortName: t(
'pages.simulateurs.chirurgien-dentiste.shortname',
@ -690,7 +690,7 @@ export function getSimulatorsData({
chapter2: 'profession_liberale',
chapter3: 'sage_femme',
},
iframe: 'sage-femme',
iframePath: 'sage-femme',
path: sitePaths.simulateurs['profession-libérale']['sage-femme'],
shortName: t('pages.simulateurs.sage-femme.shortname', 'Sage-femme'),
title: t(
@ -710,7 +710,7 @@ export function getSimulatorsData({
'Infirmiers, masseurs-kinésithérapeutes, pédicures-podologues, orthophonistes et orthoptistes'
),
icône: '🩹',
iframe: 'auxiliaire-medical',
iframePath: 'auxiliaire-medical',
path: sitePaths.simulateurs['profession-libérale'].auxiliaire,
shortName: t('pages.simulateurs.auxiliaire.shortname', 'Auxiliaire méd.'),
title: t(
@ -726,7 +726,7 @@ export function getSimulatorsData({
chapter3: 'avocat',
},
icône: '⚖', // j'ai hesité avec 🥑 mais pas envie de me prendre un procès
iframe: 'avocat',
iframePath: 'avocat',
path: sitePaths.simulateurs['profession-libérale'].avocat,
shortName: t('pages.simulateurs.avocat.shortname', 'Avocat'),
title: t(
@ -742,7 +742,7 @@ export function getSimulatorsData({
chapter3: 'expert_comptable',
},
icône: '🧮',
iframe: 'expert-comptable',
iframePath: 'expert-comptable',
path: sitePaths.simulateurs['profession-libérale']['expert-comptable'],
shortName: t(
'pages.simulateurs.expert-comptable.shortname',
@ -770,7 +770,7 @@ export function getSimulatorsData({
"Calcul du revenu net pour les indépendants en libéral à l'impôt sur le revenu (IR, BNC)"
),
},
iframe: 'profession-liberale',
iframePath: 'profession-liberale',
path: sitePaths.simulateurs['profession-libérale'].index,
shortName: t(
'pages.simulateurs.profession-libérale.shortname',
@ -784,7 +784,7 @@ export function getSimulatorsData({
},
pamc: {
private: true,
iframe: 'pamc',
iframePath: 'pamc',
tracking: {},
title: t(
'pages.simulateurs.pamc.title',
@ -822,7 +822,7 @@ export function getSimulatorsData({
color: '#11965f',
},
path: sitePaths.simulateurs['aides-embauche'],
iframe: 'aides-embauche',
iframePath: 'aides-embauche',
shortName: t(
'pages.simulateurs.aides-embauche.meta.title',
'Aides à lembauche'
@ -864,7 +864,7 @@ export function getSimulatorsData({
icône: '🗓',
tracking: 'impot-societe',
path: sitePaths.simulateurs.is,
iframe: 'impot-societe',
iframePath: 'impot-societe',
meta: {
title: t('pages.simulateurs.is.meta.title', 'Impôt sur les sociétés'),
description: t(

View File

@ -340,7 +340,7 @@ function formatMonth(date: string | Date) {
}
function getChapter2(s: SimulatorData[keyof SimulatorData]): Chapter2 | '' {
if (s.iframe === 'pamc') {
if (s.iframePath === 'pamc') {
return 'PAM'
}
if (!s.tracking) {

View File

@ -33,8 +33,8 @@ function IntegrationCustomizer() {
const integrableModuleNames = useMemo(
() =>
Object.values(simulators)
.filter((s) => s.iframe && !s.private)
.map((s) => s.iframe),
.filter((s) => s.iframePath && !s.private)
.map((s) => s.iframePath),
[simulators]
)
const defaultModuleFromUrl =