UNPKG

@dcl/react-ecs

Version:
25 lines (24 loc) 699 B
import { createReconciler } from './reconciler'; /** * @public */ export function createReactBasedUiSystem(engine, pointerSystem) { const renderer = createReconciler(engine, pointerSystem); let uiComponent = undefined; function ReactBasedUiSystem() { if (uiComponent) renderer.update(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; } }; }