@lynx-js/react 0.110.0 → 0.111.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/components/lib/DeferredListItem.d.ts +7 -0
- package/components/lib/DeferredListItem.jsx +40 -0
- package/components/lib/DeferredListItem.jsx.map +1 -0
- package/components/lib/Page.js.map +1 -1
- package/components/lib/index.d.ts +1 -0
- package/components/lib/index.js +1 -0
- package/components/lib/index.js.map +1 -1
- package/components/src/DeferredListItem.tsx +56 -0
- package/components/src/Page.ts +1 -1
- package/components/src/index.ts +1 -0
- package/package.json +1 -1
- package/refresh/.turbo/turbo-build.log +1 -1
- package/runtime/lazy/react-lepus.js +1 -0
- package/runtime/lazy/react.js +1 -0
- package/runtime/lepus/index.d.ts +1 -1
- package/runtime/lepus/index.js +44 -0
- package/runtime/lib/backgroundSnapshot.d.ts +2 -1
- package/runtime/lib/backgroundSnapshot.js +64 -41
- package/runtime/lib/backgroundSnapshot.js.map +1 -1
- package/runtime/lib/compat/initData.d.ts +7 -5
- package/runtime/lib/compat/initData.js +11 -2
- package/runtime/lib/compat/initData.js.map +1 -1
- package/runtime/lib/compat/lynxComponent.js +10 -12
- package/runtime/lib/compat/lynxComponent.js.map +1 -1
- package/runtime/lib/debug/profile.js +1 -0
- package/runtime/lib/debug/profile.js.map +1 -1
- package/runtime/lib/gesture/processGestureBagkround.d.ts +1 -1
- package/runtime/lib/gesture/processGestureBagkround.js +4 -1
- package/runtime/lib/gesture/processGestureBagkround.js.map +1 -1
- package/runtime/lib/gesture/types.js.map +1 -1
- package/runtime/lib/hooks/useLynxGlobalEventListener.d.ts +1 -1
- package/runtime/lib/hydrate.d.ts +1 -1
- package/runtime/lib/hydrate.js +5 -4
- package/runtime/lib/hydrate.js.map +1 -1
- package/runtime/lib/index.d.ts +2 -2
- package/runtime/lib/index.js +2 -2
- package/runtime/lib/index.js.map +1 -1
- package/runtime/lib/internal.d.ts +3 -2
- package/runtime/lib/internal.js +3 -2
- package/runtime/lib/internal.js.map +1 -1
- package/runtime/lib/legacy-react-runtime/index.js +1 -1
- package/runtime/lib/legacy-react-runtime/index.js.map +1 -1
- package/runtime/lib/lifecycle/patch/commit.js +5 -5
- package/runtime/lib/lifecycle/patch/commit.js.map +1 -1
- package/runtime/lib/lifecycle/patch/snapshotPatch.d.ts +9 -9
- package/runtime/lib/lifecycle/patch/snapshotPatch.js +9 -10
- package/runtime/lib/lifecycle/patch/snapshotPatch.js.map +1 -1
- package/runtime/lib/lifecycle/patch/snapshotPatchApply.js.map +1 -1
- package/runtime/lib/lifecycle/patch/updateMainThread.js +11 -12
- package/runtime/lib/lifecycle/patch/updateMainThread.js.map +1 -1
- package/runtime/lib/lifecycle/reload.js +1 -1
- package/runtime/lib/lifecycle/reload.js.map +1 -1
- package/runtime/lib/lifecycleConstant.d.ts +2 -1
- package/runtime/lib/lifecycleConstant.js +1 -0
- package/runtime/lib/lifecycleConstant.js.map +1 -1
- package/runtime/lib/list.d.ts +2 -46
- package/runtime/lib/list.js +124 -211
- package/runtime/lib/list.js.map +1 -1
- package/runtime/lib/listUpdateInfo.d.ts +38 -0
- package/runtime/lib/listUpdateInfo.js +152 -0
- package/runtime/lib/listUpdateInfo.js.map +1 -0
- package/runtime/lib/lynx/calledByNative.js +8 -11
- package/runtime/lib/lynx/calledByNative.js.map +1 -1
- package/runtime/lib/lynx/component.js +11 -14
- package/runtime/lib/lynx/component.js.map +1 -1
- package/runtime/lib/lynx/env.js +1 -2
- package/runtime/lib/lynx/env.js.map +1 -1
- package/runtime/lib/lynx/lazy-bundle.js +48 -21
- package/runtime/lib/lynx/lazy-bundle.js.map +1 -1
- package/runtime/lib/lynx/performance.d.ts +3 -19
- package/runtime/lib/lynx/performance.js +25 -26
- package/runtime/lib/lynx/performance.js.map +1 -1
- package/runtime/lib/lynx/tt.js +10 -5
- package/runtime/lib/lynx/tt.js.map +1 -1
- package/runtime/lib/lynx-api.d.ts +78 -1
- package/runtime/lib/lynx-api.js +3 -0
- package/runtime/lib/lynx-api.js.map +1 -1
- package/runtime/lib/lynx.js +1 -0
- package/runtime/lib/lynx.js.map +1 -1
- package/runtime/lib/opcodes.js +2 -1
- package/runtime/lib/opcodes.js.map +1 -1
- package/runtime/lib/pendingListUpdates.d.ts +6 -0
- package/runtime/lib/pendingListUpdates.js +16 -0
- package/runtime/lib/pendingListUpdates.js.map +1 -0
- package/runtime/lib/renderToOpcodes/index.js +7 -7
- package/runtime/lib/renderToOpcodes/index.js.map +1 -1
- package/runtime/lib/snapshot/dynamicPartType.d.ts +12 -0
- package/runtime/lib/snapshot/dynamicPartType.js +17 -0
- package/runtime/lib/snapshot/dynamicPartType.js.map +1 -0
- package/runtime/lib/snapshot/gesture.js +3 -0
- package/runtime/lib/snapshot/gesture.js.map +1 -1
- package/runtime/lib/snapshot/list.d.ts +3 -0
- package/runtime/lib/snapshot/list.js +23 -0
- package/runtime/lib/snapshot/list.js.map +1 -0
- package/runtime/lib/snapshot/platformInfo.d.ts +10 -0
- package/runtime/lib/snapshot/platformInfo.js +6 -3
- package/runtime/lib/snapshot/platformInfo.js.map +1 -1
- package/runtime/lib/snapshot/ref.d.ts +3 -0
- package/runtime/lib/snapshot/ref.js.map +1 -1
- package/runtime/lib/snapshot/spread.d.ts +2 -2
- package/runtime/lib/snapshot/spread.js +4 -5
- package/runtime/lib/snapshot/spread.js.map +1 -1
- package/runtime/lib/snapshot/workletEvent.js +1 -1
- package/runtime/lib/snapshot/workletEvent.js.map +1 -1
- package/runtime/lib/snapshot/workletRef.d.ts +1 -1
- package/runtime/lib/snapshot/workletRef.js.map +1 -1
- package/runtime/lib/snapshot.d.ts +7 -14
- package/runtime/lib/snapshot.js +36 -31
- package/runtime/lib/snapshot.js.map +1 -1
- package/runtime/lib/snapshotInstanceHydrationMap.js.map +1 -1
- package/runtime/lib/utils.d.ts +1 -0
- package/runtime/lib/utils.js +7 -1
- package/runtime/lib/utils.js.map +1 -1
- package/runtime/src/backgroundSnapshot.ts +78 -63
- package/runtime/src/compat/initData.ts +20 -9
- package/runtime/src/compat/lynxComponent.ts +12 -13
- package/runtime/src/debug/profile.ts +1 -0
- package/runtime/src/gesture/processGestureBagkround.ts +5 -1
- package/runtime/src/gesture/types.ts +3 -0
- package/runtime/src/hooks/useLynxGlobalEventListener.ts +1 -1
- package/runtime/src/hydrate.ts +6 -4
- package/runtime/src/index.ts +2 -0
- package/runtime/src/internal.ts +3 -2
- package/runtime/src/legacy-react-runtime/index.ts +1 -1
- package/runtime/src/lifecycle/patch/commit.ts +5 -11
- package/runtime/src/lifecycle/patch/snapshotPatch.ts +9 -9
- package/runtime/src/lifecycle/patch/snapshotPatchApply.ts +1 -1
- package/runtime/src/lifecycle/patch/updateMainThread.ts +11 -12
- package/runtime/src/lifecycle/reload.ts +1 -1
- package/runtime/src/lifecycleConstant.ts +1 -0
- package/runtime/src/list.ts +143 -278
- package/runtime/src/listUpdateInfo.ts +221 -0
- package/runtime/src/lynx/calledByNative.ts +8 -10
- package/runtime/src/lynx/component.ts +17 -29
- package/runtime/src/lynx/env.ts +1 -2
- package/runtime/src/lynx/lazy-bundle.ts +55 -20
- package/runtime/src/lynx/performance.ts +26 -27
- package/runtime/src/lynx/tt.ts +10 -11
- package/runtime/src/lynx-api.ts +81 -2
- package/runtime/src/lynx.ts +1 -0
- package/runtime/src/opcodes.ts +2 -1
- package/runtime/src/pendingListUpdates.ts +18 -0
- package/runtime/src/renderToOpcodes/index.ts +7 -7
- package/runtime/src/snapshot/dynamicPartType.ts +16 -0
- package/runtime/src/snapshot/gesture.ts +3 -0
- package/runtime/src/snapshot/list.ts +36 -0
- package/runtime/src/snapshot/platformInfo.ts +19 -5
- package/runtime/src/snapshot/ref.ts +1 -0
- package/runtime/src/snapshot/spread.ts +42 -17
- package/runtime/src/snapshot/workletEvent.ts +1 -1
- package/runtime/src/snapshot/workletRef.ts +1 -1
- package/runtime/src/snapshot.ts +41 -34
- package/runtime/src/snapshotInstanceHydrationMap.ts +1 -1
- package/runtime/src/utils.ts +12 -3
- package/testing-library/dist/env/vitest.js +3 -3
- package/testing-library/dist/index.d.ts +4 -1
- package/testing-library/dist/pure.js +1 -1
- package/testing-library/dist/vitest.config.js +45 -8
- package/testing-library/types/entry.d.ts +3 -2
- package/transform/cjs/main.cjs +4 -0
- package/transform/dist/wasm.cjs +1 -1
- package/types/react.d.ts +21 -1
- package/types/react.docs.d.ts +1 -1
package/runtime/lib/list.d.ts
CHANGED
|
@@ -1,50 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export interface ListUpdateInfo {
|
|
3
|
-
flush(): void;
|
|
4
|
-
onInsertBefore(newNode: SnapshotInstance, existingNode?: SnapshotInstance): void;
|
|
5
|
-
onRemoveChild(child: SnapshotInstance): void;
|
|
6
|
-
onSetAttribute(child: SnapshotInstance, attr: any, oldAttr: any): void;
|
|
7
|
-
}
|
|
8
|
-
interface InsertAction {
|
|
9
|
-
position: number;
|
|
10
|
-
type: string;
|
|
11
|
-
}
|
|
12
|
-
interface UpdateAction {
|
|
13
|
-
from: number;
|
|
14
|
-
to: number;
|
|
15
|
-
type: string;
|
|
16
|
-
flush: boolean;
|
|
17
|
-
}
|
|
18
|
-
interface ListOperations {
|
|
19
|
-
insertAction: InsertAction[];
|
|
20
|
-
removeAction: number[];
|
|
21
|
-
updateAction: UpdateAction[];
|
|
22
|
-
}
|
|
23
|
-
export declare class ListUpdateInfoRecording implements ListUpdateInfo {
|
|
24
|
-
private list;
|
|
25
|
-
constructor(list: SnapshotInstance);
|
|
26
|
-
flush(): void;
|
|
27
|
-
private oldChildNodes;
|
|
28
|
-
private removeChild;
|
|
29
|
-
private insertBefore;
|
|
30
|
-
private appendChild;
|
|
31
|
-
private platformInfoUpdate;
|
|
32
|
-
onInsertBefore(newNode: SnapshotInstance, existingNode?: SnapshotInstance): void;
|
|
33
|
-
onRemoveChild(child: SnapshotInstance): void;
|
|
34
|
-
onSetAttribute(child: SnapshotInstance, attr: any, _oldAttr: any): void;
|
|
35
|
-
private __toAttribute;
|
|
36
|
-
toJSON(): [ListOperations];
|
|
37
|
-
}
|
|
38
|
-
export declare const __pendingListUpdates: {
|
|
39
|
-
values: Record<number, ListUpdateInfo>;
|
|
40
|
-
clear(): void;
|
|
41
|
-
flush(): void;
|
|
42
|
-
};
|
|
1
|
+
import type { SnapshotInstance } from './snapshot.js';
|
|
43
2
|
export declare const gSignMap: Record<number, Map<number, SnapshotInstance>>;
|
|
44
3
|
export declare const gRecycleMap: Record<number, Map<string, Map<number, SnapshotInstance>>>;
|
|
45
4
|
export declare function clearListGlobal(): void;
|
|
46
|
-
export declare function componentAtIndexFactory(ctx: SnapshotInstance[]): [ComponentAtIndexCallback, ComponentAtIndexesCallback];
|
|
5
|
+
export declare function componentAtIndexFactory(ctx: SnapshotInstance[], hydrateFunction: (before: SnapshotInstance, after: SnapshotInstance) => void): [ComponentAtIndexCallback, ComponentAtIndexesCallback];
|
|
47
6
|
export declare function enqueueComponentFactory(): EnqueueComponentCallback;
|
|
48
|
-
export declare function snapshotCreateList(pageId: number, _ctx: SnapshotInstance, _expIndex: number): FiberElement;
|
|
49
|
-
export declare function snapshotDestroyList(si: SnapshotInstance): void;
|
|
50
|
-
export {};
|
package/runtime/lib/list.js
CHANGED
|
@@ -1,188 +1,13 @@
|
|
|
1
1
|
// Copyright 2024 The Lynx Authors. All rights reserved.
|
|
2
2
|
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
3
|
// LICENSE file in the root directory of this source tree.
|
|
4
|
-
import {
|
|
4
|
+
import { LifecycleConstant } from './lifecycleConstant.js';
|
|
5
5
|
import { applyRefQueue } from './snapshot/workletRef.js';
|
|
6
|
-
import {} from './
|
|
7
|
-
// class ListUpdateInfoDiffing implements ListUpdateInfo {
|
|
8
|
-
// private oldChildNodes: SnapshotInstance[];
|
|
9
|
-
// constructor(private list: SnapshotInstance) {
|
|
10
|
-
// this.oldChildNodes = list.childNodes;
|
|
11
|
-
// }
|
|
12
|
-
// flush(): void {
|
|
13
|
-
// Object.defineProperty(SnapshotInstance.prototype, "key", {
|
|
14
|
-
// get: function () {
|
|
15
|
-
// return this.values[0]["item-key"];
|
|
16
|
-
// },
|
|
17
|
-
// });
|
|
18
|
-
// }
|
|
19
|
-
// onInsertBefore(newNode: SnapshotInstance, existingNode?: SnapshotInstance | undefined): void {}
|
|
20
|
-
// onRemoveChild(child: SnapshotInstance): void {}
|
|
21
|
-
// onSetAttribute(child: SnapshotInstance, attr: any): void {
|
|
22
|
-
// throw new Error("Method not implemented.");
|
|
23
|
-
// }
|
|
24
|
-
// }
|
|
25
|
-
export class ListUpdateInfoRecording {
|
|
26
|
-
list;
|
|
27
|
-
constructor(list) {
|
|
28
|
-
this.list = list;
|
|
29
|
-
this.oldChildNodes = list.childNodes;
|
|
30
|
-
// this.oldChildNodesSet = new Set(this.oldChildNodes);
|
|
31
|
-
}
|
|
32
|
-
// private __commitAndReset() {
|
|
33
|
-
// (this.__pendingAttributes ??= []).push(this.__toAttribute());
|
|
34
|
-
// this.oldChildNodes = this.list.childNodes;
|
|
35
|
-
// this.oldChildNodesSet = new Set(this.oldChildNodes);
|
|
36
|
-
// this.removeChild1.clear();
|
|
37
|
-
// this.removeChild2.clear();
|
|
38
|
-
// this.insertBefore.clear();
|
|
39
|
-
// this.appendChild.length = 0;
|
|
40
|
-
// this.platformInfoUpdate.clear();
|
|
41
|
-
// }
|
|
42
|
-
flush() {
|
|
43
|
-
const elementIndex = this.list.__snapshot_def.slot[0][1];
|
|
44
|
-
const listElement = this.list.__elements[elementIndex];
|
|
45
|
-
// this.__pendingAttributes?.forEach(pendingAttribute => {
|
|
46
|
-
// __SetAttribute(listElement, "update-list-info", pendingAttribute);
|
|
47
|
-
// __FlushElementTree(listElement);
|
|
48
|
-
// });
|
|
49
|
-
__SetAttribute(listElement, 'update-list-info', this.__toAttribute());
|
|
50
|
-
const [componentAtIndex, componentAtIndexes] = componentAtIndexFactory(this.list.childNodes);
|
|
51
|
-
__UpdateListCallbacks(listElement, componentAtIndex, enqueueComponentFactory(), componentAtIndexes);
|
|
52
|
-
}
|
|
53
|
-
oldChildNodes;
|
|
54
|
-
// private oldChildNodesSet: Set<SnapshotInstance>;
|
|
55
|
-
removeChild = new Set();
|
|
56
|
-
insertBefore = new Map(); // insert V before K
|
|
57
|
-
appendChild = [];
|
|
58
|
-
platformInfoUpdate = new Map();
|
|
59
|
-
onInsertBefore(newNode, existingNode) {
|
|
60
|
-
// @ts-ignore
|
|
61
|
-
if (newNode.__parent) {
|
|
62
|
-
// if (!this.oldChildNodesSet.has(newNode)) {
|
|
63
|
-
// this.__commitAndReset();
|
|
64
|
-
// }
|
|
65
|
-
this.removeChild.add(newNode);
|
|
66
|
-
}
|
|
67
|
-
if (existingNode) {
|
|
68
|
-
// if (!this.oldChildNodesSet.has(existingNode)) {
|
|
69
|
-
// this.__commitAndReset();
|
|
70
|
-
// }
|
|
71
|
-
const newChildren = this.insertBefore.get(existingNode) ?? [];
|
|
72
|
-
newChildren.push(newNode);
|
|
73
|
-
this.insertBefore.set(existingNode, newChildren);
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
this.appendChild.push(newNode);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
onRemoveChild(child) {
|
|
80
|
-
// if (!this.oldChildNodesSet.has(child)) {
|
|
81
|
-
// this.__commitAndReset();
|
|
82
|
-
// }
|
|
83
|
-
this.removeChild.add(child);
|
|
84
|
-
}
|
|
85
|
-
onSetAttribute(child, attr, _oldAttr) {
|
|
86
|
-
this.platformInfoUpdate.set(child, attr);
|
|
87
|
-
}
|
|
88
|
-
__toAttribute() {
|
|
89
|
-
const { removeChild, insertBefore, appendChild, platformInfoUpdate } = this;
|
|
90
|
-
const removals = [];
|
|
91
|
-
const insertions = [];
|
|
92
|
-
const updates = [];
|
|
93
|
-
let j = 0;
|
|
94
|
-
for (let i = 0; i < this.oldChildNodes.length; i++, j++) {
|
|
95
|
-
const child = this.oldChildNodes[i];
|
|
96
|
-
if (platformInfoUpdate.has(child)) {
|
|
97
|
-
updates.push({
|
|
98
|
-
...platformInfoUpdate.get(child),
|
|
99
|
-
from: +j,
|
|
100
|
-
to: +j,
|
|
101
|
-
// no flush
|
|
102
|
-
flush: false,
|
|
103
|
-
type: child.type,
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
if (insertBefore.has(child)) {
|
|
107
|
-
const children = insertBefore.get(child);
|
|
108
|
-
children.forEach(c => {
|
|
109
|
-
insertions.push({
|
|
110
|
-
position: j,
|
|
111
|
-
type: c.type,
|
|
112
|
-
...c.__listItemPlatformInfo,
|
|
113
|
-
});
|
|
114
|
-
j++;
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
if (removeChild.has(child)) {
|
|
118
|
-
removals.push(i);
|
|
119
|
-
removeChild.delete(child);
|
|
120
|
-
j--;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
for (let i = 0; i < appendChild.length; i++) {
|
|
124
|
-
const child = appendChild[i];
|
|
125
|
-
insertions.push({
|
|
126
|
-
position: j + i,
|
|
127
|
-
type: child.type,
|
|
128
|
-
...child.__listItemPlatformInfo,
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
insertions.sort((a, b) => a.position - b.position);
|
|
132
|
-
removals.sort((a, b) => a - b);
|
|
133
|
-
if (SystemInfo.lynxSdkVersion === '2.14'
|
|
134
|
-
|| SystemInfo.lynxSdkVersion === '2.15'
|
|
135
|
-
|| SystemInfo.lynxSdkVersion === '2.16'
|
|
136
|
-
|| SystemInfo.lynxSdkVersion === '2.17'
|
|
137
|
-
|| SystemInfo.lynxSdkVersion === '2.18') {
|
|
138
|
-
const elementIndex = this.list.__snapshot_def.slot[0][1];
|
|
139
|
-
const listElement = this.list.__elements[elementIndex];
|
|
140
|
-
// `__GetAttributeByName` is available since Lynx 2.14
|
|
141
|
-
if (__GetAttributeByName(listElement, 'custom-list-name') === 'list-container') {
|
|
142
|
-
// `updateAction` must be full (not incremental) when Lynx version <= 2.18 and
|
|
143
|
-
// when `custom-list-name` is `list-container` (available when Lynx version >= 2.14) is true,
|
|
144
|
-
updates.length = 0;
|
|
145
|
-
this.list.childNodes.forEach((child, index) => {
|
|
146
|
-
updates.push({
|
|
147
|
-
...child.__listItemPlatformInfo,
|
|
148
|
-
from: index,
|
|
149
|
-
to: index,
|
|
150
|
-
// no flush
|
|
151
|
-
flush: false,
|
|
152
|
-
type: child.type,
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return {
|
|
158
|
-
insertAction: insertions,
|
|
159
|
-
removeAction: removals,
|
|
160
|
-
updateAction: updates,
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
toJSON() {
|
|
164
|
-
// if (this.__pendingAttributes) {
|
|
165
|
-
// return [...this.__pendingAttributes, this.__toAttribute()];
|
|
166
|
-
// } else {
|
|
167
|
-
// return [this.__toAttribute()];
|
|
168
|
-
// }
|
|
169
|
-
return [this.__toAttribute()];
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
export const __pendingListUpdates = {
|
|
173
|
-
values: {},
|
|
174
|
-
clear() {
|
|
175
|
-
this.values = {};
|
|
176
|
-
},
|
|
177
|
-
flush() {
|
|
178
|
-
Object.values(this.values).forEach(update => {
|
|
179
|
-
update.flush();
|
|
180
|
-
});
|
|
181
|
-
this.clear();
|
|
182
|
-
},
|
|
183
|
-
};
|
|
6
|
+
import { maybePromise } from './utils.js';
|
|
184
7
|
export const gSignMap = {};
|
|
185
8
|
export const gRecycleMap = {};
|
|
9
|
+
const gParentWeakMap = new WeakMap();
|
|
10
|
+
const resolvedPromise = /* @__PURE__ */ Promise.resolve();
|
|
186
11
|
export function clearListGlobal() {
|
|
187
12
|
for (const key in gSignMap) {
|
|
188
13
|
delete gSignMap[key];
|
|
@@ -191,18 +16,72 @@ export function clearListGlobal() {
|
|
|
191
16
|
delete gRecycleMap[key];
|
|
192
17
|
}
|
|
193
18
|
}
|
|
194
|
-
export function componentAtIndexFactory(ctx) {
|
|
195
|
-
|
|
19
|
+
export function componentAtIndexFactory(ctx, hydrateFunction) {
|
|
20
|
+
// A hack workaround to ensure childCtx has no direct reference through `__parent` to list,
|
|
21
|
+
// to avoid memory leak.
|
|
22
|
+
// TODO(hzy): make `__parent` a WeakRef or `#__parent` in the future.
|
|
23
|
+
ctx.forEach((childCtx) => {
|
|
24
|
+
if (gParentWeakMap.has(childCtx)) {
|
|
25
|
+
// do it only once
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
gParentWeakMap.set(childCtx, childCtx.parentNode);
|
|
29
|
+
Object.defineProperty(childCtx, '__parent', {
|
|
30
|
+
get: () => gParentWeakMap.get(childCtx),
|
|
31
|
+
set: (value) => {
|
|
32
|
+
gParentWeakMap.set(childCtx, value);
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
const componentAtChildCtx = (list, listID, childCtx, operationID, enableReuseNotification, enableBatchRender = false, asyncFlush = false) => {
|
|
196
38
|
const signMap = gSignMap[listID];
|
|
197
39
|
const recycleMap = gRecycleMap[listID];
|
|
198
40
|
if (!signMap || !recycleMap) {
|
|
199
41
|
throw new Error('componentAtIndex called on removed list');
|
|
200
42
|
}
|
|
201
|
-
const
|
|
202
|
-
|
|
203
|
-
|
|
43
|
+
const platformInfo = childCtx.__listItemPlatformInfo ?? {};
|
|
44
|
+
// The lifecycle of this `__extraProps.isReady`:
|
|
45
|
+
// 0 -> Promise<number> -> 1
|
|
46
|
+
// 0: The initial state, the list-item is not ready yet, we will send a event to background
|
|
47
|
+
// when `componentAtIndex` is called on it
|
|
48
|
+
// Promise<number>: A promise that will be resolved when the list-item is ready
|
|
49
|
+
// 1: The list-item is ready, we can use it to render the list
|
|
50
|
+
if (childCtx.__extraProps?.['isReady'] === 0) {
|
|
51
|
+
if (typeof __GetAttributeByName === 'function'
|
|
52
|
+
&& __GetAttributeByName(list, 'custom-list-name') === 'list-container') {
|
|
53
|
+
// we are in supported env
|
|
54
|
+
// do not throw
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
throw new Error('Unsupported: `<list-item/>` with `defer={true}` must be used with `<list custom-list-name="list-container"/>`');
|
|
58
|
+
}
|
|
59
|
+
__OnLifecycleEvent([LifecycleConstant.publishEvent, {
|
|
60
|
+
handlerName: `${childCtx.__id}:__extraProps:onComponentAtIndex`,
|
|
61
|
+
data: {},
|
|
62
|
+
}]);
|
|
63
|
+
let p;
|
|
64
|
+
return (p = new Promise((resolve) => {
|
|
65
|
+
Object.defineProperty(childCtx.__extraProps, 'isReady', {
|
|
66
|
+
set(isReady) {
|
|
67
|
+
if (isReady === 1) {
|
|
68
|
+
delete childCtx.__extraProps['isReady'];
|
|
69
|
+
childCtx.__extraProps['isReady'] = 1;
|
|
70
|
+
void resolvedPromise.then(() => {
|
|
71
|
+
// the cellIndex may be changed already, but the `childCtx` is the same
|
|
72
|
+
resolve(componentAtChildCtx(list, listID, childCtx, operationID, enableReuseNotification));
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
get() {
|
|
77
|
+
return p;
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
82
|
+
else if (maybePromise(childCtx.__extraProps?.['isReady'])) {
|
|
83
|
+
throw new Error('componentAtIndex was called on a pending deferred list item');
|
|
204
84
|
}
|
|
205
|
-
const platformInfo = childCtx.__listItemPlatformInfo || {};
|
|
206
85
|
const uniqID = childCtx.type + (platformInfo['reuse-identifier'] ?? '');
|
|
207
86
|
const recycleSignMap = recycleMap.get(uniqID);
|
|
208
87
|
if (childCtx.__elements) {
|
|
@@ -240,11 +119,17 @@ export function componentAtIndexFactory(ctx) {
|
|
|
240
119
|
const [first] = recycleSignMap;
|
|
241
120
|
const [sign, oldCtx] = first;
|
|
242
121
|
recycleSignMap.delete(sign);
|
|
243
|
-
|
|
122
|
+
hydrateFunction(oldCtx, childCtx);
|
|
244
123
|
oldCtx.unRenderElements();
|
|
245
124
|
if (!oldCtx.__id) {
|
|
246
125
|
oldCtx.tearDown();
|
|
247
126
|
}
|
|
127
|
+
else if (oldCtx.__extraProps?.['isReady'] === 1) {
|
|
128
|
+
__OnLifecycleEvent([LifecycleConstant.publishEvent, {
|
|
129
|
+
handlerName: `${oldCtx.__id}:__extraProps:onRecycleComponent`,
|
|
130
|
+
data: {},
|
|
131
|
+
}]);
|
|
132
|
+
}
|
|
248
133
|
const root = childCtx.__element_root;
|
|
249
134
|
applyRefQueue();
|
|
250
135
|
if (!enableBatchRender) {
|
|
@@ -298,21 +183,66 @@ export function componentAtIndexFactory(ctx) {
|
|
|
298
183
|
signMap.set(sign, childCtx);
|
|
299
184
|
return sign;
|
|
300
185
|
};
|
|
301
|
-
|
|
302
|
-
const
|
|
303
|
-
|
|
304
|
-
|
|
186
|
+
function componentAtIndex(list, listID, cellIndex, operationID, enableReuseNotification) {
|
|
187
|
+
const childCtx = ctx[cellIndex];
|
|
188
|
+
if (!childCtx) {
|
|
189
|
+
throw new Error('childCtx not found');
|
|
190
|
+
}
|
|
191
|
+
const r = componentAtChildCtx(list, listID, childCtx, operationID, enableReuseNotification);
|
|
192
|
+
/* v8 ignore start */
|
|
193
|
+
if (process.env['NODE_ENV'] === 'test') {
|
|
194
|
+
return r;
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
return typeof r === 'number' ? r : undefined;
|
|
198
|
+
}
|
|
199
|
+
/* v8 ignore end */
|
|
200
|
+
}
|
|
201
|
+
function componentAtIndexes(list, listID, cellIndexes, operationIDs, enableReuseNotification, asyncFlush) {
|
|
202
|
+
let hasUnready = false;
|
|
203
|
+
const p = [];
|
|
204
|
+
cellIndexes.forEach((cellIndex, index) => {
|
|
205
|
+
const operationID = operationIDs[index];
|
|
206
|
+
const childCtx = ctx[cellIndex];
|
|
207
|
+
if (!childCtx) {
|
|
208
|
+
throw new Error('childCtx not found');
|
|
209
|
+
}
|
|
210
|
+
const u = componentAtChildCtx(list, listID, childCtx, operationID, enableReuseNotification, true, asyncFlush);
|
|
211
|
+
if (typeof u === 'number') {
|
|
212
|
+
// ready
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
hasUnready = true;
|
|
216
|
+
}
|
|
217
|
+
p.push(u);
|
|
305
218
|
});
|
|
219
|
+
// We need __FlushElementTree twice:
|
|
220
|
+
// 1. The first time is sync, we flush the items that are ready, with unready items' uiSign as -1.
|
|
221
|
+
// 2. The second time is async, with all the uiSigns.
|
|
222
|
+
// NOTE: The `operationIDs` passed to __FlushElementTree must be the one passed in,
|
|
223
|
+
// not the one generated by any code here, to workaround a bug of Lynx Engine.
|
|
224
|
+
// So we CANNOT split the `operationIDs` into two parts: one for ready items, one for unready items.
|
|
225
|
+
if (hasUnready) {
|
|
226
|
+
void Promise.all(p).then((uiSigns) => {
|
|
227
|
+
__FlushElementTree(list, {
|
|
228
|
+
triggerLayout: true,
|
|
229
|
+
operationIDs,
|
|
230
|
+
elementIDs: uiSigns,
|
|
231
|
+
listID,
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
}
|
|
306
235
|
__FlushElementTree(list, {
|
|
307
236
|
triggerLayout: true,
|
|
308
|
-
operationIDs
|
|
309
|
-
elementIDs:
|
|
237
|
+
operationIDs,
|
|
238
|
+
elementIDs: cellIndexes.map((_, index) => typeof p[index] === 'number' ? p[index] : -1),
|
|
310
239
|
listID,
|
|
311
240
|
});
|
|
312
|
-
}
|
|
241
|
+
}
|
|
313
242
|
return [componentAtIndex, componentAtIndexes];
|
|
314
243
|
}
|
|
315
244
|
export function enqueueComponentFactory() {
|
|
245
|
+
// eslint-disable-next-line unicorn/consistent-function-scoping
|
|
316
246
|
const enqueueComponent = (_, listID, sign) => {
|
|
317
247
|
const signMap = gSignMap[listID];
|
|
318
248
|
const recycleMap = gRecycleMap[listID];
|
|
@@ -323,7 +253,7 @@ export function enqueueComponentFactory() {
|
|
|
323
253
|
if (!childCtx) {
|
|
324
254
|
return;
|
|
325
255
|
}
|
|
326
|
-
const platformInfo = childCtx.__listItemPlatformInfo
|
|
256
|
+
const platformInfo = childCtx.__listItemPlatformInfo ?? {};
|
|
327
257
|
const uniqID = childCtx.type + (platformInfo['reuse-identifier'] ?? '');
|
|
328
258
|
if (!recycleMap.has(uniqID)) {
|
|
329
259
|
recycleMap.set(uniqID, new Map());
|
|
@@ -332,21 +262,4 @@ export function enqueueComponentFactory() {
|
|
|
332
262
|
};
|
|
333
263
|
return enqueueComponent;
|
|
334
264
|
}
|
|
335
|
-
export function snapshotCreateList(pageId, _ctx, _expIndex) {
|
|
336
|
-
const signMap = new Map();
|
|
337
|
-
const recycleMap = new Map();
|
|
338
|
-
const [componentAtIndex, componentAtIndexes] = componentAtIndexFactory([]);
|
|
339
|
-
const list = __CreateList(pageId, componentAtIndex, enqueueComponentFactory(), {}, componentAtIndexes);
|
|
340
|
-
const listID = __GetElementUniqueID(list);
|
|
341
|
-
gSignMap[listID] = signMap;
|
|
342
|
-
gRecycleMap[listID] = recycleMap;
|
|
343
|
-
return list;
|
|
344
|
-
}
|
|
345
|
-
export function snapshotDestroyList(si) {
|
|
346
|
-
const [, elementIndex] = si.__snapshot_def.slot[0];
|
|
347
|
-
const list = si.__elements[elementIndex];
|
|
348
|
-
const listID = __GetElementUniqueID(list);
|
|
349
|
-
delete gSignMap[listID];
|
|
350
|
-
delete gRecycleMap[listID];
|
|
351
|
-
}
|
|
352
265
|
//# sourceMappingURL=list.js.map
|
package/runtime/lib/list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { SnapshotInstance } from './snapshot.js';
|
|
2
|
+
export interface ListUpdateInfo {
|
|
3
|
+
flush(): void;
|
|
4
|
+
onInsertBefore(newNode: SnapshotInstance, existingNode?: SnapshotInstance): void;
|
|
5
|
+
onRemoveChild(child: SnapshotInstance): void;
|
|
6
|
+
onSetAttribute(child: SnapshotInstance, attr: any, oldAttr: any): void;
|
|
7
|
+
}
|
|
8
|
+
interface InsertAction {
|
|
9
|
+
position: number;
|
|
10
|
+
type: string;
|
|
11
|
+
}
|
|
12
|
+
interface UpdateAction {
|
|
13
|
+
from: number;
|
|
14
|
+
to: number;
|
|
15
|
+
type: string;
|
|
16
|
+
flush: boolean;
|
|
17
|
+
}
|
|
18
|
+
interface ListOperations {
|
|
19
|
+
insertAction: InsertAction[];
|
|
20
|
+
removeAction: number[];
|
|
21
|
+
updateAction: UpdateAction[];
|
|
22
|
+
}
|
|
23
|
+
export declare class ListUpdateInfoRecording implements ListUpdateInfo {
|
|
24
|
+
private list;
|
|
25
|
+
constructor(list: SnapshotInstance);
|
|
26
|
+
flush(): void;
|
|
27
|
+
private oldChildNodes;
|
|
28
|
+
private removeChild;
|
|
29
|
+
private insertBefore;
|
|
30
|
+
private appendChild;
|
|
31
|
+
private platformInfoUpdate;
|
|
32
|
+
onInsertBefore(newNode: SnapshotInstance, existingNode?: SnapshotInstance): void;
|
|
33
|
+
onRemoveChild(child: SnapshotInstance): void;
|
|
34
|
+
onSetAttribute(child: SnapshotInstance, attr: any, _oldAttr: any): void;
|
|
35
|
+
private __toAttribute;
|
|
36
|
+
toJSON(): [ListOperations];
|
|
37
|
+
}
|
|
38
|
+
export {};
|