diff --git a/Dockerfile.business b/Dockerfile.business index 9f0292e..e133730 100644 --- a/Dockerfile.business +++ b/Dockerfile.business @@ -101,25 +101,113 @@ 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 { useEffect } from 'react'; +import { useEffect, useState } from 'react'; export default function TeamPage() { + const [content, setContent] = useState(''); + useEffect(() => { - // Redirection immédiate vers team.html - // Cela évite les conflits avec les scripts JavaScript - if (typeof window !== 'undefined') { - console.log('🔄 TEAM PAGE: Redirection vers /team.html'); - window.location.replace('/team.html'); - } + // Charger le contenu de team.html directement + console.log('🔄 TEAM PAGE: Chargement direct du contenu team.html'); + + fetch('/team.html') + .then(response => { + console.log('📡 TEAM PAGE: Réponse team.html:', response.status); + if (!response.ok) throw new Error(`HTTP ${response.status}`); + return response.text(); + }) + .then(html => { + console.log('✅ TEAM PAGE: Contenu team.html chargé, injection dans DOM'); + setContent(html); + + // Injecter le HTML dans le document après un court délai + setTimeout(() => { + const tempDiv = document.createElement('div'); + tempDiv.innerHTML = html; + + // Extraire et exécuter les scripts + const scripts = tempDiv.querySelectorAll('script'); + scripts.forEach(script => { + if (script.src) { + // Script externe - charger dynamiquement + const newScript = document.createElement('script'); + newScript.src = script.src; + document.head.appendChild(newScript); + console.log('🔧 TEAM PAGE: Script externe chargé:', script.src); + } else { + // Script inline - exécuter directement + try { + eval(script.textContent); + console.log('▶️ TEAM PAGE: Script inline exécuté'); + } catch (error) { + console.error('❌ TEAM PAGE: Erreur script inline:', error); + } + } + }); + + // Injecter le CSS + const styles = tempDiv.querySelectorAll('style'); + styles.forEach(style => { + document.head.appendChild(style.cloneNode(true)); + }); + + // Injecter le contenu HTML (sans les scripts/styles déjà traités) + const bodyContent = tempDiv.querySelector('body'); + if (bodyContent) { + document.body.innerHTML = bodyContent.innerHTML; + console.log('✅ TEAM PAGE: Contenu HTML injecté'); + } + }, 100); + }) + .catch(error => { + console.error('❌ TEAM PAGE: Erreur chargement team.html:', error); + setContent(` +
+

Erreur de chargement

+

Impossible de charger les visualisations équipe.

+

Erreur: ${error.message}

+

Retour à l'accueil

+
+ `); + }); }, []); - // Ne rien rendre - la redirection va prendre le relais - return null; + // Pendant le chargement + if (!content) { + return ( +
+
+ Chargement des visualisations équipe... +
+
+ ); + } + + // Rendre le contenu chargé + return ( +
+ ); } EOF RUN echo "✅ Page team.tsx créée (version ultra-simplifiée)" && \ echo "🔍 VÉRIFICATION: Contenu de team.tsx créé:" && \ - cat .techradar/src/pages/team.tsx + cat .techradar/src/pages/team.tsx && \ + echo "🔍 VÉRIFICATION: team.html dans .techradar/public/:" && \ + ls -la .techradar/public/team.html # Créer aussi un fichier HTML statique /team/index.html pour garantir l'accès RUN mkdir -p .techradar/public/team && \ @@ -502,6 +590,8 @@ RUN if [ -d "out" ]; then \ else \ echo "⚠️ public/team-visualization-data.json introuvable"; \ fi && \ + echo "🔍 VÉRIFICATION: team.html dans out/:" && \ + ls -la out/team.html 2>/dev/null || echo "❌ team.html absent de out/" && \ echo "" && \ echo "📁 Vérification finale dans out/:" && \ ls -la out/ | grep -E "(team\.html|team-visualization)" && echo "✅ Fichiers team présents dans out/" || echo "⚠️ Fichiers team non trouvés dans out/"; \