diff --git a/src/pages/XRSession.tsx b/src/pages/XRSession.tsx
index de6f020..2c06754 100644
--- a/src/pages/XRSession.tsx
+++ b/src/pages/XRSession.tsx
@@ -10,11 +10,23 @@ import { ArrowLeft, Move, RotateCw, QrCode, Download, Crosshair } from 'lucide-r
import { Button } from '@/components/ui/button';
import { generateMarkerDownloadURL } from '@/lib/trackingMarker';
+// --- Diagnóstico XR ---
+console.log('[XR] Inicializando store...');
+console.log('[XR] navigator.xr disponível:', !!navigator.xr);
+if (navigator.xr) {
+ navigator.xr.isSessionSupported('immersive-ar').then((supported) => {
+ console.log('[XR] immersive-ar suportado:', supported);
+ }).catch((err) => {
+ console.error('[XR] Erro ao checar suporte AR:', err);
+ });
+}
+
// --- XR Store at MODULE level (required by Quest 3 browser) ---
const store = createXRStore({
hand: { left: true, right: true },
controller: { left: true, right: true },
});
+console.log('[XR] Store criado com sucesso');
// ─── XRModel ───────────────────────────────────────────
function XRModel({ url }: { url: string }) {
@@ -160,13 +172,17 @@ const XRSession = () => {
// Listen for XR session state changes
useEffect(() => {
+ console.log('[XR] Subscribing to store state changes');
const unsubscribe = store.subscribe((state) => {
+ console.log('[XR] Store state changed — session:', !!state.session, 'mode:', state.mode);
const session = state.session;
if (session && !inXR) {
+ console.log('[XR] ✅ Sessão AR ativa! Features:', (session as any).enabledFeatures);
setInXR(true);
setAnchorMode('manual');
toast.success('Sessão AR iniciada!');
session.addEventListener('end', () => {
+ console.log('[XR] ❌ Sessão AR encerrada');
setInXR(false);
setAnchorMode('manual');
});
@@ -208,7 +224,7 @@ const XRSession = () => {
Marcador QR
{/* CRITICAL: Direct call without async wrapper to preserve user gesture */}
-