diff --git a/src/pages/XRSession.tsx b/src/pages/XRSession.tsx index 4402bb6..7707b8f 100644 --- a/src/pages/XRSession.tsx +++ b/src/pages/XRSession.tsx @@ -627,17 +627,31 @@ const XRSession = () => { - {/* Floating HUD overlay with all controls */} - setFreeMove(!freeMove)} - placementMode={placementMode} - onTogglePlacement={() => setPlacementMode(!placementMode)} - snapToPlanes={snapToPlanes} - onToggleSnap={() => setSnapToPlanes(!snapToPlanes)} - allowScale={allowScale} - onToggleAllowScale={() => setAllowScale(!allowScale)} - /> + {/* Floating DOM HUD overlay — only visible OUTSIDE passthrough. + Inside AR, the DOM is occluded by the headset compositor; the + in-world XRHudInWorld replaces it. */} +
+ setFreeMove(!freeMove)} + placementMode={placementMode} + onTogglePlacement={() => setPlacementMode(!placementMode)} + snapToPlanes={snapToPlanes} + onToggleSnap={() => setSnapToPlanes(!snapToPlanes)} + allowScale={allowScale} + onToggleAllowScale={() => setAllowScale(!allowScale)} + /> +
+ + {/* Hidden ShareButton instance — registers window.__trackSteelStartLive + so the in-world Share tab can trigger broadcasts. Also keeps live + state in sync with the in-XR HUD. */} +
+ setLiveCode(h?.code ?? null)} + onViewerCountChange={setLiveViewers} + /> +
{/* DEVKIT: floating diagnostic panel + SimXR toggle */} {devkit && (