diff --git a/src/components/astro/ColCentre.astro b/src/components/astro/ColCentre.astro index 1f1f25b..41e1aec 100644 --- a/src/components/astro/ColCentre.astro +++ b/src/components/astro/ColCentre.astro @@ -3,8 +3,7 @@ // BAS : iframe carte AEP + scroll articles Substack (PC4). import CarteOWrapper from '../vue/CarteOWrapper.vue'; import ChatbotV2 from '../vue/ChatbotV2.vue'; -import IframeCarteAEP from './IframeCarteAEP.astro'; -import ScrollArticles from './ScrollArticles.astro'; +import EmbedDynamique from '../vue/EmbedDynamique.vue'; ---
@@ -66,12 +65,11 @@ import ScrollArticles from './ScrollArticles.astro'; - -
+ +
- +
-
diff --git a/src/components/astro/ScrollArticles.astro b/src/components/astro/ScrollArticles.astro deleted file mode 100644 index c7b2e6d..0000000 --- a/src/components/astro/ScrollArticles.astro +++ /dev/null @@ -1,72 +0,0 @@ ---- -// PC4 - Liste articles Substack en scroll sous l'iframe carte. -// V1 placeholder data en dur ; PC6 (journal n8n) remplacera par fetch journal.json filtre tag #politique. -const articles = [ - { - date: '2026-04-28', - titre: 'Cap sur l\'autonomie : retour sur 6 mois de chantier', - url: 'https://transformations.substack.com/p/cap-autonomie', - }, - { - date: '2026-04-15', - titre: 'Le commun comme infrastructure', - url: 'https://transformations.substack.com/p/commun-infrastructure', - }, - { - date: '2026-03-30', - titre: 'Architecte ou operateur de bifurcation ?', - url: 'https://transformations.substack.com/p/architecte-bifurcation', - }, - { - date: '2026-03-12', - titre: 'Reseaux AEP : pourquoi la coordination est politique', - url: 'https://transformations.substack.com/p/aep-coordination', - }, - { - date: '2026-02-26', - titre: 'Sortir du sauveur, entrer dans le compagnon', - url: 'https://transformations.substack.com/p/sauveur-compagnon', - }, - { - date: '2026-02-08', - titre: 'Petit manifeste contre l\'expert isole', - url: 'https://transformations.substack.com/p/contre-expert-isole', - }, - { - date: '2026-01-22', - titre: 'Ce que la commande publique fait a la pensee', - url: 'https://transformations.substack.com/p/commande-publique', - }, - // TODO PC6 : remplacer par fetch journal.json filtre tag #politique. -]; ---- -
-

- Derniers articles ; Substack -

- - - Voir tous les articles → - -
diff --git a/src/components/vue/EmbedDynamique.vue b/src/components/vue/EmbedDynamique.vue new file mode 100644 index 0000000..f4b289a --- /dev/null +++ b/src/components/vue/EmbedDynamique.vue @@ -0,0 +1,181 @@ + + + diff --git a/src/components/vue/JournalList.vue b/src/components/vue/JournalList.vue index f0e342d..20f0485 100644 --- a/src/components/vue/JournalList.vue +++ b/src/components/vue/JournalList.vue @@ -77,6 +77,15 @@ onUnmounted(() => { window.removeEventListener('platform-filter-change', onPlatformChange as EventListener) }) +const onItemClick = (item: JournalItem, e: MouseEvent) => { + if (e.metaKey || e.ctrlKey) { + window.open(item.url, '_blank', 'noopener') + return + } + e.preventDefault() + window.dispatchEvent(new CustomEvent('journal-item-click', { detail: { item } })) +} + const visibleItems = computed(() => { const keys = Object.keys(filters.value) let filtered: JournalItem[] @@ -156,6 +165,7 @@ const platformLabel = (p: string) => { target="_blank" rel="noopener noreferrer" class="block group" + @click="onItemClick(item, $event)" >