Refacto Plan

pull/2573/head
Jérémy Rialland 2023-04-27 14:42:22 +02:00 committed by Jérémy Rialland
parent 25d06e5791
commit 7940d1f12e
2 changed files with 140 additions and 163 deletions

View File

@ -1,4 +1,5 @@
import { Trans, useTranslation } from 'react-i18next'
import styled from 'styled-components'
import { H1 } from '@/design-system/typography/heading'
import { Link } from '@/design-system/typography/link'
@ -10,9 +11,7 @@ import { TrackPage } from '../components/ATInternetTracking'
import Meta from '../components/utils/Meta'
export default function Plan() {
const { absoluteSitePaths } = useSitePaths()
const { t } = useTranslation()
const simulatorData = useSimulatorsData()
return (
<>
@ -29,166 +28,141 @@ export default function Plan() {
<TrackPage chapter1="navigation" name="plan-du-site" />
<Ul size="XL" noMarker>
<Li>
<Link to={absoluteSitePaths.index}>
<Trans>Page d'accueil</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.assistants['choix-du-statut'].index}>
<Trans>Créer une entreprise</Trans>
</Link>
<Ul>
<Li>
<Link to={absoluteSitePaths.assistants['choix-du-statut'].après}>
<Trans>Après la création</Trans>
</Link>
</Li>
<Li>
<Link
to={
absoluteSitePaths.assistants['choix-du-statut'].guideStatut
.index
}
>
<Trans>Choix du statut juridique</Trans>
</Link>
</Li>
</Ul>
</Li>
<Li>
<Link to={absoluteSitePaths.assistants.index}>
<Trans>Gérer mon activité</Trans>
</Link>
<Ul>
<Li>
<Link to={absoluteSitePaths.assistants.embaucher}>
<Trans>Embaucher</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.assistants.sécuritéSociale}>
<Trans>Protection sociale</Trans>
</Link>
</Li>
<Li>
<Link
to={
absoluteSitePaths.assistants[
'déclaration-charges-sociales-indépendant'
]
}
>
<Trans>
Assistant à la détermination des charges sociales déductibles
</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.assistants.formulaireMobilité}>
<Trans>Demande de mobilité internationale</Trans>
</Link>
</Li>
</Ul>
</Li>
<Li>
<Link to={absoluteSitePaths.simulateurs.index}>
<Trans>Simulateurs disponibles</Trans>
</Link>
<Ul>
{Object.entries(absoluteSitePaths.simulateurs)
.filter(([key]) => key in simulatorData)
.map(([simulateurKey, simulateurPath]: [string, string]) => {
return (
<Li key={`list-item-${simulateurKey}`}>
<Link to={simulateurPath}>
{
simulatorData[
simulateurKey as keyof typeof simulatorData
].title
}
</Link>
</Li>
)
})}
<Li key="list-item-comparaison">
<Link to={absoluteSitePaths.simulateurs.comparaison}>
<Trans>Assistant au choix du statut juridique</Trans>
</Link>
</Li>
<Li key="list-item-economie-collaborative">
<Link
to={absoluteSitePaths.assistants.économieCollaborative.index}
>
<Trans>
Assistant à la déclaration des revenus des plateformes en
ligne
</Trans>
</Link>
</Li>
</Ul>
</Li>
<Li>
<Link to={absoluteSitePaths.nouveautés}>
<Trans>Nouveautés</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.budget}>
<Trans>Budget</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.accessibilité}>
<Trans>Accessibilité</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.stats}>
<Trans>Statistiques</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.développeur.index}>
<Trans>Outils pour les développeurs</Trans>
</Link>
<Ul>
<Li key="list-item-développeur-api">
<Link to={absoluteSitePaths.développeur.api}>
<Trans>API REST de simulation</Trans>
</Link>
</Li>
<Li key="list-item-développeur-iframe">
<Link to={absoluteSitePaths.développeur.iframe}>
<Trans>Intégrer le module Web</Trans>
</Link>
</Li>
<Li key="list-item-développeur-library">
<Link to={absoluteSitePaths.développeur.library}>
<Trans>
Utiliser les calculs des simulateurs dans votre application
</Trans>
</Link>
</Li>
<Li key="list-item-développeur-spreadsheet">
<Link to={absoluteSitePaths.développeur.spreadsheet}>
<Trans>Utiliser avec un tableur</Trans>
</Link>
</Li>
</Ul>
</Li>
<Li>
<Link to={absoluteSitePaths.documentation.index}>
<Trans>Documentation</Trans>
</Link>
</Li>
<PlanContent />
</Ul>
</>
)
}
export const PlanContent = () => {
const { absoluteSitePaths } = useSitePaths()
const simulatorData = useSimulatorsData()
return (
<>
<Li>
<Link to={absoluteSitePaths.index}>
<Trans>Page d'accueil</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.nouveautés}>
<Trans>Nouveautés</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.simulateursEtAssistants}>
<Trans>Simulateurs et Assistants</Trans>
</Link>
<StyledUl>
{Object.entries(simulatorData)
.filter(
([, { pathId }]) =>
pathId.startsWith('simulateurs') &&
(!pathId.startsWith('simulateurs.profession-libérale.') ||
pathId === 'simulateurs.profession-libérale.index')
)
.map(([simulateurKey, { path, title }]) => {
return (
<Li key={`list-item-${simulateurKey}`}>
<Link to={path}>{title}</Link>
</Li>
)
})}
{Object.entries(simulatorData)
.filter(
([, { pathId }]) =>
pathId.startsWith('assistants') &&
pathId !== 'assistants.pour-mon-entreprise.index'
)
.map(([simulateurKey, { path, title }]) => {
return (
<Li key={`list-item-${simulateurKey}`}>
<Link to={path}>{title}</Link>
</Li>
)
})
.reverse()}
<Li>
<Link to={absoluteSitePaths.assistants.embaucher}>
<Trans>Les formalités pour embaucher</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.assistants.sécuritéSociale}>
<Trans>Protection sociale</Trans>
</Link>
</Li>
</StyledUl>
</Li>
<Li>
<Link to={absoluteSitePaths.documentation.index}>
<Trans>Documentation</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.développeur.index}>
<Trans>Outils pour les développeurs</Trans>
</Link>
<StyledUl>
<Li>
<Link to={absoluteSitePaths.développeur.iframe}>
<Trans>Intégrer le module Web</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.développeur.api}>
<Trans>API REST de simulation</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.développeur.spreadsheet}>
<Trans>Utiliser avec un tableur</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.développeur.library}>
<Trans>
Utiliser les calculs des simulateurs dans votre application
</Trans>
</Link>
</Li>
</StyledUl>
</Li>
<Li>
<Link to={absoluteSitePaths.accessibilité}>
<Trans>Accessibilité</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.stats}>
<Trans>Statistiques</Trans>
</Link>
</Li>
<Li>
<Link to={absoluteSitePaths.budget}>
<Trans>Budget</Trans>
</Link>
</Li>
</>
)
}
const StyledUl = styled(Ul)`
margin-top: ${({ theme }) => theme.spacings.xs};
`

View File

@ -26,7 +26,10 @@ export default function SimulateursEtAssistants() {
const { t } = useTranslation()
const { absoluteSitePaths } = useSitePaths()
const simulators = useSimulatorsData()
const titre = t('pages.simulateurs.accueil.titre', 'Simulateurs disponibles')
const titre = t(
'pages.simulateurs.accueil.titre',
'Simulateurs et Assistants'
)
return (
<>
@ -35,7 +38,7 @@ export default function SimulateursEtAssistants() {
title={titre}
description={t(
'pages.simulateurs.accueil.description',
'Tous les simulateurs sur ce site sont maintenus à jour avec les dernières évolutions législatives.'
'Tous les simulateurs et assistants sur ce site sont maintenus à jour avec les dernières évolutions législatives.'
)}
ogImage={simulatorSvg}
/>