From 658c3493f15e1cad68e204e6d1e2c9b3b0f374fe Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 25 Sep 2024 16:51:05 +0200 Subject: [PATCH] added documentation for useInternalNode --- .../reference/hooks/useInternalNode.ts | 18 ++++++++ .../src/pages/api-reference/hooks/_meta.json | 1 + .../api-reference/hooks/use-internal-node.mdx | 45 +++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 sites/reactflow.dev/src/page-data/reference/hooks/useInternalNode.ts create mode 100644 sites/reactflow.dev/src/pages/api-reference/hooks/use-internal-node.mdx diff --git a/sites/reactflow.dev/src/page-data/reference/hooks/useInternalNode.ts b/sites/reactflow.dev/src/page-data/reference/hooks/useInternalNode.ts new file mode 100644 index 000000000..bd32fe6ea --- /dev/null +++ b/sites/reactflow.dev/src/page-data/reference/hooks/useInternalNode.ts @@ -0,0 +1,18 @@ +import { type PropsTableProps } from 'xy-shared'; + +export const signature: PropsTableProps = { + props: [ + { name: 'Params' }, + { + name: 'nodeId', + type: 'string', + description: 'The ID of a node you want to observe', + }, + { name: 'Returns' }, + { + name: '', + type: 'InternalNode', + description: 'The InternalNode object for the node with the given ID', + }, + ], +}; diff --git a/sites/reactflow.dev/src/pages/api-reference/hooks/_meta.json b/sites/reactflow.dev/src/pages/api-reference/hooks/_meta.json index 8704e06e0..8a20671bc 100644 --- a/sites/reactflow.dev/src/pages/api-reference/hooks/_meta.json +++ b/sites/reactflow.dev/src/pages/api-reference/hooks/_meta.json @@ -6,6 +6,7 @@ "use-key-press": "useKeyPress()", "use-node-id": "useNodeId()", "use-nodes": "useNodes()", + "use-internal-node": "useInternalNode()", "use-nodes-data": "useNodesData()", "use-nodes-initialized": "useNodesInitialized()", "use-nodes-state": "useNodesState()", diff --git a/sites/reactflow.dev/src/pages/api-reference/hooks/use-internal-node.mdx b/sites/reactflow.dev/src/pages/api-reference/hooks/use-internal-node.mdx new file mode 100644 index 000000000..67c5903d6 --- /dev/null +++ b/sites/reactflow.dev/src/pages/api-reference/hooks/use-internal-node.mdx @@ -0,0 +1,45 @@ +--- +title: useInternalNode +description: 'This hook returns an InternalNode object for the given node ID.' +--- + +import { PropsTable } from '@/components/props-table'; +import { signature } from '@/page-data/reference/hooks/useInternalNode.ts'; + +# useInternalNode + +[Source on GitHub](https://github.com/xyflow/xyflow/blob/main/packages/react/src/hooks/useInternalNode.ts) + +This hook returns the internal representation of a specific node. Components that use this hook +will re-render **whenever any node changes**, including when a node is selected +or moved. + +```jsx +import { useInternalNode } from '@xyflow/react'; + +export default function () { + const internalNode = useInternalNode('node-1'); + const absolutePosition = internalNode.internals.positionAbsolute; + + return ( +
+ The absolute position of the node is at: +

x: {absolutePosition.x}

+

y: {absolutePosition.y}

+
+ ); +} +``` + +## Signature + + + +## Typescript + +This hook accepts a generic type argument of custom node types. See this +[section in our Typescript guide](/learn/advanced-use/typescript#nodetype-edgetype-unions) for more information. + +```tsx +const internalNode = useInternalNode(); +```