guy 7 years ago
parent
commit
58c4dd669e
  1. 27
      src/core/wrapper/layout.js

27
src/core/wrapper/layout.js

@ -400,29 +400,11 @@ BI.Layout = BI.inherit(BI.Widget, {
oldEndVnode = oldCh[--oldEndIdx]; oldEndVnode = oldCh[--oldEndIdx];
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} else { } else {
if (oldKeyToIdx === undefined) {
oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);
}
idxInOld = oldKeyToIdx[newStartVnode.key];
if (BI.isNull(idxInOld)) {
var node = addNode(newStartVnode);
insertBefore(node, oldStartVnode);
newStartVnode = newCh[++newStartIdx];
} else {
elmToMove = oldCh[idxInOld];
var node = addNode(newStartVnode); var node = addNode(newStartVnode);
insertBefore(node, oldStartVnode); insertBefore(node, oldStartVnode);
// if (elmToMove.sel !== newStartVnode.sel) {
// api.insertBefore(parentElm, createElm(newStartVnode), oldStartVnode.elm);
// } else {
// updated = this.patchItem(elmToMove, newStartVnode, idxInOld) || updated;
// oldCh[idxInOld] = undefined;
// api.insertBefore(parentElm, (elmToMove.elm), oldStartVnode.elm);
// }
newStartVnode = newCh[++newStartIdx]; newStartVnode = newCh[++newStartIdx];
} }
} }
}
if (oldStartIdx > oldEndIdx) { if (oldStartIdx > oldEndIdx) {
before = BI.isNull(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm; before = BI.isNull(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
addVnodes(before, newCh, newStartIdx, newEndIdx); addVnodes(before, newCh, newStartIdx, newEndIdx);
@ -493,15 +475,6 @@ BI.Layout = BI.inherit(BI.Widget, {
} }
} }
function createKeyToOldIdx(children, beginIdx, endIdx) {
var i, map = {}, key;
for (i = beginIdx; i <= endIdx; ++i) {
key = children[i].key;
if (key !== undefined) map[key] = i;
}
return map;
}
return updated; return updated;
}, },

Loading…
Cancel
Save