fixed undefined option values

This commit is contained in:
peterkogo
2024-08-26 09:54:38 +02:00
parent 1445e14831
commit b4682f0b78
2 changed files with 14 additions and 4 deletions
-1
View File
@@ -1,6 +1,5 @@
import { createWithEqualityFn } from 'zustand/traditional';
import {
clampPosition,
getFitViewNodes,
fitView as fitViewSystem,
adoptUserNodes,
+14 -3
View File
@@ -41,12 +41,23 @@ const adoptUserNodesDefaultOptions = {
checkEquality: true,
};
function mergeObjects<T extends Record<string, any>>(base: T, incoming?: Partial<T>): T {
const result = { ...base };
for (const key in incoming) {
if (incoming[key] !== undefined) {
result[key] = incoming[key];
}
}
return result;
}
export function updateAbsolutePositions<NodeType extends NodeBase>(
nodeLookup: NodeLookup<InternalNodeBase<NodeType>>,
parentLookup: ParentLookup<InternalNodeBase<NodeType>>,
options?: UpdateNodesOptions<NodeType>
) {
const _options = { ...defaultOptions, ...options };
const _options = mergeObjects(defaultOptions, options);
for (const node of nodeLookup.values()) {
if (!node.parentId) {
continue;
@@ -70,7 +81,7 @@ export function adoptUserNodes<NodeType extends NodeBase>(
parentLookup: ParentLookup<InternalNodeBase<NodeType>>,
options?: UpdateNodesOptions<NodeType>
) {
const _options = { ...adoptUserNodesDefaultOptions, ...options };
const _options = mergeObjects(adoptUserNodesDefaultOptions, options);
const tmpLookup = new Map(nodeLookup);
nodeLookup.clear();
@@ -117,7 +128,7 @@ function updateChildPosition<NodeType extends NodeBase>(
parentLookup: ParentLookup<InternalNodeBase<NodeType>>,
options?: UpdateNodesOptions<NodeType>
) {
const _options = { ...defaultOptions, ...options };
const _options = mergeObjects(defaultOptions, options);
const parentId = node.parentId!;
const parentNode = nodeLookup.get(parentId);