@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.
Files changed (164) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/components/lib/DeferredListItem.d.ts +7 -0
  3. package/components/lib/DeferredListItem.jsx +40 -0
  4. package/components/lib/DeferredListItem.jsx.map +1 -0
  5. package/components/lib/Page.js.map +1 -1
  6. package/components/lib/index.d.ts +1 -0
  7. package/components/lib/index.js +1 -0
  8. package/components/lib/index.js.map +1 -1
  9. package/components/src/DeferredListItem.tsx +56 -0
  10. package/components/src/Page.ts +1 -1
  11. package/components/src/index.ts +1 -0
  12. package/package.json +1 -1
  13. package/refresh/.turbo/turbo-build.log +1 -1
  14. package/runtime/lazy/react-lepus.js +1 -0
  15. package/runtime/lazy/react.js +1 -0
  16. package/runtime/lepus/index.d.ts +1 -1
  17. package/runtime/lepus/index.js +44 -0
  18. package/runtime/lib/backgroundSnapshot.d.ts +2 -1
  19. package/runtime/lib/backgroundSnapshot.js +64 -41
  20. package/runtime/lib/backgroundSnapshot.js.map +1 -1
  21. package/runtime/lib/compat/initData.d.ts +7 -5
  22. package/runtime/lib/compat/initData.js +11 -2
  23. package/runtime/lib/compat/initData.js.map +1 -1
  24. package/runtime/lib/compat/lynxComponent.js +10 -12
  25. package/runtime/lib/compat/lynxComponent.js.map +1 -1
  26. package/runtime/lib/debug/profile.js +1 -0
  27. package/runtime/lib/debug/profile.js.map +1 -1
  28. package/runtime/lib/gesture/processGestureBagkround.d.ts +1 -1
  29. package/runtime/lib/gesture/processGestureBagkround.js +4 -1
  30. package/runtime/lib/gesture/processGestureBagkround.js.map +1 -1
  31. package/runtime/lib/gesture/types.js.map +1 -1
  32. package/runtime/lib/hooks/useLynxGlobalEventListener.d.ts +1 -1
  33. package/runtime/lib/hydrate.d.ts +1 -1
  34. package/runtime/lib/hydrate.js +5 -4
  35. package/runtime/lib/hydrate.js.map +1 -1
  36. package/runtime/lib/index.d.ts +2 -2
  37. package/runtime/lib/index.js +2 -2
  38. package/runtime/lib/index.js.map +1 -1
  39. package/runtime/lib/internal.d.ts +3 -2
  40. package/runtime/lib/internal.js +3 -2
  41. package/runtime/lib/internal.js.map +1 -1
  42. package/runtime/lib/legacy-react-runtime/index.js +1 -1
  43. package/runtime/lib/legacy-react-runtime/index.js.map +1 -1
  44. package/runtime/lib/lifecycle/patch/commit.js +5 -5
  45. package/runtime/lib/lifecycle/patch/commit.js.map +1 -1
  46. package/runtime/lib/lifecycle/patch/snapshotPatch.d.ts +9 -9
  47. package/runtime/lib/lifecycle/patch/snapshotPatch.js +9 -10
  48. package/runtime/lib/lifecycle/patch/snapshotPatch.js.map +1 -1
  49. package/runtime/lib/lifecycle/patch/snapshotPatchApply.js.map +1 -1
  50. package/runtime/lib/lifecycle/patch/updateMainThread.js +11 -12
  51. package/runtime/lib/lifecycle/patch/updateMainThread.js.map +1 -1
  52. package/runtime/lib/lifecycle/reload.js +1 -1
  53. package/runtime/lib/lifecycle/reload.js.map +1 -1
  54. package/runtime/lib/lifecycleConstant.d.ts +2 -1
  55. package/runtime/lib/lifecycleConstant.js +1 -0
  56. package/runtime/lib/lifecycleConstant.js.map +1 -1
  57. package/runtime/lib/list.d.ts +2 -46
  58. package/runtime/lib/list.js +124 -211
  59. package/runtime/lib/list.js.map +1 -1
  60. package/runtime/lib/listUpdateInfo.d.ts +38 -0
  61. package/runtime/lib/listUpdateInfo.js +152 -0
  62. package/runtime/lib/listUpdateInfo.js.map +1 -0
  63. package/runtime/lib/lynx/calledByNative.js +8 -11
  64. package/runtime/lib/lynx/calledByNative.js.map +1 -1
  65. package/runtime/lib/lynx/component.js +11 -14
  66. package/runtime/lib/lynx/component.js.map +1 -1
  67. package/runtime/lib/lynx/env.js +1 -2
  68. package/runtime/lib/lynx/env.js.map +1 -1
  69. package/runtime/lib/lynx/lazy-bundle.js +48 -21
  70. package/runtime/lib/lynx/lazy-bundle.js.map +1 -1
  71. package/runtime/lib/lynx/performance.d.ts +3 -19
  72. package/runtime/lib/lynx/performance.js +25 -26
  73. package/runtime/lib/lynx/performance.js.map +1 -1
  74. package/runtime/lib/lynx/tt.js +10 -5
  75. package/runtime/lib/lynx/tt.js.map +1 -1
  76. package/runtime/lib/lynx-api.d.ts +78 -1
  77. package/runtime/lib/lynx-api.js +3 -0
  78. package/runtime/lib/lynx-api.js.map +1 -1
  79. package/runtime/lib/lynx.js +1 -0
  80. package/runtime/lib/lynx.js.map +1 -1
  81. package/runtime/lib/opcodes.js +2 -1
  82. package/runtime/lib/opcodes.js.map +1 -1
  83. package/runtime/lib/pendingListUpdates.d.ts +6 -0
  84. package/runtime/lib/pendingListUpdates.js +16 -0
  85. package/runtime/lib/pendingListUpdates.js.map +1 -0
  86. package/runtime/lib/renderToOpcodes/index.js +7 -7
  87. package/runtime/lib/renderToOpcodes/index.js.map +1 -1
  88. package/runtime/lib/snapshot/dynamicPartType.d.ts +12 -0
  89. package/runtime/lib/snapshot/dynamicPartType.js +17 -0
  90. package/runtime/lib/snapshot/dynamicPartType.js.map +1 -0
  91. package/runtime/lib/snapshot/gesture.js +3 -0
  92. package/runtime/lib/snapshot/gesture.js.map +1 -1
  93. package/runtime/lib/snapshot/list.d.ts +3 -0
  94. package/runtime/lib/snapshot/list.js +23 -0
  95. package/runtime/lib/snapshot/list.js.map +1 -0
  96. package/runtime/lib/snapshot/platformInfo.d.ts +10 -0
  97. package/runtime/lib/snapshot/platformInfo.js +6 -3
  98. package/runtime/lib/snapshot/platformInfo.js.map +1 -1
  99. package/runtime/lib/snapshot/ref.d.ts +3 -0
  100. package/runtime/lib/snapshot/ref.js.map +1 -1
  101. package/runtime/lib/snapshot/spread.d.ts +2 -2
  102. package/runtime/lib/snapshot/spread.js +4 -5
  103. package/runtime/lib/snapshot/spread.js.map +1 -1
  104. package/runtime/lib/snapshot/workletEvent.js +1 -1
  105. package/runtime/lib/snapshot/workletEvent.js.map +1 -1
  106. package/runtime/lib/snapshot/workletRef.d.ts +1 -1
  107. package/runtime/lib/snapshot/workletRef.js.map +1 -1
  108. package/runtime/lib/snapshot.d.ts +7 -14
  109. package/runtime/lib/snapshot.js +36 -31
  110. package/runtime/lib/snapshot.js.map +1 -1
  111. package/runtime/lib/snapshotInstanceHydrationMap.js.map +1 -1
  112. package/runtime/lib/utils.d.ts +1 -0
  113. package/runtime/lib/utils.js +7 -1
  114. package/runtime/lib/utils.js.map +1 -1
  115. package/runtime/src/backgroundSnapshot.ts +78 -63
  116. package/runtime/src/compat/initData.ts +20 -9
  117. package/runtime/src/compat/lynxComponent.ts +12 -13
  118. package/runtime/src/debug/profile.ts +1 -0
  119. package/runtime/src/gesture/processGestureBagkround.ts +5 -1
  120. package/runtime/src/gesture/types.ts +3 -0
  121. package/runtime/src/hooks/useLynxGlobalEventListener.ts +1 -1
  122. package/runtime/src/hydrate.ts +6 -4
  123. package/runtime/src/index.ts +2 -0
  124. package/runtime/src/internal.ts +3 -2
  125. package/runtime/src/legacy-react-runtime/index.ts +1 -1
  126. package/runtime/src/lifecycle/patch/commit.ts +5 -11
  127. package/runtime/src/lifecycle/patch/snapshotPatch.ts +9 -9
  128. package/runtime/src/lifecycle/patch/snapshotPatchApply.ts +1 -1
  129. package/runtime/src/lifecycle/patch/updateMainThread.ts +11 -12
  130. package/runtime/src/lifecycle/reload.ts +1 -1
  131. package/runtime/src/lifecycleConstant.ts +1 -0
  132. package/runtime/src/list.ts +143 -278
  133. package/runtime/src/listUpdateInfo.ts +221 -0
  134. package/runtime/src/lynx/calledByNative.ts +8 -10
  135. package/runtime/src/lynx/component.ts +17 -29
  136. package/runtime/src/lynx/env.ts +1 -2
  137. package/runtime/src/lynx/lazy-bundle.ts +55 -20
  138. package/runtime/src/lynx/performance.ts +26 -27
  139. package/runtime/src/lynx/tt.ts +10 -11
  140. package/runtime/src/lynx-api.ts +81 -2
  141. package/runtime/src/lynx.ts +1 -0
  142. package/runtime/src/opcodes.ts +2 -1
  143. package/runtime/src/pendingListUpdates.ts +18 -0
  144. package/runtime/src/renderToOpcodes/index.ts +7 -7
  145. package/runtime/src/snapshot/dynamicPartType.ts +16 -0
  146. package/runtime/src/snapshot/gesture.ts +3 -0
  147. package/runtime/src/snapshot/list.ts +36 -0
  148. package/runtime/src/snapshot/platformInfo.ts +19 -5
  149. package/runtime/src/snapshot/ref.ts +1 -0
  150. package/runtime/src/snapshot/spread.ts +42 -17
  151. package/runtime/src/snapshot/workletEvent.ts +1 -1
  152. package/runtime/src/snapshot/workletRef.ts +1 -1
  153. package/runtime/src/snapshot.ts +41 -34
  154. package/runtime/src/snapshotInstanceHydrationMap.ts +1 -1
  155. package/runtime/src/utils.ts +12 -3
  156. package/testing-library/dist/env/vitest.js +3 -3
  157. package/testing-library/dist/index.d.ts +4 -1
  158. package/testing-library/dist/pure.js +1 -1
  159. package/testing-library/dist/vitest.config.js +45 -8
  160. package/testing-library/types/entry.d.ts +3 -2
  161. package/transform/cjs/main.cjs +4 -0
  162. package/transform/dist/wasm.cjs +1 -1
  163. package/types/react.d.ts +21 -1
  164. package/types/react.docs.d.ts +1 -1
@@ -1,50 +1,6 @@
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 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 {};
@@ -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 { hydrate } from './hydrate.js';
4
+ import { LifecycleConstant } from './lifecycleConstant.js';
5
5
  import { applyRefQueue } from './snapshot/workletRef.js';
6
- import {} from './snapshot.js';
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
- const componentAtIndex = (list, listID, cellIndex, operationID, enableReuseNotification, enableBatchRender = false, asyncFlush = false) => {
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 childCtx = ctx[cellIndex];
202
- if (!childCtx) {
203
- throw new Error('childCtx not found');
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
- hydrate(oldCtx, childCtx);
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
- const componentAtIndexes = (list, listID, cellIndexes, operationIDs, enableReuseNotification, asyncFlush) => {
302
- const uiSigns = cellIndexes.map((cellIndex, index) => {
303
- const operationID = operationIDs[index] ?? 0;
304
- return componentAtIndex(list, listID, cellIndex, operationID, enableReuseNotification, true, asyncFlush);
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: operationIDs,
309
- elementIDs: uiSigns,
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
@@ -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 {};