diff --git a/examples/react/src/App/routes.ts b/examples/react/src/App/routes.ts
index 4c003ea5..52f80979 100644
--- a/examples/react/src/App/routes.ts
+++ b/examples/react/src/App/routes.ts
@@ -58,6 +58,7 @@ import AddNodeOnEdgeDrop from '../examples/AddNodeOnEdgeDrop';
import DevTools from '../examples/DevTools';
import Redux from '../examples/Redux';
import MovingHandles from '../examples/MovingHandles';
+import DetachedHandle from '../examples/DetachedHandle';
export interface IRoute {
name: string;
@@ -146,6 +147,11 @@ const routes: IRoute[] = [
path: 'default-nodes',
component: DefaultNodes,
},
+ {
+ name: 'DetachedHandle',
+ path: 'detached-handle',
+ component: DetachedHandle,
+ },
{
name: 'DevTools',
path: 'devtools',
diff --git a/examples/react/src/examples/DetachedHandle/index.tsx b/examples/react/src/examples/DetachedHandle/index.tsx
new file mode 100644
index 00000000..9ca20ddc
--- /dev/null
+++ b/examples/react/src/examples/DetachedHandle/index.tsx
@@ -0,0 +1,53 @@
+import { ReactFlow, Node, ReactFlowProvider, Background, BackgroundVariant, NodeProps, Handle, Position } from '@xyflow/react';
+
+import './style.css';
+
+const initialNodes: Node[] = [
+ {
+ id: '1',
+ data: { label: 'Node 1' },
+ position: { x: 250, y: 5 },
+ },
+ {
+ id: '2',
+ data: { label: 'Node 2' },
+ position: { x: 50, y: 100 },
+ },
+ {
+ id: '3',
+ data: { label: 'Node 3' },
+ position: { x: 450, y: 100 },
+ },
+];
+
+const CustomNode = (_: NodeProps) => {
+ return (
+ <>
+