'use client'; import React, { useState } from 'react'; import { useParams, useRouter } from 'next/navigation'; import { Card } from 'primereact/card'; import { Button } from 'primereact/button'; import { DataTable } from 'primereact/datatable'; import { Column } from 'primereact/column'; import { Avatar } from 'primereact/avatar'; import { Tag } from 'primereact/tag'; import { Badge } from 'primereact/badge'; interface MembreEquipe { id: number; nom: string; prenom: string; role: string; specialite: string; email: string; telephone: string; dateAffectation: string; statut: string; } export default function ChantierEquipePage() { const params = useParams(); const router = useRouter(); const id = params.id as string; const [membres] = useState([ { id: 1, nom: 'Dupont', prenom: 'Jean', role: 'Chef de chantier', specialite: 'Gestion', email: 'jean.dupont@btpxpress.fr', telephone: '06 12 34 56 78', dateAffectation: '2025-01-01', statut: 'Actif' }, { id: 2, nom: 'Martin', prenom: 'Marie', role: 'Maçon', specialite: 'Maçonnerie', email: 'marie.martin@btpxpress.fr', telephone: '06 23 45 67 89', dateAffectation: '2025-01-05', statut: 'Actif' } ]); const nomBodyTemplate = (rowData: MembreEquipe) => { return (
{rowData.prenom} {rowData.nom}
{rowData.role}
); }; const specialiteBodyTemplate = (rowData: MembreEquipe) => { return ; }; const statutBodyTemplate = (rowData: MembreEquipe) => { const severity = rowData.statut === 'Actif' ? 'success' : 'danger'; return ; }; const actionsBodyTemplate = () => { return (
); }; return (
{/* Statistiques équipe */}
Total membres
{membres.length}
Membres actifs
{membres.filter(m => m.statut === 'Actif').length}
Spécialités
{new Set(membres.map(m => m.specialite)).size}
Chef de chantier
{membres.filter(m => m.role === 'Chef de chantier').length}
{/* Liste des membres */}
); }