优化叠加模式子节点显示
从互斥模式切回叠加模式时恢复全部直接子节点可见 补充模式切换回归测试并同步实施合同
This commit is contained in:
@@ -741,11 +741,24 @@ export function useUiEditorSession(
|
||||
|
||||
function setNodeChildrenDisplayMode(mode: ChildrenDisplayMode) {
|
||||
if (!activeImageId || !selectedNodeId) return;
|
||||
const selectedNode = treeForActiveImage
|
||||
? findUiNodeLocation(treeForActiveImage.root, selectedNodeId)?.node
|
||||
: null;
|
||||
const result = editor.setNodeChildrenDisplayMode(
|
||||
activeImageId,
|
||||
selectedNodeId,
|
||||
mode,
|
||||
);
|
||||
if (result.ok && mode === 'Stack' && selectedNode) {
|
||||
setHiddenNodeIds((current) => {
|
||||
if (!selectedNode.children.some((child) => current.has(child.id))) {
|
||||
return current;
|
||||
}
|
||||
const next = new Set(current);
|
||||
for (const child of selectedNode.children) next.delete(child.id);
|
||||
return next;
|
||||
});
|
||||
}
|
||||
if (!result.ok) setStatus('子节点显示模式更新失败。');
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -436,6 +436,13 @@ describe('UiEditorPage', () => {
|
||||
act(() => result.current.canvas.selectExclusiveChild(childAId!));
|
||||
expect(result.current.canvas.isNodePreviewVisible(childAId!)).toBe(true);
|
||||
expect(result.current.canvas.isNodePreviewVisible(childBId!)).toBe(false);
|
||||
|
||||
act(() => result.current.inspector.setNodeChildrenDisplayMode('Stack'));
|
||||
expect(result.current.canvas.isNodePreviewVisible(childAId!)).toBe(true);
|
||||
expect(result.current.canvas.isNodePreviewVisible(childBId!)).toBe(true);
|
||||
expect(
|
||||
result.current.canvas.isNodePreviewVisible(childBDescendantId!),
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
it('shows a page-level save failure and allows a retry', async () => {
|
||||
|
||||
Reference in New Issue
Block a user