import { useState, useEffect } from 'react'; import { Core } from '@esengine/ecs-framework'; import { EditorPluginManager, UIRegistry, MessageHub, SerializerRegistry } from '@esengine/editor-core'; import { SceneInspectorPlugin } from './plugins/SceneInspectorPlugin'; import { TauriAPI } from './api/tauri'; import './styles/App.css'; function App() { const [core, setCore] = useState(null); const [pluginManager, setPluginManager] = useState(null); const [status, setStatus] = useState('Initializing...'); useEffect(() => { const initializeEditor = async () => { try { const coreInstance = Core.create({ debug: true }); const uiRegistry = new UIRegistry(); const messageHub = new MessageHub(); const serializerRegistry = new SerializerRegistry(); Core.services.registerInstance(UIRegistry, uiRegistry); Core.services.registerInstance(MessageHub, messageHub); Core.services.registerInstance(SerializerRegistry, serializerRegistry); const pluginMgr = new EditorPluginManager(); pluginMgr.initialize(coreInstance, Core.services); await pluginMgr.installEditor(new SceneInspectorPlugin()); const greeting = await TauriAPI.greet('Developer'); console.log(greeting); setCore(coreInstance); setPluginManager(pluginMgr); setStatus('Editor Ready'); } catch (error) { console.error('Failed to initialize editor:', error); setStatus('Initialization Failed'); } }; initializeEditor(); return () => { Core.destroy(); }; }, []); return (

ECS Framework Editor

{status}

Hierarchy

Scene hierarchy will appear here

Viewport

Scene viewport will appear here

Console

Console output will appear here

Inspector

Entity inspector will appear here

Plugins: {pluginManager?.getAllEditorPlugins().length ?? 0} Core: {core ? 'Active' : 'Inactive'}
); } export default App;