Skip to content

Commit e732dfb

Browse files
author
pc-david\david.desmaisons
committed
Use correct event to recalculate index (watch list instead of update) + DRY on test list on event
1 parent 40a4d90 commit e732dfb

File tree

4 files changed

+20
-28
lines changed

4 files changed

+20
-28
lines changed

dist/vuedraggable.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
7272
type: String,
7373
default: 'div'
7474
},
75-
validateMove: {
75+
move: {
7676
type: Function,
7777
default: null
7878
}
@@ -179,8 +179,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
179179
var context = { list: list, component: component };
180180
if (to !== related && list && component.getUnderlyingVm) {
181181
var destination = component.getUnderlyingVm(related);
182-
Object.assign(destination, context);
183-
return destination;
182+
return Object.assign(destination, context);
184183
}
185184

186185
return context;
@@ -229,15 +228,15 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
229228
updatePosition(this.list, oldIndexVM, newIndexVM);
230229
},
231230
onDragMove: function onDragMove(evt) {
232-
var validate = this.validateMove;
233-
if (!validate || !this.list) {
231+
var onMove = this.move;
232+
if (!onMove || !this.list) {
234233
return true;
235234
}
236235

237236
var relatedContext = this.getRelatedContextFromMoveEvent(evt);
238237
var draggedContext = this.context;
239238
Object.assign(evt, { relatedContext: relatedContext, draggedContext: draggedContext });
240-
return validate(evt);
239+
return onMove(evt);
241240
},
242241
onDragEnd: function onDragEnd(evt) {
243242
this.computeIndexes();

dist/vuedraggable.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/Cancel.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,23 @@
1212
<body>
1313

1414
<div id="main">
15-
<h1>Vue Dragable</h1>
15+
<h1>Cancel Example</h1>
1616

17-
<!-- <div class="status">
17+
<div class="status">
1818
<p v-if="canDrag!=null" :class="canDrag? 'ok' : 'ko'">
1919
can Drag: {{canDrag}}
2020
</p>
2121
<p v-else>
2222
No drag operation
2323
</p>
24-
</div> -->
24+
</div>
2525

2626

2727
<div class="drag">
2828
<h2>List 1 draggable</h2>
2929
<draggable element="ul" class="dragArea" :list="list" :options="{group:'people'}" :move="checkMove" @end="endDrag">
30-
<li v-for="(element, index) in list">
31-
<!-- :class="{'target': element===targetElement}"> -->
30+
<li v-for="(element, index) in list" :class="{'target': element===targetElement}">
31+
<!-- > -->
3232
{{element.name}}
3333
</li>
3434
</draggable>

src/vuedraggable.js

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@
3434

3535
function delegateAndEmit (evtName) {
3636
return (evtData) => {
37-
this['onDrag' + evtName](evtData)
37+
if (this.list!==null) {
38+
this['onDrag' + evtName](evtData)
39+
}
3840
emit.call(this, evtName, evtData)
3941
}
4042
}
@@ -102,10 +104,6 @@
102104
this._sortable.destroy()
103105
},
104106

105-
updated () {
106-
this.computeIndexes()
107-
},
108-
109107
computed : {
110108
rootContainer () {
111109
return this.transitionMode? this.$el.children[0] : this.$el;
@@ -119,6 +117,10 @@
119117
this._sortable.option(property, newOptionValue[property] );
120118
}
121119
}
120+
},
121+
122+
list(){
123+
this.computeIndexes()
122124
}
123125
},
124126

@@ -167,17 +169,14 @@
167169
return context
168170
},
169171

170-
onDragStart (evt) {
171-
if (!this.list) {
172-
return
173-
}
172+
onDragStart (evt) {
174173
this.context = this.getUnderlyingVm(evt.item)
175174
evt.item._underlying_vm_ = this.clone(this.context.element)
176175
},
177176

178177
onDragAdd (evt) {
179178
const element = evt.item._underlying_vm_
180-
if (!this.list || element === undefined) {
179+
if (element === undefined) {
181180
return
182181
}
183182
removeNode(evt.item)
@@ -190,9 +189,6 @@
190189
},
191190

192191
onDragRemove (evt) {
193-
if (!this.list) {
194-
return
195-
}
196192
insertNodeAt(this.rootContainer, evt.item, evt.oldIndex)
197193
const isCloning = !!evt.clone
198194
if (isCloning) {
@@ -204,9 +200,6 @@
204200
},
205201

206202
onDragUpdate (evt) {
207-
if (!this.list) {
208-
return
209-
}
210203
removeNode(evt.item)
211204
insertNodeAt(evt.from, evt.item, evt.oldIndex)
212205
const oldIndexVM = this.context.currentIndex

0 commit comments

Comments
 (0)