import React, { useState, useCallback } from 'react'; import { IInspectorProvider, InspectorContext, MessageHub } from '@esengine/editor-core'; import { Node as BehaviorTreeNode } from '../domain/models/Node'; import { PropertyDefinition } from '@esengine/behavior-tree'; /** * 节点属性编辑器组件 */ interface PropertyEditorProps { property: PropertyDefinition; value: any; onChange: (name: string, value: any) => void; } const PropertyEditor: React.FC = ({ property, value, onChange }) => { const handleChange = useCallback((newValue: any) => { onChange(property.name, newValue); }, [property.name, onChange]); const renderInput = () => { switch (property.type) { case 'number': return ( handleChange(parseFloat(e.target.value) || 0)} style={{ width: '100%', padding: '4px 8px', backgroundColor: '#2a2a2a', border: '1px solid #444', borderRadius: '3px', color: '#e0e0e0', fontSize: '12px' }} /> ); case 'boolean': return ( ); case 'select': return ( ); case 'code': return (