Inspired by https://github.com/lochbrunner/react-flow-editor
example - https://voiso.github.io/react-flow-editor/
nvm install 20.5.1
nvm use
pnpm installThis project uses pnpm as package manager.
Inside of project, you'll see the following folders:
/
├── packages/
│ ├── e2e/
│ ├── // e2e testing with Cypress
│ │ └── ...
│ │
│ ├── examples/
│ ├── // Example to see library in action
│ │ └── ...
│ │
│ └── react-flow-editor/
│ ├── // Core package
│ └── ...
│ └── package.json
└── package.json
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
pnpm install |
Installs dependencies |
pnpm --dir ./packages/examples dev |
Starts local dev server at localhost:3000 |
pnpm run eslint |
Run eslint for lint all packages |
pnpm run prettier |
Run prettier for lint all packages |
pnpm run typescript |
Run typescript for lint all packages |
To publish a new version of react-flow-editor create release
- DnD with right mouse down to move canvas
- Available autoScroll when DnD connection or nodes
- Multiple Selection with left mouse click with shift on nodes
- Multiple Selection with left mouse down and dragging select zone
- Delete (multiple too) selected nodes with DELETE/BACKSPACE
- DnD multiple selected nodes with left mouse down on selected nodes
- Scroll mouse to zoom
- Connectors could be disconnected from both edges
- Overview function to place all the nodes to viewPort
-
node mouseDown = no changes in state
-
node mouseDown -> mouseUp =
selected -
node mouseDown -> mouseMove =
dragging -
node mouseDown -> mouseMove -> mouseUp =
null -
SHIFT + node mouseDown = no changes in state
-
SHIFT + (node mouseDown -> mouseUp) =
selected -
SHIFT + (node mouseDown-> mouseMove) =
dragging -
SHIFT + (node mouseDown-> mouseMove -> mouseUp) =
selected -
SHIFT + (node click -> node_2 click) =
selectedboth -
SHIFT + (node click -> node_2 click -> (node or node_2) mouseDown -> mouseMove) =
draggingboth -
SHIFT + (node click -> node_2 click -> (node or node_2) mouseDown -> mouseMove -> mouseUp) =
selectedboth -
DnD from node_1 point =
draggingConnector -
DnD from node_1 point over node_2 point = node_1
draggingConnectorand node_2connectorHovered -
DnD from node_1 point drop in any place =
nullfor all -
click away from nodes =
nullfor all