Skip to content

Commit 8525ee0

Browse files
committed
refactor: Update vdom.Helper.updateBatch to return vnodes Map (#8836)
- Changed updateBatch return to { vnodes: { [id]: vnode } } - Removed 'results' array from return - Updated VdomLifecycle.executeVdomUpdate to iterate vnodes map - Verified tests pass
1 parent 040d646 commit 8525ee0

2 files changed

Lines changed: 11 additions & 14 deletions

File tree

src/mixin/VdomLifecycle.mjs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -247,21 +247,18 @@ class VdomLifecycle extends Base {
247247
}
248248

249249
// Distribute results back to ALL components in the batch
250-
response.results.forEach((result, index) => {
251-
const
252-
payload = Object.values(updates)[index],
253-
componentId = payload.vnode?.id || payload.vdom?.id,
254-
component = Neo.getComponent(componentId);
250+
Object.entries(response.vnodes).forEach(([id, vnode]) => {
251+
const component = Neo.getComponent(id);
255252

256253
if (component && !component.isDestroyed) {
257-
component.vnode = result.vnode;
254+
component.vnode = vnode;
258255

259256
// Resolve the update for this component and its merged children
260257
// Note: response.deltas contains the aggregated deltas for the whole batch
261258
component.resolveVdomUpdate({
262259
deltas: response.deltas,
263-
vnode : result.vnode
264-
}, VDomUpdate.getMergedChildIds(componentId));
260+
vnode
261+
}, VDomUpdate.getMergedChildIds(id));
265262
}
266263
});
267264
}

src/vdom/Helper.mjs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -785,24 +785,24 @@ class Helper extends Base {
785785
* Processes a map of updates sequentially and aggregates the results.
786786
* @param {Object} data
787787
* @param {Object} data.updates A map of update config objects: {componentId: updateOpts}
788-
* @returns {Object} { deltas: Object[], results: Object[] }
788+
* @returns {Object} { deltas: Object[], vnodes: Object }
789789
*/
790790
updateBatch(data) {
791791
let me = this,
792792
allDeltas = [],
793-
results = [],
793+
vnodes = {},
794794
result;
795795

796-
Object.values(data.updates).forEach(updateOpts => {
796+
Object.entries(data.updates).forEach(([id, updateOpts]) => {
797797
result = me.update(updateOpts);
798798
allDeltas.push(...result.deltas);
799-
results.push({vnode: result.vnode});
799+
vnodes[id] = result.vnode;
800800
});
801801

802802
return {
803803
deltas : allDeltas,
804-
results : results,
805-
updateVdom: true
804+
updateVdom: true,
805+
vnodes
806806
}
807807
}
808808
}

0 commit comments

Comments
 (0)