- 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
89 lines
2.6 KiB
Bash
Executable File
89 lines
2.6 KiB
Bash
Executable File
#!/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
|
||
|