
react-flow-node-ts
✓ Official★ 2,700by microsoft · part of microsoft/skills
Create React Flow node components with TypeScript types, handles, and Zustand integration. Use when building custom nodes for React Flow canvas, creating…
Create React Flow node components with TypeScript types, handles, and Zustand integration. Use when building custom nodes for React Flow canvas, creating…
Inspect the full instructions your agent will receiveExpandCollapse
This is the exact playbook injected into your agent when the skill activates — shown here so you can audit it before installing. You don't need to read it to use the skill.
by microsoft
Create React Flow node components with TypeScript types, handles, and Zustand integration. Use when building custom nodes for React Flow canvas, creating…
npx skills add https://github.com/microsoft/agent-skills --skill react-flow-node-ts
Download ZIPGitHub2.7k
React Flow Node
Create React Flow node components following established patterns with proper TypeScript types and store integration.
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 (
<>
{/* Node content */}
);
});
Type Definition Pattern
export interface MyNodeData extends Record {
title: string;
description?: string;
}
export type MyNode = 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
npx skills add https://github.com/microsoft/skills --skill react-flow-node-tsRun this in your project — your agent picks the skill up automatically.
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)
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.