@@ -1184,12 +1184,16 @@ function renderNodeToolbar() {
|
||||
|
||||
function setupCanvasDrop() {
|
||||
const wrapper = document.getElementById('networkCanvasWrapper');
|
||||
let dropPending = false;
|
||||
wrapper.addEventListener('dragover', (e) => { e.preventDefault(); e.dataTransfer.dropEffect = 'copy'; });
|
||||
wrapper.addEventListener('drop', async (e) => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
suppressNextMouse = Date.now() + 300;
|
||||
if (dropPending) return;
|
||||
dropPending = true;
|
||||
suppressNextMouse = Date.now() + 500;
|
||||
const data = e.dataTransfer.getData('text/plain');
|
||||
if (!data) { dropPending = false; return; }
|
||||
const rect = canvas.getBoundingClientRect();
|
||||
const mx = e.clientX - rect.left - panX;
|
||||
const my = e.clientY - rect.top - panY;
|
||||
@@ -1204,7 +1208,6 @@ function setupCanvasDrop() {
|
||||
color: '#1e3a5f', border_color: '#3b82f6',
|
||||
opacity: 0.15, z_index: nextShapeZ++
|
||||
})});
|
||||
loadNetworkData();
|
||||
} else {
|
||||
await apiFetch('nodes', { method: 'POST', body: JSON.stringify({
|
||||
label: data.charAt(0).toUpperCase() + data.slice(1),
|
||||
@@ -1212,8 +1215,9 @@ function setupCanvasDrop() {
|
||||
group_name: 'default', notes: '',
|
||||
pos_x: mx, pos_y: my
|
||||
})});
|
||||
loadNetworkData();
|
||||
}
|
||||
await loadNetworkData();
|
||||
dropPending = false;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user