This commit is contained in:
2024-08-22 16:42:25 +07:00
parent 1082557479
commit b879f06750
2 changed files with 18 additions and 8 deletions

View File

@@ -4,7 +4,7 @@ import {
addEdge, addEdge,
applyEdgeChanges, applyEdgeChanges,
applyNodeChanges, applyNodeChanges,
Background Background,
} from '@xyflow/react'; } from '@xyflow/react';
import '@xyflow/react/dist/style.css'; import '@xyflow/react/dist/style.css';
@@ -107,6 +107,13 @@ function Flow() {
[setEdges], [setEdges],
); );
const onNodesDelete = useCallback((deletedNodes) => {
console.log('Các node đã bị xóa:', deletedNodes);
// Lọc lại danh sách nodes sau khi xóa
setNodes((nds) => nds.filter((node) => !deletedNodes.some((deletedNode) => deletedNode.id === node.id)));
}, []);
return ( return (
<ReactFlow <ReactFlow
nodes={nodes} nodes={nodes}
@@ -115,6 +122,7 @@ function Flow() {
onEdgesChange={onEdgesChange} onEdgesChange={onEdgesChange}
onConnect={onConnect} onConnect={onConnect}
nodeTypes={nodeTypes} nodeTypes={nodeTypes}
onNodesDelete={onNodesDelete}
fitView fitView
> >
<Background /> <Background />

View File

@@ -70,7 +70,7 @@ const tabBarOptions = [
}, },
]; ];
// Nội dung cho mỗi node // Nội dung popup cho mỗi node
const nodeContents = { const nodeContents = {
'2': ` '2': `
<label for="email-subject">Subject:</label> <label for="email-subject">Subject:</label>
@@ -199,14 +199,18 @@ const NoteFlow = () => {
const hideenPopup = () => { const hideenPopup = () => {
setShowPopup(false); setShowPopup(false);
console.log('hide')
} }
const onConnect = (params) => setEdges((eds) => addEdge(params, eds)); const onConnect = (params) => setEdges((eds) => addEdge(params, eds));
const handleNodeDelete = (nodesToDelete) => {
setNodes((nds) => nds.filter((node) => !nodesToDelete.some((n) => n.id === node.id)));
setEdges((eds) => eds.filter((edge) => !nodesToDelete.some((n) => n.id === edge.source || n.id === edge.target)));
};
return ( return (
<div style={{ height: '100vh', width: '100%' }}> <div style={{ height: '100vh', width: '100%' }}>
<ReactFlow nodes={nodes} edges={edges} onConnect={onConnect} onNodeClick={onNodeClick}> <ReactFlow nodes={nodes} edges={edges} onConnect={onConnect} onNodeClick={onNodeClick} onNodesDelete={handleNodeDelete}>
<Controls /> <Controls />
<Background /> <Background />
</ReactFlow> </ReactFlow>
@@ -269,7 +273,7 @@ const NoteFlow = () => {
)} )}
{showPopup && ( {showPopup && (
<> <>
<button className="popup-overlay" onClick={hideenPopup}></button> <div className="popup-overlay" onClick={hideenPopup}></div>
<div <div
className={`popup global-popup ${showPopup ? '' : 'hidden'}`} className={`popup global-popup ${showPopup ? '' : 'hidden'}`}
> >
@@ -288,6 +292,4 @@ const NoteFlow = () => {
); );
}; };
export default NoteFlow; export default NoteFlow;