()
| 818 | } |
| 819 | |
| 820 | function wireMainPanelDrop() { |
| 821 | const lanes = document.getElementById("lanes"); |
| 822 | if (!lanes || lanes.dataset.libraryDropReady === "1") return; |
| 823 | lanes.dataset.libraryDropReady = "1"; |
| 824 | |
| 825 | lanes.addEventListener("dragover", (e) => { |
| 826 | if (!isTrackDragEvent(e)) return; |
| 827 | e.preventDefault(); |
| 828 | e.dataTransfer.dropEffect = "copy"; |
| 829 | lanes.classList.add("library-drop-target"); |
| 830 | }); |
| 831 | lanes.addEventListener("dragleave", (e) => { |
| 832 | if (!lanes.contains(e.relatedTarget)) lanes.classList.remove("library-drop-target"); |
| 833 | }); |
| 834 | lanes.addEventListener("drop", (e) => { |
| 835 | const trackId = getDraggedTrackId(e); |
| 836 | if (!trackId || !tracks[trackId]) return; |
| 837 | e.preventDefault(); |
| 838 | lanes.classList.remove("library-drop-target"); |
| 839 | loadTrackIntoStudio(trackId); |
| 840 | }); |
| 841 | } |
| 842 | |
| 843 | function wireRailTrashDrop() { |
| 844 | const trash = document.querySelector(".rail-trash"); |
no test coverage detected