优化交互
This commit is contained in:
parent
9c869d7bb4
commit
63ab2d2f03
@ -10,6 +10,8 @@ import {
|
|||||||
NodeTypes,
|
NodeTypes,
|
||||||
NodeChange,
|
NodeChange,
|
||||||
OnEdgesChange,
|
OnEdgesChange,
|
||||||
|
ConnectionMode,
|
||||||
|
MarkerType,
|
||||||
OnConnect,
|
OnConnect,
|
||||||
} from '@xyflow/react';
|
} from '@xyflow/react';
|
||||||
import '@xyflow/react/dist/style.css';
|
import '@xyflow/react/dist/style.css';
|
||||||
@ -102,8 +104,13 @@ function FlowContent(): ReactNode {
|
|||||||
onNodesChange={onNodesChange}
|
onNodesChange={onNodesChange}
|
||||||
onEdgesChange={onEdgesChange}
|
onEdgesChange={onEdgesChange}
|
||||||
onConnect={onConnect}
|
onConnect={onConnect}
|
||||||
onNodeClick={onNodeClick}
|
onNodeDoubleClick={onNodeClick}
|
||||||
nodeTypes={nodeTypes}
|
nodeTypes={nodeTypes}
|
||||||
|
deleteKeyCode={["Delete"]}
|
||||||
|
defaultEdgeOptions={{
|
||||||
|
animated: true,
|
||||||
|
markerEnd: { type: MarkerType.ArrowClosed }
|
||||||
|
}}
|
||||||
fitView
|
fitView
|
||||||
>
|
>
|
||||||
<Background />
|
<Background />
|
||||||
|
|||||||
@ -13,6 +13,20 @@
|
|||||||
box-shadow: 0 4px 12px rgba(22, 119, 255, 0.3);
|
box-shadow: 0 4px 12px rgba(22, 119, 255, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.custom-node .node-handle {
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-node:hover .node-handle {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-node:hover .node-handle,
|
||||||
|
.node-handle.react-flow__handle-connecting {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
.node-header {
|
.node-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|||||||
@ -28,8 +28,11 @@ export default function CustomNode({
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Handle type="target" position={Position.Top} />
|
{[Position.Top, Position.Bottom, Position.Right, Position.Left].map((position) => (
|
||||||
<Handle type="source" position={Position.Bottom} />
|
(["target", "source"] as const).map((type) => (
|
||||||
|
<Handle type={type} position={position} id={position} key={position} className="node-handle"/>
|
||||||
|
))
|
||||||
|
))}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user