From 33b9a801fe0fa888acd8bde0774a01d80e79ff0f Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 2 Mar 2023 15:31:37 +0100 Subject: [PATCH] refactor(svelte): cleanup node options and props --- .../core/src/components/Nodes/wrapNode.tsx | 2 +- .../core/src/container/NodeRenderer/index.tsx | 3 +- .../core/src/container/NodeRenderer/utils.ts | 29 +------------- packages/svelte/src/customnodes/Custom.svelte | 6 ++- packages/svelte/src/lib/actions/drag/utils.ts | 5 ++- .../src/lib/components/Handle/Handle.svelte | 15 +++++--- .../components/NodeWrapper/NodeWrapper.svelte | 29 ++++++++------ .../src/lib/components/NodeWrapper/types.ts | 19 +++++++++- .../NodeRenderer/NodeRenderer.svelte | 27 +++++++++++-- packages/svelte/src/lib/store/index.ts | 5 ++- .../svelte/src/lib/store/initial-store.ts | 4 +- packages/svelte/src/lib/types/general.ts | 7 +++- packages/svelte/src/lib/types/nodes.ts | 2 + packages/svelte/src/routes/+page.svelte | 9 ++++- packages/utils/src/utils.ts | 38 ++++++++++++++++++- 15 files changed, 141 insertions(+), 59 deletions(-) diff --git a/packages/core/src/components/Nodes/wrapNode.tsx b/packages/core/src/components/Nodes/wrapNode.tsx index 8f23eb0b..cab628ce 100644 --- a/packages/core/src/components/Nodes/wrapNode.tsx +++ b/packages/core/src/components/Nodes/wrapNode.tsx @@ -84,7 +84,7 @@ export default (NodeComponent: ComponentType) => { }; const onKeyDown = (event: KeyboardEvent) => { - if (isInputDOMNode(event)) { + if (isInputDOMNode(event.nativeEvent)) { return; } diff --git a/packages/core/src/container/NodeRenderer/index.tsx b/packages/core/src/container/NodeRenderer/index.tsx index 3f1d71d6..3c695737 100644 --- a/packages/core/src/container/NodeRenderer/index.tsx +++ b/packages/core/src/container/NodeRenderer/index.tsx @@ -1,13 +1,12 @@ import { memo, useMemo, useEffect, useRef, type ComponentType } from 'react'; import { shallow } from 'zustand/shallow'; import { internalsSymbol, errorMessages, Position } from '@reactflow/system'; -import { clampPosition } from '@reactflow/utils'; +import { clampPosition, getPositionWithOrigin } from '@reactflow/utils'; import useVisibleNodes from '../../hooks/useVisibleNodes'; import { useStore } from '../../hooks/useStore'; import { containerStyle } from '../../styles'; import { GraphViewProps } from '../GraphView'; -import { getPositionWithOrigin } from './utils'; import type { ReactFlowState, WrapNodeProps } from '../../types'; type NodeRendererProps = Pick< diff --git a/packages/core/src/container/NodeRenderer/utils.ts b/packages/core/src/container/NodeRenderer/utils.ts index 23fd5532..5d3911e8 100644 --- a/packages/core/src/container/NodeRenderer/utils.ts +++ b/packages/core/src/container/NodeRenderer/utils.ts @@ -1,5 +1,5 @@ import type { ComponentType } from 'react'; -import type { NodeProps, NodeOrigin, XYPosition } from '@reactflow/system'; +import type { NodeProps } from '@reactflow/system'; import DefaultNode from '../../components/Nodes/DefaultNode'; import InputNode from '../../components/Nodes/InputNode'; @@ -32,30 +32,3 @@ export function createNodeTypes(nodeTypes: NodeTypes): NodeTypesWrapped { ...specialTypes, }; } - -export const getPositionWithOrigin = ({ - x, - y, - width, - height, - origin, -}: { - x: number; - y: number; - width: number; - height: number; - origin: NodeOrigin; -}): XYPosition => { - if (!width || !height) { - return { x, y }; - } - - if (origin[0] < 0 || origin[1] < 0 || origin[0] > 1 || origin[1] > 1) { - return { x, y }; - } - - return { - x: x - width * origin[0], - y: y - height * origin[1], - }; -}; diff --git a/packages/svelte/src/customnodes/Custom.svelte b/packages/svelte/src/customnodes/Custom.svelte index 1a64be22..f892a2a3 100644 --- a/packages/svelte/src/customnodes/Custom.svelte +++ b/packages/svelte/src/customnodes/Custom.svelte @@ -10,8 +10,12 @@
{data.label}
{~~xPos}, {~~yPos}
+ - + + + +