diff --git a/CHANGELOG.md b/CHANGELOG.md index 33d06d1..3c0fa3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG +## 0.1.0 [#21](https://github.com/betagouv/aides-simulateur-front/pull/21) + +* Ajout de fonctionnalité. +* Détail : + * Applique un layout dédié aux pages exposées par `iframe` (sans header, footer ni padding) + ### 0.0.2 [#13](https://github.com/betagouv/aides-simulateur-front/pull/13) * Évolution technique. diff --git a/client/layouts/iframe.vue b/client/layouts/iframe.vue new file mode 100644 index 0000000..b7452e6 --- /dev/null +++ b/client/layouts/iframe.vue @@ -0,0 +1,9 @@ + diff --git a/client/middleware/check-iframe-layout.ts b/client/middleware/check-iframe-layout.ts new file mode 100644 index 0000000..caca6d9 --- /dev/null +++ b/client/middleware/check-iframe-layout.ts @@ -0,0 +1,5 @@ +export default defineNuxtRouteMiddleware((to) => { + if (isIframeRoute(to)) { + return setPageLayout('iframe') + } +}) diff --git a/client/pages/simulateurs/[simulateur_id].vue b/client/pages/simulateurs/[simulateur_id].vue index 16180ab..0e2517a 100644 --- a/client/pages/simulateurs/[simulateur_id].vue +++ b/client/pages/simulateurs/[simulateur_id].vue @@ -3,6 +3,10 @@ import { simulateurs, type Simulateur } from '@/data/simulateurs' definePageMeta({ layout: 'default', + middleware: 'check-iframe-layout', + validate ({ params }) { + return simulateurs.some(s => s.id === params.simulateur_id) + } }) const route = useRoute() diff --git a/client/utils/is-iframe-route.ts b/client/utils/is-iframe-route.ts new file mode 100644 index 0000000..2ae70b2 --- /dev/null +++ b/client/utils/is-iframe-route.ts @@ -0,0 +1,8 @@ +import type { RouteLocationNormalizedGeneric } from 'vue-router' + +export function isIframeRoute (route: RouteLocationNormalizedGeneric) { + return ( + route.query.iframe === 'true' + || route.params.iframe === 'true' + ) +} diff --git a/package.json b/package.json index f0039d1..77610b2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "aides-simulateur-front", "type": "module", - "version": "0.0.2", + "version": "0.1.0", "engines": { "node": "22" },