diff --git a/web/app/nav-tabs.js b/web/app/nav-tabs.js index 32ea2bc..2dfa0fc 100644 --- a/web/app/nav-tabs.js +++ b/web/app/nav-tabs.js @@ -1,22 +1,27 @@ var t = ` -
- -
+ | + + ` import Icon from './icon.js' @@ -46,19 +41,30 @@ export default { emits: ['tab-activate', 'tab-move', 'tab-close', 'note-close'], data() { return { - dragTab: null, - dragOver: null, + dragIndex: null, + dragOverEnabled: true, } }, methods: { - dragStart(index, event) { + onDragStart(index) { this.$emit('tab-activate', this.tabs[index].id) - this.dragTab = index; - event.dataTransfer.dropEffect = 'move'; + this.dragIndex = index; + }, + onDragOver(overIndex) { + if (!this.dragOverEnabled) return; + if (this.dragIndex === null || this.dragIndex === overIndex) return; + + this.$emit('tab-move', this.tabs[this.dragIndex].id, overIndex); + this.dragIndex = overIndex; + + this.dragOverEnabled = false; + setTimeout(() => { this.dragOverEnabled = true; }, 300); + }, + onDrop() { + this.dragIndex = null; }, - dragDrop(index) { - index = (index > this.dragTab) ? index : index + 1; - this.$emit('tab-move', this.tabs[this.dragTab].id, index); + onDragEnd() { + this.dragIndex = null; }, isActive(tabId) { return this.activeTabId == tabId;