mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
fix(editor): SchemaView renders duplicate structures properly (#12943)
This commit is contained in:
parent
6258f0c9dd
commit
0d8a544975
|
@ -684,4 +684,27 @@ describe('useFlattenSchema', () => {
|
|||
}).length,
|
||||
).toBe(3);
|
||||
});
|
||||
|
||||
it('items ids should be unique', () => {
|
||||
const { flattenSchema } = useFlattenSchema();
|
||||
const schema: Schema = {
|
||||
path: '',
|
||||
type: 'object',
|
||||
value: [
|
||||
{
|
||||
key: 'index',
|
||||
type: 'number',
|
||||
value: '0',
|
||||
path: '.index',
|
||||
},
|
||||
],
|
||||
};
|
||||
const node1 = { name: 'First Node', type: 'any' };
|
||||
const node2 = { name: 'Second Node', type: 'any' };
|
||||
|
||||
const node1Schema = flattenSchema({ schema, node: node1, depth: 1 });
|
||||
const node2Schema = flattenSchema({ schema, node: node2, depth: 1 });
|
||||
|
||||
expect(node1Schema[0].id).not.toBe(node2Schema[0].id);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -282,6 +282,8 @@ export const useFlattenSchema = () => {
|
|||
path: schema.path,
|
||||
});
|
||||
|
||||
const id = `${node.name}-${expression}`;
|
||||
|
||||
if (Array.isArray(schema.value)) {
|
||||
const items: RenderItem[] = [];
|
||||
|
||||
|
@ -293,14 +295,14 @@ export const useFlattenSchema = () => {
|
|||
depth,
|
||||
level,
|
||||
icon: getIconBySchemaType(schema.type),
|
||||
id: expression,
|
||||
id,
|
||||
collapsable: true,
|
||||
nodeType: node.type,
|
||||
type: 'item',
|
||||
});
|
||||
}
|
||||
|
||||
if (closedNodes.value.has(expression)) {
|
||||
if (closedNodes.value.has(id)) {
|
||||
return items;
|
||||
}
|
||||
|
||||
|
@ -327,7 +329,7 @@ export const useFlattenSchema = () => {
|
|||
level,
|
||||
depth,
|
||||
value: shorten(schema.value, 600, 0),
|
||||
id: expression,
|
||||
id,
|
||||
icon: getIconBySchemaType(schema.type),
|
||||
collapsable: false,
|
||||
nodeType: node.type,
|
||||
|
|
Loading…
Reference in a new issue