diff --git a/Dockerfile.business b/Dockerfile.business
index 5656a81..b6ebf07 100644
--- a/Dockerfile.business
+++ b/Dockerfile.business
@@ -98,60 +98,15 @@ RUN echo "đ Comptage des fichiers .md dans .techradar/data/radar" && \
# La page Next.js pour le routing, le HTML statique pour garantir l'affichage
RUN mkdir -p .techradar/src/pages && \
cat > .techradar/src/pages/team.tsx << 'EOF'
-import Head from "next/head";
+export default function TeamPage() {
+ // Version ultra-simple pour éviter les erreurs de compilation
+ if (typeof window !== 'undefined') {
+ // Remplacer immédiatement le contenu par l'iframe
+ document.body.innerHTML = '';
+ }
-const TeamPage = () => {
- // Charger directement l'iframe sans redirection ni layout
- return (
- <>
-
- Ăquipe & Technologies - Laplank
-
-
-
-
-
- >
- );
-};
-
-export default TeamPage;
+ return null; // Ne rien rendre cÎté serveur
+}
EOF
RUN echo "â
Page team.tsx créée (redirige vers /team.html)"
diff --git a/public/strategie-script.js b/public/strategie-script.js
index 736f6d6..bbe35fd 100644
--- a/public/strategie-script.js
+++ b/public/strategie-script.js
@@ -1,10 +1,49 @@
// Script pour la gestion des pages de stratégie
(function() {
- // PROTECTION : Ne pas s'exécuter sur les pages Next.js (qui ont déjà leur propre gestion)
- if (document.querySelector('[data-reactroot]') || window.__NEXT_DATA__) {
+ // PROTECTION ABSOLUE : ArrĂȘter immĂ©diatement si on dĂ©tecte une page Ă©quipe
+ // Cette vĂ©rification doit ĂȘtre la PREMIĂRE chose exĂ©cutĂ©e
+ var isTeamPage = window.location.pathname === '/team' ||
+ window.location.pathname === '/team/' ||
+ window.location.pathname.startsWith('/team/') ||
+ window.location.href.includes('/team');
+
+ if (isTeamPage) {
+ console.log('đ« Script stratĂ©gie BLOQUĂ sur page Ă©quipe - arrĂȘt immĂ©diat');
+ return;
+ }
+
+ // Marquer qu'on n'est pas sur une page équipe
+ window.__notTeamPage = true;
+
+ // PROTECTION : Ne pas interférer avec les pages Next.js
+ function shouldSkipExecution() {
+ // Vérifier les indicateurs Next.js présents dÚs le chargement
+ if (document.querySelector('[data-reactroot]') ||
+ window.__NEXT_DATA__ ||
+ window.next ||
+ document.querySelector('#__next') ||
+ document.querySelector('[data-react-helmet]')) {
+ return true;
+ }
+
+ return false;
+ }
+
+ // Vérifier immédiatement
+ if (shouldSkipExecution()) {
console.log('đ« Script stratĂ©gie dĂ©sactivĂ© sur page Next.js');
return;
}
+
+ // DiffĂ©rer la vĂ©rification au cas oĂč Next.js se charge aprĂšs
+ setTimeout(function() {
+ if (shouldSkipExecution()) {
+ console.log('đ« Script stratĂ©gie dĂ©sactivĂ© aprĂšs dĂ©lai (page Next.js dĂ©tectĂ©e)');
+ // ArrĂȘter toute exĂ©cution en cours
+ if (window.initStrategyTimeout) clearTimeout(window.initStrategyTimeout);
+ return;
+ }
+ }, 100);
// Protection contre Fast Refresh : ignorer les tentatives de hot-reload
// Intercepter et ignorer les requĂȘtes webpack hot-update pour Ă©viter les rechargements en boucle
@@ -811,12 +850,12 @@ Interface de pilotage pour les responsables sécurité des PME.
const path = normalizePath(window.location.pathname);
const hash = window.location.hash;
- // Détection simple - SANS /team car Next.js gÚre cette route
+ // IMPORTANT : Ne jamais gérer /team dans ce script - Next.js s'en charge exclusivement
+ // Détection simple pour les pages HTML pures uniquement
if (hash === '#strategie' || path === '/strategie') showPage('strategie');
else if (hash === '#business' || path === '/business') showPage('business');
else if (hash === '#dataviz' || path === '/dataviz') showPage('dataviz');
else if (hash === '#dataviz-details' || path === '/dataviz-details') showPage('dataviz-details');
- // /team est maintenant géré par Next.js, pas par ce script
}
// VĂ©rifier la route /team IMMĂDIATEMENT au chargement du script (avant Next.js)