Skip to content

Commit

Permalink
feat(props): add connectOnClick
Browse files Browse the repository at this point in the history
  • Loading branch information
moklick committed Dec 17, 2021
1 parent 3206d49 commit d8b054c
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 3 deletions.
14 changes: 11 additions & 3 deletions src/components/Handle/index.tsx
Expand Up @@ -19,6 +19,7 @@ const selector = (s: ReactFlowState) => ({
onConnectEnd: s.onConnectEnd,
connectionMode: s.connectionMode,
connectionStartHandle: s.connectionStartHandle,
connectOnClick: s.connectOnClick,
});

const Handle = forwardRef<HTMLDivElement, HandleComponentProps>(
Expand All @@ -38,8 +39,15 @@ const Handle = forwardRef<HTMLDivElement, HandleComponentProps>(
) => {
const store = useStoreApi();
const nodeId = useContext(NodeIdContext) as string;
const { onConnectAction, onConnectStart, onConnectStop, onConnectEnd, connectionMode, connectionStartHandle } =
useStore(selector, shallow);
const {
onConnectAction,
onConnectStart,
onConnectStop,
onConnectEnd,
connectionMode,
connectionStartHandle,
connectOnClick,
} = useStore(selector, shallow);

const handleId = id || null;
const isTarget = type === 'target';
Expand Down Expand Up @@ -147,7 +155,7 @@ const Handle = forwardRef<HTMLDivElement, HandleComponentProps>(
data-handlepos={position}
className={handleClasses}
onMouseDown={onMouseDownHandler}
onClick={onClick}
onClick={connectOnClick ? onClick : undefined}
ref={ref}
{...rest}
>
Expand Down
3 changes: 3 additions & 0 deletions src/components/StoreUpdater/index.tsx
Expand Up @@ -38,6 +38,7 @@ interface StoreUpdaterProps {
snapGrid?: SnapGrid;
translateExtent?: CoordinateExtent;
fitViewOnInit: boolean;
connectOnClick: boolean;
}

const selector = (s: ReactFlowState) => ({
Expand Down Expand Up @@ -87,6 +88,7 @@ const StoreUpdater = ({
snapToGrid,
translateExtent,
fitViewOnInit,
connectOnClick,
}: StoreUpdaterProps) => {
const { setNodes, setEdges, setMinZoom, setMaxZoom, setTranslateExtent, setNodeExtent, reset } = useStore(
selector,
Expand Down Expand Up @@ -120,6 +122,7 @@ const StoreUpdater = ({
useDirectStoreUpdater('snapGrid', snapGrid, store.setState);
useDirectStoreUpdater('onNodesChange', onNodesChange, store.setState);
useDirectStoreUpdater('onEdgesChange', onEdgesChange, store.setState);
useDirectStoreUpdater('connectOnClick', connectOnClick, store.setState);

return null;
};
Expand Down
3 changes: 3 additions & 0 deletions src/container/ReactFlow/index.tsx
Expand Up @@ -134,6 +134,7 @@ export interface ReactFlowProps extends Omit<HTMLAttributes<HTMLDivElement>, 'on
noWheelClassName?: string;
noPanClassName?: string;
fitViewOnInit?: boolean;
connectOnClick?: boolean;
}

export type ReactFlowRefType = HTMLDivElement;
Expand Down Expand Up @@ -221,6 +222,7 @@ const ReactFlow: FunctionComponent<ReactFlowProps> = forwardRef<ReactFlowRefType
noWheelClassName = 'nowheel',
noPanClassName = 'nopan',
fitViewOnInit = false,
connectOnClick = true,
...rest
},
ref
Expand Down Expand Up @@ -309,6 +311,7 @@ const ReactFlow: FunctionComponent<ReactFlowProps> = forwardRef<ReactFlowRefType
connectionMode={connectionMode}
translateExtent={translateExtent}
fitViewOnInit={fitViewOnInit}
connectOnClick={connectOnClick}
/>
{onSelectionChange && <SelectionListener onSelectionChange={onSelectionChange} />}
{children}
Expand Down
1 change: 1 addition & 0 deletions src/store/initialState.ts
Expand Up @@ -44,6 +44,7 @@ const initialState: ReactFlowStore = {
fitViewOnInitDone: false,

connectionStartHandle: null,
connectOnClick: true,
};

export default initialState;
2 changes: 2 additions & 0 deletions src/types/general.ts
Expand Up @@ -184,6 +184,8 @@ export type ReactFlowStore = {
onConnectStart?: OnConnectStart;
onConnectStop?: OnConnectStop;
onConnectEnd?: OnConnectEnd;

connectOnClick: boolean;
};

export type ReactFlowActions = {
Expand Down

0 comments on commit d8b054c

Please sign in to comment.