diff --git a/package.json b/package.json index 60ca06b..f35be83 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "react-dom": "17.0.1", "react-select": "4.0.2", "react-textarea-autosize": "8.3.0", - "reaflow": "3.0.13", + "reaflow": "3.0.14", "recoil": "0.1.2", "recoil-devtools-dock": "^0.1.6", "recoil-devtools-log-monitor": "^0.2.7", diff --git a/src/components/edges/BaseEdge.tsx b/src/components/edges/BaseEdge.tsx index d45aa47..ebe4eb2 100644 --- a/src/components/edges/BaseEdge.tsx +++ b/src/components/edges/BaseEdge.tsx @@ -1,9 +1,12 @@ +import { Button } from '@chakra-ui/react'; +import { css } from '@emotion/react'; import classnames from 'classnames'; import cloneDeep from 'lodash.clonedeep'; import now from 'lodash.now'; import React from 'react'; import { Edge, + EdgeChildProps, EdgeData, } from 'reaflow'; import { @@ -155,25 +158,35 @@ const BaseEdge: React.FunctionComponent = (props) => { /> )} onClick={onEdgeClick} - /> - // Doesn't support children - See https://github.com/reaviz/reaflow/issues/67 - // Possible to use a custom children to achieve this, but not great DX because of manual x/y placement - /* - - test - - * */ + > + { + (edgeChildProps: EdgeChildProps) => { + const { + center, + } = edgeChildProps; + + return ( + + { + isSelected && ( + + ) + } + + ); + } + } + ); }; diff --git a/src/components/editor/PlaygroundContainer.tsx b/src/components/editor/PlaygroundContainer.tsx index 48eccb2..1b79f8a 100644 --- a/src/components/editor/PlaygroundContainer.tsx +++ b/src/components/editor/PlaygroundContainer.tsx @@ -2,6 +2,7 @@ import { css } from '@emotion/react'; import React, { MutableRefObject } from 'react'; import { CanvasRef } from 'reaflow'; import BlockPickerMenu from '../blocks/BlockPickerMenu'; +import AbsoluteTooltip from '../plugins/AbsoluteTooltip'; import CanvasContainer from './CanvasContainer'; type Props = { @@ -45,6 +46,7 @@ const PlaygroundContainer: React.FunctionComponent = (props): JSX.Element /> + ); }; diff --git a/src/components/nodes/BaseNode.tsx b/src/components/nodes/BaseNode.tsx index 55dd475..d7e74d8 100644 --- a/src/components/nodes/BaseNode.tsx +++ b/src/components/nodes/BaseNode.tsx @@ -38,6 +38,7 @@ import { } from '../../utils/nodes'; import { createPort } from '../../utils/ports'; import BasePort from '../ports/BasePort'; +import BasePortChild from '../ports/BasePortChild'; type Props = BaseNodeProps & { hasCloneAction?: boolean; @@ -270,7 +271,16 @@ const BaseNode: BaseNodeComponent = (props) => { onKeyDown={onKeyDown} onRemove={onNodeRemove} remove={(