diff --git a/src/editor/components/nodedetails.tsx b/src/editor/components/nodedetails.tsx index a88bb28da0bd6fee375bc48176bef6bee9174380..e037a22a4695241ec8f0f8e638402071d0db7dc1 100644 --- a/src/editor/components/nodedetails.tsx +++ b/src/editor/components/nodedetails.tsx @@ -32,11 +32,11 @@ function NodeDetails({ const referenceData: NodeDataChangeRequest = { id: -1, - name: getCollectiveValue((n) => n.name, ""), - description: getCollectiveValue((n) => n.description, ""), - video: getCollectiveValue((n) => n.video, ""), - icon: getCollectiveValue((n) => n.icon, ""), - banner: getCollectiveValue((n) => n.banner, ""), + name: getCollectiveValue((n) => n.name, undefined), + description: getCollectiveValue((n) => n.description, undefined), + video: getCollectiveValue((n) => n.video, undefined), + icon: getCollectiveValue((n) => n.icon, undefined), + banner: getCollectiveValue((n) => n.banner, undefined), references: getCollectiveValue((n) => n.references, undefined), type: getCollectiveValue((n) => n.type, undefined), }; @@ -46,9 +46,27 @@ function NodeDetails({ value: ValueType ) { Object.assign(referenceData, { [key]: value }); + onNodeDataChange( selectedNodes.map((node) => { - return { ...referenceData, id: node.id, name: node.name }; + const update = Object.fromEntries( + Object.entries(referenceData).filter( + ([k, v]) => v !== undefined + ) + ); + + const defaults = { + name: node.name, + description: node.description, + video: node.video, + icon: node.icon, + banner: node.banner, + references: node.references, + type: node.type, + }; + return Object.assign({}, defaults, update, { + id: node.id, + }); }) ); };