'use client' import { useEffect, useState } from 'react' import type { ModelStats } from './SceneViewer' interface ModelViewerProps { url: string assetUrls: Record filename: string size: string } export default function ModelViewer({ url, assetUrls, filename, size }: ModelViewerProps) { const canPreview = filename.toLowerCase().endsWith('.gltf') const [stats, setStats] = useState(null) const [Scene, setScene] = useState onStatsReady: (stats: ModelStats) => void }> | null>(null) useEffect(() => { if (!canPreview) return let cancel = false import('./SceneViewer').then((mod) => { if (!cancel) setScene(() => mod.default) }) return () => { cancel = true } }, [canPreview]) if (!canPreview) { return (

La preview 3D locale n'est pas disponible pour les dossiers model.gltf avec fichiers associes.

) } if (!Scene) { return (
) } return (
{filename} {size}
{stats && (
Draw calls {stats.drawCalls} Meshes {stats.meshes} Triangles {stats.triangles.toLocaleString('fr-FR')} Materials {stats.materials} Textures {stats.textures}
)}
) }