Skip to content

Commit 28bd97c

Browse files
committed
fix reorder
1 parent 1e28681 commit 28bd97c

File tree

2 files changed

+14
-19
lines changed

2 files changed

+14
-19
lines changed

core/src/components/item/test/reorder/index.html

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -81,20 +81,13 @@
8181
groupEl.disabled = !isReordering;
8282
}
8383
}
84-
const reorderArray = (array, from, to) => {
85-
const element = array[from];
86-
array.splice(from, 1);
87-
array.splice(to, 0, element);
88-
return array.slice();
89-
};
9084

9185

9286
function initGroup(group) {
9387
var groupEl = document.getElementById(group.id);
9488

9589
groupEl.addEventListener('ionItemReorder', function (ev) {
96-
groupItems = ev.detail.complete(groupItems);
97-
renderGroup(groupEl, groupItems);
90+
ev.detail.complete();
9891
});
9992

10093
var groupItems = [];
@@ -111,24 +104,23 @@
111104
}
112105

113106
function renderGroup(groupEl, items) {
114-
groupEl.innerHTML = '';
115-
107+
let innerHTML = '';
116108
for (var i = 0; i < items.length; i++) {
117109
const index = items[i];
118-
groupEl.innerHTML += `
110+
innerHTML += `
119111
<ion-item onClick="clickedButton(${index})"
120112
style="min-height: ${index * 2 + 35}px; --background: rgb(${255 - index * 4}, ${255 - index * 4}, ${255 - index * 4})">
121113
${index}
122114
<ion-reorder slot="end"></ion-reorder>
123115
</ion-item>`;
124116
}
117+
groupEl.innerHTML = innerHTML;
125118
}
126119

127120
function renderSlidingGroup(group, groupEl, items) {
128-
groupEl.innerHTML = '';
129-
121+
let innerHTML = '';
130122
for (var i = 0; i < items.length; i++) {
131-
groupEl.innerHTML += `
123+
innerHTML += `
132124
<ion-item-sliding>
133125
<ion-item onclick="clickedButton(${i})">
134126
<ion-reorder slot="${group.side}"></ion-reorder>
@@ -145,6 +137,7 @@ <h2>Sliding item ${i}</h2>
145137
</ion-item-options>
146138
</ion-item-sliding>`;
147139
}
140+
groupEl.innerHTML = innerHTML;
148141
}
149142
</script>
150143

core/src/components/reorder-group/reorder-group.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -190,18 +190,20 @@ export class ReorderGroup implements ComponentInterface {
190190
}
191191

192192
private onEnd() {
193-
const selectedItem = this.selectedItemEl;
193+
const selectedItemEl = this.selectedItemEl;
194194
this.state = ReorderGroupState.Complete;
195-
if (!selectedItem) {
195+
if (!selectedItemEl) {
196196
this.state = ReorderGroupState.Idle;
197197
return;
198198
}
199199

200200
const toIndex = this.lastToIndex;
201-
const fromIndex = indexForItem(selectedItem);
201+
const fromIndex = indexForItem(selectedItemEl);
202202

203203
if (toIndex === fromIndex) {
204-
selectedItem.style.transition = 'transform 200ms ease-in-out';
204+
selectedItemEl.style.transition = 'transform 200ms ease-in-out';
205+
selectedItemEl.style.transform = '';
206+
selectedItemEl.classList.remove(ITEM_REORDER_SELECTED);
205207
setTimeout(() => this.completeSync(), 200);
206208
} else {
207209
this.ionItemReorder.emit({
@@ -222,7 +224,7 @@ export class ReorderGroup implements ComponentInterface {
222224
const toIndex = this.lastToIndex;
223225
const fromIndex = indexForItem(selectedItemEl);
224226

225-
if (!listOrReorder || listOrReorder === true) {
227+
if ((!listOrReorder || listOrReorder === true) && toIndex !== fromIndex) {
226228
const ref = (fromIndex < toIndex)
227229
? children[toIndex + 1]
228230
: children[toIndex];

0 commit comments

Comments
 (0)