state.items -> state.onscreen

each-branch-manager
Rich Harris 2 days ago
parent e238e6611e
commit 01db9bfa10

@ -71,8 +71,6 @@ export function index(_, i) {
* @param {null | Node} controlled_anchor * @param {null | Node} controlled_anchor
*/ */
function pause_effects(state, items, controlled_anchor) { function pause_effects(state, items, controlled_anchor) {
var items_map = state.items;
/** @type {TransitionManager[]} */ /** @type {TransitionManager[]} */
var transitions = []; var transitions = [];
var length = items.length; var length = items.length;
@ -90,7 +88,7 @@ function pause_effects(state, items, controlled_anchor) {
); );
clear_text_content(parent_node); clear_text_content(parent_node);
parent_node.append(/** @type {Element} */ (controlled_anchor)); parent_node.append(/** @type {Element} */ (controlled_anchor));
items_map.clear(); state.onscreen.clear();
link(state, items[0].prev, items[length - 1].next); link(state, items[0].prev, items[length - 1].next);
} }
@ -98,7 +96,7 @@ function pause_effects(state, items, controlled_anchor) {
for (var i = 0; i < length; i++) { for (var i = 0; i < length; i++) {
var item = items[i]; var item = items[i];
if (!is_controlled) { if (!is_controlled) {
items_map.delete(item.k); state.onscreen.delete(item.k);
link(state, item.prev, item.next); link(state, item.prev, item.next);
} }
destroy_effect(item.e, !is_controlled); destroy_effect(item.e, !is_controlled);
@ -120,7 +118,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
var anchor = node; var anchor = node;
/** @type {EachState} */ /** @type {EachState} */
var state = { flags, items: new Map(), first: null }; var state = { flags, onscreen: new Map(), first: null };
var is_controlled = (flags & EACH_IS_CONTROLLED) !== 0; var is_controlled = (flags & EACH_IS_CONTROLLED) !== 0;
@ -252,7 +250,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
flags, flags,
get_collection get_collection
); );
state.items.set(key, item); state.onscreen.set(key, item);
prev = item; prev = item;
} }
@ -276,7 +274,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
value = array[i]; value = array[i];
key = get_key(value, i); key = get_key(value, i);
var existing = state.items.get(key) ?? offscreen_items.get(key); var existing = state.onscreen.get(key) ?? offscreen_items.get(key);
if (existing) { if (existing) {
// update before reconciliation, to trigger any async updates // update before reconciliation, to trigger any async updates
@ -304,7 +302,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
keys.add(key); keys.add(key);
} }
for (const [key, item] of state.items) { for (const [key, item] of state.onscreen) {
if (!keys.has(key)) { if (!keys.has(key)) {
batch.skipped_effects.add(item.e); batch.skipped_effects.add(item.e);
} }
@ -364,7 +362,7 @@ function reconcile(
var should_update = (flags & (EACH_ITEM_REACTIVE | EACH_INDEX_REACTIVE)) !== 0; var should_update = (flags & (EACH_ITEM_REACTIVE | EACH_INDEX_REACTIVE)) !== 0;
var length = array.length; var length = array.length;
var items = state.items; var items = state.onscreen;
var first = state.first; var first = state.first;
var current = first; var current = first;

@ -67,7 +67,7 @@ export type EachState = {
/** flags */ /** flags */
flags: number; flags: number;
/** a key -> item lookup */ /** a key -> item lookup */
items: Map<any, EachItem>; onscreen: Map<any, EachItem>;
/** head of the linked list of items */ /** head of the linked list of items */
first: EachItem | null; first: EachItem | null;
}; };

Loading…
Cancel
Save