Inspector 节点支持删除

为节点 Inspector 增加删除节点及子节点按钮。
This commit is contained in:
2026-08-19 10:48:28 +08:00
parent a9a4998418
commit 9eb47f637b
@@ -105,6 +105,11 @@ export function InspectorSidebar({
onInsertComponent={controller.insertNodeComponent}
onDeleteComponent={controller.deleteNodeComponent}
onMoveComponent={controller.moveNodeComponent}
onDeleteNode={() => controller.deleteNode(view.node.id)}
deleteDisabled={
controller.editor.isLocked ||
view.node.id === controller.treeForActiveImage?.root.id
}
/>
);
break;
@@ -271,6 +276,8 @@ function NodeInspector({
onInsertComponent,
onDeleteComponent,
onMoveComponent,
onDeleteNode,
deleteDisabled,
}: {
node: SelectedNode;
parentSize: UiEditorPageController['selectedNodeParentSize'];
@@ -291,6 +298,8 @@ function NodeInspector({
onInsertComponent: UiEditorPageController['insertNodeComponent'];
onDeleteComponent: UiEditorPageController['deleteNodeComponent'];
onMoveComponent: UiEditorPageController['moveNodeComponent'];
onDeleteNode: () => void;
deleteDisabled: boolean;
}) {
const inspectorReadOnly = useInspectorReadOnly();
const isReadOnly = readOnly || inspectorReadOnly;
@@ -448,6 +457,13 @@ function NodeInspector({
onMoveComponent={onMoveComponent}
/>
<ResourceId value={node.id} />
<DeleteResourceButton
label="删除节点及子节点"
disabled={deleteDisabled || isReadOnly}
onClick={() => {
if (!deleteDisabled && !isReadOnly) onDeleteNode();
}}
/>
</div>
);
}