diff --git a/src/components/three/XRHudInWorld.tsx b/src/components/three/XRHudInWorld.tsx index f66c88a..02071e1 100644 --- a/src/components/three/XRHudInWorld.tsx +++ b/src/components/three/XRHudInWorld.tsx @@ -582,3 +582,67 @@ function WebXRTab() { ); } + +function CaptureTab() { + const rec = useCanvasRecorder(); + const addScreenshot = useModelStore((s) => s.addScreenshot); + + const onPhoto = () => { + const dataUrl = captureScreenshot(); + if (dataUrl) addScreenshot(dataUrl); + }; + + const statusColor = + rec.status === 'recording' ? '#dc2626' : + rec.status === 'paused' ? '#f59e0b' : '#94a3b8'; + const statusLabel = + rec.status === 'recording' ? `● REC ${formatElapsed(rec.elapsedMs)}` : + rec.status === 'paused' ? `❚❚ PAUSADO ${formatElapsed(rec.elapsedMs)}` : + '○ Pronto para gravar'; + + return ( + + + Capture fotos ou grave a sessão AR (vídeo .webm baixado ao parar). + + + + {statusLabel} + + + {/* Foto */} + + + {/* Iniciar / Parar gravação */} + {rec.status === 'idle' ? ( + + ) : ( + + )} + + {/* Pause / Resume */} + {rec.status === 'recording' && ( + + )} + {rec.status === 'paused' && ( + + )} + + + Foto → .png | Vídeo → .webm | Arquivos vão para a pasta Downloads do navegador. + + + ); +}