From 98b212f0d505ce2fbe91bb20b07636ea863ee9cb Mon Sep 17 00:00:00 2001 From: peterkogo Date: Mon, 20 Jan 2025 11:20:33 +0100 Subject: [PATCH] Narrow NodeProps type properties selected, selectable, draggable and deletable required --- .../react/src/components/NodeWrapper/index.tsx | 2 +- .../lib/components/NodeWrapper/NodeWrapper.svelte | 12 +++++++----- packages/system/src/types/nodes.ts | 15 ++------------- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/packages/react/src/components/NodeWrapper/index.tsx b/packages/react/src/components/NodeWrapper/index.tsx index a54a4993..4b0295e9 100644 --- a/packages/react/src/components/NodeWrapper/index.tsx +++ b/packages/react/src/components/NodeWrapper/index.tsx @@ -202,7 +202,7 @@ export function NodeWrapper({ type={nodeType} positionAbsoluteX={internals.positionAbsolute.x} positionAbsoluteY={internals.positionAbsolute.y} - selected={node.selected} + selected={node.selected ?? false} selectable={isSelectable} draggable={isDraggable} deletable={node.deletable ?? true} diff --git a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte index dc571ec2..ed30d5b2 100644 --- a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte +++ b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte @@ -54,7 +54,9 @@ nodeDragThreshold, selectNodesOnDrag, handleNodeSelection, - updateNodeInternals + updateNodeInternals, + elementsSelectable, + nodesDraggable } = store; let nodeRef: HTMLDivElement; @@ -194,14 +196,14 @@ this={nodeComponent} {data} {id} - {selected} - {selectable} - {deletable} + selected={selected ?? false} + selectable={selectable ?? $elementsSelectable ?? true} + deletable={deletable ?? true} {sourcePosition} {targetPosition} {zIndex} {dragging} - {draggable} + draggable={draggable ?? $nodesDraggable ?? true} {dragHandle} {parentId} type={nodeType} diff --git a/packages/system/src/types/nodes.ts b/packages/system/src/types/nodes.ts index b405b5ba..92261205 100644 --- a/packages/system/src/types/nodes.ts +++ b/packages/system/src/types/nodes.ts @@ -88,20 +88,9 @@ export type InternalNodeBase = NodeType & */ export type NodeProps = Pick< NodeType, - | 'id' - | 'data' - | 'width' - | 'height' - | 'sourcePosition' - | 'targetPosition' - | 'selected' - | 'dragHandle' - | 'selectable' - | 'deletable' - | 'draggable' - | 'parentId' + 'id' | 'data' | 'width' | 'height' | 'sourcePosition' | 'targetPosition' | 'dragHandle' | 'parentId' > & - Required> & { + Required> & { /** whether a node is connectable or not */ isConnectable: boolean; /** position absolute x value */