Skip to content

Commit a7e3140

Browse files
committed
feat: add event listener for dragging inside live preview
1 parent f0cc1f4 commit a7e3140

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

src/LiveDevelopment/BrowserScripts/RemoteFunctions.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,22 @@ function RemoteFunctions(config) {
299299
_handleDeleteOptionClick(e, element);
300300
}
301301
}
302+
303+
function _dragStartChores(element) {
304+
element._originalDragOpacity = element.style.opacity;
305+
element.style.opacity = 0.3;
306+
}
307+
308+
309+
function _dragEndChores(element) {
310+
if (element._originalDragOpacity) {
311+
element.style.opacity = element._originalDragOpacity;
312+
} else {
313+
element.style.opacity = 1;
314+
}
315+
delete element._originalDragOpacity;
316+
}
317+
302318
/**
303319
* This is for the advanced DOM options that appears when a DOM element is clicked
304320
* advanced options like: 'select parent', 'duplicate', 'delete'
@@ -310,6 +326,36 @@ function RemoteFunctions(config) {
310326
}
311327

312328
NodeMoreOptionsBox.prototype = {
329+
_registerDragDrop: function() {
330+
this.element.setAttribute("draggable", true);
331+
332+
this.element.addEventListener("dragstart", (event) => {
333+
event.stopPropagation();
334+
event.dataTransfer.setData("text/plain", this.element.getAttribute("data-brackets-id"));
335+
_dragStartChores(this.element);
336+
console.log("pluto- dragstart: ", this.element.getAttribute("data-brackets-id"));
337+
});
338+
339+
this.element.addEventListener("dragover", (event) => {
340+
event.preventDefault();
341+
event.stopPropagation();
342+
console.log("pluto- dragover");
343+
});
344+
345+
this.element.addEventListener("dragend", (event) => {
346+
event.preventDefault();
347+
event.stopPropagation();
348+
_dragEndChores(this.element);
349+
console.log("pluto- dragend");
350+
});
351+
352+
this.element.addEventListener("drop", (event) => {
353+
event.preventDefault();
354+
event.stopPropagation();
355+
console.log("pluto- drop");
356+
});
357+
},
358+
313359
_style: function() {
314360
this.body = window.document.createElement("div");
315361

@@ -425,6 +471,8 @@ function RemoteFunctions(config) {
425471
this.remove();
426472
});
427473
});
474+
475+
this._registerDragDrop();
428476
},
429477

430478
remove: function() {

0 commit comments

Comments
 (0)