'use client'; import React, { useState, useEffect } from 'react'; import { useParams, useRouter } from 'next/navigation'; import { Card } from 'primereact/card'; import { TabView, TabPanel } from 'primereact/tabview'; import { Button } from 'primereact/button'; import { Tag } from 'primereact/tag'; import { Calendar } from 'primereact/calendar'; import { DataTable } from 'primereact/datatable'; import { Column } from 'primereact/column'; import { Timeline } from 'primereact/timeline'; import { materielService } from '@/services/api'; import type { Materiel } from '@/types/btp'; export default function MaterielDetailsPage() { const params = useParams(); const router = useRouter(); const id = params.id as string; const [materiel, setMateriel] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { if (id) { loadMateriel(); } }, [id]); const loadMateriel = async () => { try { setLoading(true); const data = await materielService.getById(id); setMateriel(data); } catch (error) { console.error('Erreur lors du chargement du matériel:', error); // L'intercepteur API gérera automatiquement la redirection si 401 } finally { setLoading(false); } }; const formatMontant = (montant: number) => { return new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR' }).format(montant); }; const getStatutSeverity = (statut: string) => { switch (statut?.toUpperCase()) { case 'DISPONIBLE': return 'success'; case 'EN_UTILISATION': return 'warning'; case 'EN_MAINTENANCE': return 'info'; case 'HORS_SERVICE': return 'danger'; default: return 'info'; } }; if (loading || !materiel) { return
Chargement...
; } return (

Informations

Type: {materiel.type}
Marque: {materiel.marque || 'N/A'}
Modèle: {materiel.modele || 'N/A'}
Date d'achat: {materiel.dateAchat || 'N/A'}
Valeur d'achat: {formatMontant(materiel.valeurAchat || 0)}
Coût d'utilisation: {formatMontant(materiel.coutUtilisation || 0)}

Disponibilité

Les réservations et maintenances de ce matériel seront affichées ici une fois la relation établie dans le backend.

); }