테이블 노드 위치정보 저장 구현
This commit is contained in:
@@ -24,6 +24,7 @@ import {
|
||||
DataFlowDiagram,
|
||||
JsonRelationship,
|
||||
CreateDiagramRequest,
|
||||
NodePositions,
|
||||
} from "@/lib/api/dataflow";
|
||||
import SaveDiagramModal from "./SaveDiagramModal";
|
||||
import { useAuth } from "@/hooks/useAuth";
|
||||
@@ -313,10 +314,16 @@ export const DataFlowDesigner: React.FC<DataFlowDesignerProps> = ({
|
||||
|
||||
console.log("🔌 연결된 컬럼 정보:", connectedColumnsInfo);
|
||||
|
||||
// 테이블을 노드로 변환 (자동 레이아웃)
|
||||
// 저장된 노드 위치 정보 가져오기
|
||||
const savedNodePositions = jsonDiagram.node_positions || {};
|
||||
console.log("📍 저장된 노드 위치:", savedNodePositions);
|
||||
|
||||
// 테이블을 노드로 변환 (저장된 위치 우선 사용, 없으면 자동 레이아웃)
|
||||
const tableNodes = tableDefinitions.map((table, index) => {
|
||||
const x = (index % 3) * 400 + 100; // 3열 배치
|
||||
const y = Math.floor(index / 3) * 300 + 100;
|
||||
// 저장된 위치가 있으면 사용, 없으면 자동 배치
|
||||
const savedPosition = savedNodePositions[table.tableName];
|
||||
const x = savedPosition ? savedPosition.x : (index % 3) * 400 + 100; // 3열 배치
|
||||
const y = savedPosition ? savedPosition.y : Math.floor(index / 3) * 300 + 100;
|
||||
|
||||
return {
|
||||
id: `table-${table.tableName}`,
|
||||
@@ -782,6 +789,17 @@ export const DataFlowDesigner: React.FC<DataFlowDesignerProps> = ({
|
||||
new Set([...tempRelationships.map((rel) => rel.fromTable), ...tempRelationships.map((rel) => rel.toTable)]),
|
||||
).sort();
|
||||
|
||||
// 현재 노드 위치 추출
|
||||
const nodePositions: NodePositions = {};
|
||||
nodes.forEach((node) => {
|
||||
if (node.data?.table?.tableName) {
|
||||
nodePositions[node.data.table.tableName] = {
|
||||
x: node.position.x,
|
||||
y: node.position.y,
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// 저장 요청 데이터 생성
|
||||
const createRequest: CreateDiagramRequest = {
|
||||
diagram_name: diagramName,
|
||||
@@ -789,6 +807,7 @@ export const DataFlowDesigner: React.FC<DataFlowDesignerProps> = ({
|
||||
relationships: tempRelationships,
|
||||
tables: connectedTables,
|
||||
},
|
||||
node_positions: nodePositions,
|
||||
};
|
||||
|
||||
let savedDiagram;
|
||||
|
||||
Reference in New Issue
Block a user