@space-kit/react-flow
v0.0.7
Published
Create flow charts in react
Downloads
21
Readme
React Flow
Installation
npm install --save @space-kit/react-flow
Documentation
APIs
<FlowProvider />
- Provider to handle all blocks drag and drop<Canvas />
- Canvas where the blocks are drawn<DraggableBlock />
- Make your blocks draggableuseFlow
- Hook to get data about the blocks, removeBlock etc.
FlowProvider
Example
import { FlowProvider } from '@space-kit/react-flow';
<FlowProvider
blocks={blocks}
padding={{ x: 20, y: 80 }}
arrowColor="#ffffff"
onBlockSelected={(blockId: string) => {
console.log('Block selected', blockId);
}}
onBlockChange={(blocks: BlockItem[]) => {
console.log(blocks);
}}
>
Props Table
| Prop | Type | Description |
| ----------------- | -------------------------------------------- | ------------------------------ |
| children
| React.ReactElement OR React.ReactElement[]
| Any react children |
| blocks
| BlockItem[]
| Initial blocks |
| padding
| FlowPosition
| Gap between each blocks |
| arrowColor
| string
| Color of the arrows |
| onBlockSelected
| (blockId: string) => void
| Calls when a block is selected |
| onBlockChange
| (blocks: BlockItem[]) => void
| Calls when blocks are changed |
Canvas
Example
import { Canvas } from '@space-kit/react-flow';
<Canvas
style={{
width: '100%',
border: '1px solid #000',
background: '#2f2b2b',
height: 700,
overflow: 'scroll',
}}
/>;
Props Table
| Prop | Type | Description |
| ------- | --------------------- | --------------------------------------- |
| style
| React.CSSProperties
| Styles that should be applied to canvas |
DraggableBlock
Example
import { DraggableBlock } from '@space-kit/react-flow';
<DraggableBlock
id="block1"
draggable
blockTemplate={({ isActive }) => (
<DragTemplate data="Block 1" isActive={isActive} />
)}
width={100}
height={60}
>
Blocks
</DraggableBlock>;
Props Table
| Prop | Type | Description |
| --------------- | ------------------------------------------------- | -------------------------------------------------------------------------------------- |
| id
| string
| Unique id for each draggable block. This will be used for rendering template and width |
| children
| React.ReactChild
| The block that needs to be dragged |
| draggable
| boolean
| Is the block draggable |
| clone
| boolean
| Does the drag clone the component |
| onClick
| () => void
| Calls when a draggable is clicked |
| blockTemplate
| (component: ComponentProps) => React.ReactChild
| React component that needs to be rendered in the canvas |
| width
| number
| Width of the block |
| height
| number
| Height of the block |
useFlow
Example
import { useFlow } from '@space-kit/react-flow';
const { blocks, removeBlock } = useFlow();
| Parameters | Description |
| ------------- | -------------------------------- |
| blocks
| Get the blocks that are rendered |
| removeBlock
| Can be used to remove a block |