Files
TechradarDev/scripts/create-team-page.sh
syoul 7bc6c695b8 feat: création page Next.js /team et modification Navigation
- Script create-team-page.sh pour créer team.tsx et modifier Navigation
- Page Next.js qui charge team.html dynamiquement
- Lien Équipe ajouté directement dans le composant Navigation React
- Plus fiable que l'injection JavaScript
2025-12-06 22:14:31 +01:00

89 lines
2.6 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Script pour créer la page Next.js /team et modifier Navigation
TECHRADAR_DIR=".techradar"
TEAM_PAGE="$TECHRADAR_DIR/src/pages/team.tsx"
NAV_FILE="$TECHRADAR_DIR/src/components/Navigation/Navigation.tsx"
# Créer la page team.tsx
if [ ! -f "$TEAM_PAGE" ]; then
mkdir -p "$(dirname "$TEAM_PAGE")"
cat > "$TEAM_PAGE" << 'EOF'
import Head from "next/head";
import { useEffect } from "react";
import { CustomPage } from "@/pages/_app";
const TeamPage: CustomPage = () => {
useEffect(() => {
// Charger le contenu de team.html dans cette page
const loadTeamPage = async () => {
try {
const response = await fetch('/team.html');
if (response.ok) {
const html = await response.text();
const parser = new DOMParser();
const doc = parser.parseFromString(html, 'text/html');
const content = doc.body.innerHTML;
const container = document.getElementById('team-container');
if (container) {
container.innerHTML = content;
// Réexécuter les scripts
const scripts = container.querySelectorAll('script');
scripts.forEach(oldScript => {
const newScript = document.createElement('script');
Array.from(oldScript.attributes).forEach(attr => {
newScript.setAttribute(attr.name, attr.value);
});
newScript.textContent = oldScript.textContent;
oldScript.parentNode?.replaceChild(newScript, oldScript);
});
}
}
} catch (error) {
console.error('Erreur lors du chargement de team.html:', error);
}
};
loadTeamPage();
}, []);
return (
<>
<Head>
<title>Équipe & Technologies - Laplank</title>
</Head>
<div id="team-container" style={{ minHeight: '100vh' }}>
<div style={{ textAlign: 'center', padding: '40px' }}>
<p>Chargement de la page Équipe...</p>
</div>
</div>
</>
);
};
export default TeamPage;
EOF
echo "✅ Page team.tsx créée"
else
echo " Page team.tsx existe déjà"
fi
# Modifier Navigation.tsx pour ajouter le lien
if [ -f "$NAV_FILE" ]; then
if ! grep -q 'href="/team"' "$NAV_FILE"; then
# Ajouter le lien après Overview
sed -i '/href="\/overview"/a\
<li className={styles.item}>\
<Link href="/team">\
<span className={styles.label}>👥 Équipe</span>\
</Link>\
</li>' "$NAV_FILE"
echo "✅ Lien Équipe ajouté au composant Navigation"
else
echo " Lien Équipe déjà présent dans Navigation"
fi
else
echo "⚠️ Navigation.tsx non trouvé"
fi