Skip to content

Commit

Permalink
fix: update and delete for loop data.type
Browse files Browse the repository at this point in the history
  • Loading branch information
frankpagan committed Oct 16, 2023
1 parent 1921e57 commit cc5e4b5
Showing 1 changed file with 27 additions and 24 deletions.
51 changes: 27 additions & 24 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ async function render({ source, element, data, key, index, currentIndex, update,

for (let i = 0; i < element.length; i++) {
if (!key)
key = element[i].getAttribute('render')
key = element[i].getAttribute('render') || type

let renderedNode = renderedNodes.get(element[i])
if (source) {
Expand All @@ -111,33 +111,36 @@ async function render({ source, element, data, key, index, currentIndex, update,
}

if (remove) {
let cloneKey
if (type === 'object') {
cloneKey = data[type][0]._id;
} else {
cloneKey = data[type][0].name;
}

let clone = renderedNode.clones.get(cloneKey)
if (!clone) return

renderedNode.clones.delete(cloneKey)
renderedNodes.delete(clone)
clone.remove()
} else if (key || Array.isArray(data)) {
if (update) {
let clone
for (let j = 0; j < data[type].length; j++) {
let cloneKey
if (type === 'object') {
clone = renderedNode.clones.get(data[type][0]._id);
cloneKey = data[type][j]._id;
} else {
clone = renderedNode.clones.get(data[type][0].name);
cloneKey = data[type][j].name;
}

if (!currentIndex)
currentIndex = data.$filter.currentIndex

let clone = renderedNode.clones.get(cloneKey)
if (!clone) return

renderedNode.clones.delete(cloneKey)
renderedNodes.delete(clone)
clone.remove()
}
} else if (key || Array.isArray(data)) {
if (update) {
for (let j = 0; j < data[type].length; j++) {
let clone
if (type === 'object') {
clone = renderedNode.clones.get(data[type][j]._id);
} else {
clone = renderedNode.clones.get(data[type][j].name);
}

if (!currentIndex)
currentIndex = data.$filter.currentIndex

if (!clone) return

await renderValues(clone, { object: data[type][j] });
if (currentIndex >= 0)
insertElement(renderedNode, clone, index, currentIndex)
Expand All @@ -161,8 +164,8 @@ async function render({ source, element, data, key, index, currentIndex, update,
}

async function renderTemplate(template, data, key, index, keyPath) {
if (!key)
key = template.getAttribute('render')
// if (!key)
// key = template.getAttribute('render')

let templateData = renderedNodes.get(template)
if (!templateData) {
Expand Down

0 comments on commit cc5e4b5

Please sign in to comment.