react-flow-node-ts
द्वारा microsoft
React Flow नोड घटकों को TypeScript प्रकारों, हैंडल और Zustand एकीकरण के साथ बनाएँ। React Flow कैनवास के लिए कस्टम नोड बनाते समय उपयोग करें, बनाते हुए…
npx skills add https://github.com/microsoft/skills --skill react-flow-node-tsReact Flow Node
Create React Flow node components following established patterns with proper TypeScript types and store integration.
Quick Start
Copy templates from assets/ and replace placeholders:
{{NodeName}}→ PascalCase component name (e.g.,VideoNode){{nodeType}}→ kebab-case type identifier (e.g.,video-node){{NodeData}}→ Data interface name (e.g.,VideoNodeData)
Templates
- assets/template.tsx - Node component
- assets/types.template.ts - TypeScript definitions
Node Component Pattern
export const MyNode = memo(function MyNode({
id,
data,
selected,
width,
height,
}: MyNodeProps) {
const updateNode = useAppStore((state) => state.updateNode);
const canvasMode = useAppStore((state) => state.canvasMode);
return (
<>
<NodeResizer isVisible={selected && canvasMode === 'editing'} />
<div className="node-container">
<Handle type="target" position={Position.Top} />
{/* Node content */}
<Handle type="source" position={Position.Bottom} />
</div>
</>
);
});
Type Definition Pattern
export interface MyNodeData extends Record<string, unknown> {
title: string;
description?: string;
}
export type MyNode = Node<MyNodeData, 'my-node'>;
Integration Steps
- Add type to
src/frontend/src/types/index.ts - Create component in
src/frontend/src/components/nodes/ - Export from
src/frontend/src/components/nodes/index.ts - Add defaults in
src/frontend/src/store/app-store.ts - Register in canvas
nodeTypes - Add to AddBlockMenu and ConnectMenu