From b4f6d63f33953da79932a862e0e65c8e3a3fd425 Mon Sep 17 00:00:00 2001 From: Jules Neny Date: Mon, 11 May 2026 20:08:20 +0200 Subject: [PATCH] feat(v13-e): manifeste UX preview centrale (racine) + page /manifeste preserve standalone --- public/data/carte-o.json | 2 +- src/components/astro/ColCentre.astro | 8 +- src/components/astro/ColJournal.astro | 16 ++- src/components/astro/Footer.astro | 14 ++- src/components/vue/ManifesteContent.vue | 156 ++++++++++++++++++++++++ src/components/vue/PreviewArticle.vue | 152 +++++++++++++++-------- 6 files changed, 292 insertions(+), 56 deletions(-) create mode 100644 src/components/vue/ManifesteContent.vue diff --git a/public/data/carte-o.json b/public/data/carte-o.json index f188dfc..3aa3196 100644 --- a/public/data/carte-o.json +++ b/public/data/carte-o.json @@ -1,6 +1,6 @@ { "version": "1.1", - "generatedAt": "2026-05-11T17:59:41.381Z", + "generatedAt": "2026-05-11T18:07:36.883Z", "nodes": [ { "id": "contrat-social-medecine-corps-social", diff --git a/src/components/astro/ColCentre.astro b/src/components/astro/ColCentre.astro index bc898cc..de8a75f 100644 --- a/src/components/astro/ColCentre.astro +++ b/src/components/astro/ColCentre.astro @@ -168,7 +168,9 @@ import PreviewArticle from '../vue/PreviewArticle.vue'; } }; - window.addEventListener('journal-item-click', () => { + // V1.2-P : ouverture preview article via journal-item-click + // V1.3-E : ouverture preview unifiee via preview-open (article OU manifeste) + const openPreview = () => { applyPreviewState(true); // Scroll vers la preview apres mount requestAnimationFrame(() => { @@ -178,7 +180,9 @@ import PreviewArticle from '../vue/PreviewArticle.vue'; grid.scrollTo({ top: Math.max(0, previewTop - 8), behavior: 'smooth' }); } }); - }); + }; + window.addEventListener('journal-item-click', openPreview); + window.addEventListener('preview-open', openPreview); window.addEventListener('preview-close', () => { applyPreviewState(false); }); diff --git a/src/components/astro/ColJournal.astro b/src/components/astro/ColJournal.astro index 037c22b..d835b92 100644 --- a/src/components/astro/ColJournal.astro +++ b/src/components/astro/ColJournal.astro @@ -96,9 +96,10 @@ const categories = [ - + @@ -289,4 +290,17 @@ const categories = [ if (platformFilters['politique']) { dispatchPlatform(platformFilters['politique']); } + + // V1.3-E : intercept clics liens Manifeste -> preview centrale (uniquement sur racine /) + // Tagger les liens [data-manifeste-link] et router vers event 'preview-open' si on est sur /. + // Sinon : laisser la navigation native vers /manifeste. + document.querySelectorAll('a[data-manifeste-link]').forEach((el) => { + el.addEventListener('click', (e) => { + if (window.location.pathname === '/') { + e.preventDefault(); + window.dispatchEvent(new CustomEvent('preview-open', { detail: { type: 'manifeste' } })); + } + // sinon : navigation normale vers /manifeste (fallback SEO + no-JS) + }); + }); diff --git a/src/components/astro/Footer.astro b/src/components/astro/Footer.astro index 147c35c..8d22c7b 100644 --- a/src/components/astro/Footer.astro +++ b/src/components/astro/Footer.astro @@ -7,7 +7,7 @@ @@ -125,4 +125,16 @@ msg.textContent = 'erreur reseau - reessaie plus tard'; } }); + + // V1.3-E : intercept clics liens Manifeste depuis le footer -> preview centrale sur racine. + // Sur /a-propos, /mentions-legales, /manifeste lui-meme : navigation normale. + document.querySelectorAll('a[data-manifeste-link]').forEach((el) => { + el.addEventListener('click', (e) => { + if (window.location.pathname === '/') { + e.preventDefault(); + window.dispatchEvent(new CustomEvent('preview-open', { detail: { type: 'manifeste' } })); + } + // sinon : navigation normale vers /manifeste + }); + }); diff --git a/src/components/vue/ManifesteContent.vue b/src/components/vue/ManifesteContent.vue new file mode 100644 index 0000000..b684c4b --- /dev/null +++ b/src/components/vue/ManifesteContent.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/src/components/vue/PreviewArticle.vue b/src/components/vue/PreviewArticle.vue index 55853e5..24eab0f 100644 --- a/src/components/vue/PreviewArticle.vue +++ b/src/components/vue/PreviewArticle.vue @@ -1,5 +1,14 @@