UNPKG

@dcl/react-ecs

Version:
26 lines (25 loc) 745 B
import React from 'react'; import { createReconciler } from './reconciler'; /** * @public */ export function createReactBasedUiSystem(engine, pointerSystem) { const renderer = createReconciler(engine, pointerSystem); let uiComponent = undefined; function ReactBasedUiSystem() { if (uiComponent) renderer.update(React.createElement(uiComponent)); } engine.addSystem(ReactBasedUiSystem, 100e3, '@dcl/react-ecs'); return { destroy() { engine.removeSystem(ReactBasedUiSystem); for (const entity of renderer.getEntities()) { engine.removeEntity(entity); } }, setUiRenderer(ui) { uiComponent = ui; } }; }