import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { ASSET_STATUS_LABELS, ASSET_STATUSES, type AssetStatus } from '@siop/shared'; import { useAssets } from '@/api/referentiel'; import { usePermissions } from '@/auth/use-permissions'; import { StatutEquipement } from '@/components/statut-equipement'; import { Button } from '@/components/ui/button'; /** Écran 3 des maquettes R1 : inventaire dense du parc. */ export default function PageAscenseurs() { const navigate = useNavigate(); const { data: assets } = useAssets(); const { can } = usePermissions(); const [site, setSite] = useState(''); const [statut, setStatut] = useState<'' | AssetStatus>(''); const tous = assets ?? []; const sites = [...new Set(tous.map((a) => a.siteName))].sort(); const visibles = tous.filter( (a) => (!site || a.siteName === site) && (!statut || a.status === statut), ); const arret = tous.filter((a) => a.status === 'OUT_OF_SERVICE').length; return ( <>
| Appareil | Marque · modèle | Site / emplacement | Catégorie | Statut | Organes |
|---|---|---|---|---|---|
| {a.reference} | {a.brand} {a.model ?? ''} | {a.siteName} {a.locationName !== a.siteName ? ( {a.locationName} ) : null} | {a.categoryName} | {a.componentCount} |