diff --git a/src/views/room/RoomView.tsx b/src/views/room/RoomView.tsx index ed5f14aa..a82d4b9a 100644 --- a/src/views/room/RoomView.tsx +++ b/src/views/room/RoomView.tsx @@ -1,6 +1,5 @@ import { EventDispatcher, NitroRectangle, RoomGeometry, RoomVariableEnum, Vector3d } from '@nitrots/nitro-renderer'; -import { FC, useEffect, useState } from 'react'; -import { createPortal } from 'react-dom'; +import { FC, useEffect, useRef, useState } from 'react'; import { GetNitroInstance, InitializeRoomInstanceRenderingCanvas } from '../../api'; import { DispatchMouseEvent } from '../../api/nitro/room/DispatchMouseEvent'; import { DispatchTouchEvent } from '../../api/nitro/room/DispatchTouchEvent'; @@ -21,6 +20,7 @@ export const RoomView: FC = props => const [ roomCanvas, setRoomCanvas ] = useState(null); const [ canvasId, setCanvasId ] = useState(-1); const [ widgetHandler, setWidgetHandler ] = useState(null); + const elementRef = useRef(); useEffect(() => { @@ -111,6 +111,8 @@ export const RoomView: FC = props => GetNitroInstance().render(); } + if(elementRef && elementRef.current) elementRef.current.appendChild(canvas); + setRoomCanvas(canvas); setCanvasId(canvasId); }, [ roomSession ]); @@ -119,15 +121,12 @@ export const RoomView: FC = props => return ( -
-
- { roomCanvas && createPortal(null, document.getElementById('room-view').appendChild(roomCanvas)) } - { widgetHandler && - <> - - - } -
+
+ { widgetHandler && + <> + + + } ); }