diff --git a/packages/ui/src/components/activite.stories_snapshots_NotLogged.html b/packages/ui/src/components/activite.stories_snapshots_NotLogged.html index 089834fad25181c6ab99049ae9c154ff1051fd91..d8ba118a4ed62c4a10fc1b45a13b637b8da9ad30 100644 --- a/packages/ui/src/components/activite.stories_snapshots_NotLogged.html +++ b/packages/ui/src/components/activite.stories_snapshots_NotLogged.html @@ -1,3 +1,3 @@ <div class="fr-alert fr-alert--info fr-alert--sm"> - <p>Vous n’avez pas accès à cette page, veuillez vous connecter</p> + <p>Vous n'avez pas accès à cette page, veuillez vous connecter</p> </div> \ No newline at end of file diff --git a/packages/ui/src/components/activite.stories_snapshots_Unauthorized.html b/packages/ui/src/components/activite.stories_snapshots_Unauthorized.html index 3cb9a6a8f236e500a75b20d5e4d8c4f93300b3f7..cd58ec1b3e3c5fe996dd7dcae9da060392a20f96 100644 --- a/packages/ui/src/components/activite.stories_snapshots_Unauthorized.html +++ b/packages/ui/src/components/activite.stories_snapshots_Unauthorized.html @@ -1,3 +1,3 @@ <div class="fr-alert fr-alert--error fr-alert--sm"> - <p>Erreur: vous n’avez pas le droit d’accéder à ce contenu</p> + <p>Erreur: vous n'avez pas le droit d’accéder à ce contenu</p> </div> \ No newline at end of file diff --git a/packages/ui/src/components/activites.stories_snapshots_Forbidden.html b/packages/ui/src/components/activites.stories_snapshots_Forbidden.html index 3cb9a6a8f236e500a75b20d5e4d8c4f93300b3f7..cd58ec1b3e3c5fe996dd7dcae9da060392a20f96 100644 --- a/packages/ui/src/components/activites.stories_snapshots_Forbidden.html +++ b/packages/ui/src/components/activites.stories_snapshots_Forbidden.html @@ -1,3 +1,3 @@ <div class="fr-alert fr-alert--error fr-alert--sm"> - <p>Erreur: vous n’avez pas le droit d’accéder à ce contenu</p> + <p>Erreur: vous n'avez pas le droit d’accéder à ce contenu</p> </div> \ No newline at end of file diff --git a/packages/ui/src/components/activites.stories_snapshots_NotConnected.html b/packages/ui/src/components/activites.stories_snapshots_NotConnected.html index 089834fad25181c6ab99049ae9c154ff1051fd91..d8ba118a4ed62c4a10fc1b45a13b637b8da9ad30 100644 --- a/packages/ui/src/components/activites.stories_snapshots_NotConnected.html +++ b/packages/ui/src/components/activites.stories_snapshots_NotConnected.html @@ -1,3 +1,3 @@ <div class="fr-alert fr-alert--info fr-alert--sm"> - <p>Vous n’avez pas accès à cette page, veuillez vous connecter</p> + <p>Vous n'avez pas accès à cette page, veuillez vous connecter</p> </div> \ No newline at end of file diff --git a/packages/ui/src/components/error.stories_snapshots_Forbidden.html b/packages/ui/src/components/error.stories_snapshots_Forbidden.html index 089834fad25181c6ab99049ae9c154ff1051fd91..d8ba118a4ed62c4a10fc1b45a13b637b8da9ad30 100644 --- a/packages/ui/src/components/error.stories_snapshots_Forbidden.html +++ b/packages/ui/src/components/error.stories_snapshots_Forbidden.html @@ -1,3 +1,3 @@ <div class="fr-alert fr-alert--info fr-alert--sm"> - <p>Vous n’avez pas accès à cette page, veuillez vous connecter</p> + <p>Vous n'avez pas accès à cette page, veuillez vous connecter</p> </div> \ No newline at end of file diff --git a/packages/ui/src/components/error.stories_snapshots_NotConnected.html b/packages/ui/src/components/error.stories_snapshots_NotConnected.html index 3cb9a6a8f236e500a75b20d5e4d8c4f93300b3f7..cd58ec1b3e3c5fe996dd7dcae9da060392a20f96 100644 --- a/packages/ui/src/components/error.stories_snapshots_NotConnected.html +++ b/packages/ui/src/components/error.stories_snapshots_NotConnected.html @@ -1,3 +1,3 @@ <div class="fr-alert fr-alert--error fr-alert--sm"> - <p>Erreur: vous n’avez pas le droit d’accéder à ce contenu</p> + <p>Erreur: vous n'avez pas le droit d’accéder à ce contenu</p> </div> \ No newline at end of file diff --git a/packages/ui/src/components/error.tsx b/packages/ui/src/components/error.tsx index 57815d30c9efa533df0108306748d3d86c97fd50..c8059682644d69de9f44f54ad6864f67a6864ce8 100644 --- a/packages/ui/src/components/error.tsx +++ b/packages/ui/src/components/error.tsx @@ -9,8 +9,8 @@ interface CaminoAccessErrorProps { export const CaminoAccessError: FunctionalComponent<CaminoAccessErrorProps> = props => { if (isNotNullNorUndefined(props.user)) { - return <Alert small={true} title="Erreur: vous n’avez pas le droit d’accéder à ce contenu" type="error" /> + return <Alert small={true} title="Erreur: vous n'avez pas le droit d’accéder à ce contenu" type="error" /> } else { - return <Alert small={true} title="Vous n’avez pas accès à cette page, veuillez vous connecter" type="info" /> + return <Alert small={true} title="Vous n'avez pas accès à cette page, veuillez vous connecter" type="info" /> } } diff --git a/packages/ui/src/components/titre.stories.tsx b/packages/ui/src/components/titre.stories.tsx index ac898ae7a008088a26f333cbe023379ee1a76068..2e99ac71900366e15a8d3efe15507ed2bf4c8a5d 100644 --- a/packages/ui/src/components/titre.stories.tsx +++ b/packages/ui/src/components/titre.stories.tsx @@ -14,6 +14,8 @@ import { Entreprise, entrepriseIdValidator } from 'camino-common/src/entreprise' import { titreIdValidator, titreSlugValidator, TitreIdOrSlug } from 'camino-common/src/validators/titres' import { ZERO_KM2 } from 'camino-common/src/number' import { CaminoRouter } from '@/typings/vue-router' +import { CaminoHttpError } from '@/api/client-rest' +import { HTTP_STATUS } from 'camino-common/src/http' const meta: Meta = { title: 'Components/Titre', @@ -814,3 +816,39 @@ export const TitreAvecUnOctroiEnConstructionEtUnTravaux: StoryFn = () => ( titreIdOrSlug={titre.id} /> ) + +export const NonConnecteTitreNotFound: StoryFn = () => ( + <PureTitre + entreprises={entreprises} + currentDate={caminoDateValidator.parse('2024-03-09')} + currentDemarcheSlug={demarcheSlugValidator.parse('m-cx-lenoncourt-1968-exp02')} + initTab="points" + user={undefined} + router={routerPushMock} + apiClient={{ + ...apiClient, + getTitreById: (_: TitreIdOrSlug) => { + return Promise.reject(new CaminoHttpError('Plop', HTTP_STATUS.NOT_FOUND)) + }, + }} + titreIdOrSlug={titreIdValidator.parse('s7RvqvCAgKs4DxkQBYV93cVx')} + /> +) + +export const ConnecteTitreNotFound: StoryFn = () => ( + <PureTitre + entreprises={entreprises} + currentDate={caminoDateValidator.parse('2024-03-09')} + currentDemarcheSlug={demarcheSlugValidator.parse('m-cx-lenoncourt-1968-exp02')} + initTab="points" + user={{ ...testBlankUser, role: 'defaut' }} + router={routerPushMock} + apiClient={{ + ...apiClient, + getTitreById: (_: TitreIdOrSlug) => { + return Promise.reject(new CaminoHttpError('Plop', HTTP_STATUS.NOT_FOUND)) + }, + }} + titreIdOrSlug={titreIdValidator.parse('s7RvqvCAgKs4DxkQBYV93cVx')} + /> +) diff --git a/packages/ui/src/components/titre.stories_snapshots_ConnecteTitreNotFound.html b/packages/ui/src/components/titre.stories_snapshots_ConnecteTitreNotFound.html new file mode 100644 index 0000000000000000000000000000000000000000..b797be1479cb07422a6008a0a9f39ee01086c41c --- /dev/null +++ b/packages/ui/src/components/titre.stories_snapshots_ConnecteTitreNotFound.html @@ -0,0 +1,9 @@ +<div> + <div class="" style="display: flex; justify-content: center;"> + <!----> + <div class="fr-alert fr-alert--error" role="alert"> + <p class="fr-alert__title fr-h4">Titre non trouvé</p>Soit le titre n'existe pas, soit vous n'avez pas les droits d'y accéder + </div> + <!----> + </div> +</div> \ No newline at end of file diff --git a/packages/ui/src/components/titre.stories_snapshots_NonConnecteTitreNotFound.html b/packages/ui/src/components/titre.stories_snapshots_NonConnecteTitreNotFound.html new file mode 100644 index 0000000000000000000000000000000000000000..ce22ee69e6893eb99dd915b17982ef87274fc47f --- /dev/null +++ b/packages/ui/src/components/titre.stories_snapshots_NonConnecteTitreNotFound.html @@ -0,0 +1,9 @@ +<div> + <div class="" style="display: flex; justify-content: center;"> + <!----> + <div class="fr-alert fr-alert--error" role="alert"> + <p class="fr-alert__title fr-h4">Titre non trouvé</p>Connectez vous et re-essayez + </div> + <!----> + </div> +</div> \ No newline at end of file diff --git a/packages/ui/src/components/titre.tsx b/packages/ui/src/components/titre.tsx index 311cb2146609afb99ce574f216209d90c9d6ef46..03355672b726a0c225a07f267ce8de0042da74dd 100644 --- a/packages/ui/src/components/titre.tsx +++ b/packages/ui/src/components/titre.tsx @@ -2,7 +2,7 @@ import { computed, defineComponent, onMounted, ref, watch, inject } from 'vue' import { useRouter } from 'vue-router' import { LoadingElement } from './_ui/functional-loader' import { demarcheEnregistrementDemandeDateFind, DemarcheEtapeFondamentale, DemarcheSlug, demarcheSlugValidator } from 'camino-common/src/demarche' -import { AsyncData } from '@/api/client-rest' +import { AsyncData, CaminoHttpError } from '@/api/client-rest' import { User, isAdministration, isEntrepriseOrBureauDEtude, isSuper } from 'camino-common/src/roles' import { capitalize } from 'camino-common/src/strings' import { TitresTypes } from 'camino-common/src/static/titresTypes' @@ -45,6 +45,7 @@ import { DemarchesConsentement } from './titre/demarche-consentement' import { useState } from '@/utils/vue-tsx-utils' import { isMachineWithConsentement, machineIdFind } from 'camino-common/src/machines' import { InitialSort } from './_ui/table' +import { HTTP_STATUS } from 'camino-common/src/http' const activitesSort: InitialSort<string> = { colonne: activitesColonneIdAnnee, @@ -177,9 +178,16 @@ export const PureTitre = defineComponent<Props>(props => { } } catch (e: any) { console.error('error', e) - titreData.value = { - status: 'ERROR', - message: e.message ?? "Une erreur s'est produite", + if (e instanceof CaminoHttpError && e.statusCode === HTTP_STATUS.NOT_FOUND) { + titreData.value = { + status: 'NEW_ERROR', + error: { message: 'Titre non trouvé', detail: isNullOrUndefined(props.user) ? 'Connectez vous et re-essayez' : "Soit le titre n'existe pas, soit vous n'avez pas les droits d'y accéder" }, + } + } else { + titreData.value = { + status: 'ERROR', + message: e.message ?? "Une erreur s'est produite", + } } } } diff --git a/packages/ui/src/components/utilisateurs.stories_snapshots_Forbidden.html b/packages/ui/src/components/utilisateurs.stories_snapshots_Forbidden.html index 3cb9a6a8f236e500a75b20d5e4d8c4f93300b3f7..cd58ec1b3e3c5fe996dd7dcae9da060392a20f96 100644 --- a/packages/ui/src/components/utilisateurs.stories_snapshots_Forbidden.html +++ b/packages/ui/src/components/utilisateurs.stories_snapshots_Forbidden.html @@ -1,3 +1,3 @@ <div class="fr-alert fr-alert--error fr-alert--sm"> - <p>Erreur: vous n’avez pas le droit d’accéder à ce contenu</p> + <p>Erreur: vous n'avez pas le droit d’accéder à ce contenu</p> </div> \ No newline at end of file diff --git a/packages/ui/src/components/utilisateurs.stories_snapshots_NotConnected.html b/packages/ui/src/components/utilisateurs.stories_snapshots_NotConnected.html index 089834fad25181c6ab99049ae9c154ff1051fd91..d8ba118a4ed62c4a10fc1b45a13b637b8da9ad30 100644 --- a/packages/ui/src/components/utilisateurs.stories_snapshots_NotConnected.html +++ b/packages/ui/src/components/utilisateurs.stories_snapshots_NotConnected.html @@ -1,3 +1,3 @@ <div class="fr-alert fr-alert--info fr-alert--sm"> - <p>Vous n’avez pas accès à cette page, veuillez vous connecter</p> + <p>Vous n'avez pas accès à cette page, veuillez vous connecter</p> </div> \ No newline at end of file