@lynx-js/react 0.112.6 → 0.114.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 +40 -0
- package/package.json +3 -3
- package/refresh/.turbo/turbo-build.log +2 -2
- package/runtime/lazy/internal.js +2 -0
- package/runtime/lib/internal.d.ts +4 -3
- package/runtime/lib/internal.js +4 -3
- package/runtime/lib/internal.js.map +1 -1
- package/runtime/lib/lifecycle/isRendering.d.ts +3 -0
- package/runtime/lib/lifecycle/isRendering.js +25 -0
- package/runtime/lib/lifecycle/isRendering.js.map +1 -0
- package/runtime/lib/lifecycle/patch/commit.d.ts +2 -1
- package/runtime/lib/lifecycle/patch/commit.js +9 -6
- package/runtime/lib/lifecycle/patch/commit.js.map +1 -1
- package/runtime/lib/lifecycle/patch/updateMainThread.js +17 -4
- package/runtime/lib/lifecycle/patch/updateMainThread.js.map +1 -1
- package/runtime/lib/lifecycle/ref/delay.d.ts +9 -4
- package/runtime/lib/lifecycle/ref/delay.js +23 -16
- package/runtime/lib/lifecycle/ref/delay.js.map +1 -1
- package/runtime/lib/lifecycle/reload.js +0 -2
- 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.js +7 -2
- package/runtime/lib/list.js.map +1 -1
- package/runtime/lib/lynx/tt.js +6 -0
- package/runtime/lib/lynx/tt.js.map +1 -1
- package/runtime/lib/lynx-api.d.ts +3 -3
- package/runtime/lib/lynx-api.js +3 -3
- package/runtime/lib/lynx-api.js.map +1 -1
- package/runtime/lib/lynx.js +4 -7
- package/runtime/lib/lynx.js.map +1 -1
- package/runtime/lib/snapshot/spread.js +3 -3
- package/runtime/lib/snapshot/spread.js.map +1 -1
- package/runtime/lib/utils.d.ts +1 -0
- package/runtime/lib/utils.js +24 -0
- package/runtime/lib/utils.js.map +1 -1
- package/runtime/lib/worklet/call/delayedRunOnMainThreadData.d.ts +3 -0
- package/runtime/lib/worklet/call/delayedRunOnMainThreadData.js +10 -0
- package/runtime/lib/worklet/call/delayedRunOnMainThreadData.js.map +1 -0
- package/runtime/lib/worklet/{execMap.js → call/execMap.js} +1 -1
- package/runtime/lib/worklet/call/execMap.js.map +1 -0
- package/runtime/lib/worklet/{functionCall.js → call/functionCall.js} +2 -2
- package/runtime/lib/worklet/call/functionCall.js.map +1 -0
- package/runtime/lib/worklet/{runOnBackground.js → call/runOnBackground.js} +2 -2
- package/runtime/lib/worklet/call/runOnBackground.js.map +1 -0
- package/runtime/lib/worklet/{runOnMainThread.js → call/runOnMainThread.js} +16 -7
- package/runtime/lib/worklet/call/runOnMainThread.js.map +1 -0
- package/runtime/lib/worklet/call/transformToWorklet.js.map +1 -0
- package/runtime/lib/worklet/ctx.js +1 -1
- package/runtime/lib/worklet/ctx.js.map +1 -1
- package/runtime/lib/worklet/destroy.js +4 -2
- package/runtime/lib/worklet/destroy.js.map +1 -1
- package/runtime/lib/worklet/ref/updateInitValue.d.ts +2 -0
- package/runtime/lib/worklet/ref/updateInitValue.js +24 -0
- package/runtime/lib/worklet/ref/updateInitValue.js.map +1 -0
- package/runtime/lib/worklet/{workletRef.js → ref/workletRef.js} +1 -1
- package/runtime/lib/worklet/ref/workletRef.js.map +1 -0
- package/runtime/lib/worklet/ref/workletRefPool.d.ts +1 -0
- package/runtime/lib/worklet/{workletRefPool.js → ref/workletRefPool.js} +1 -3
- package/runtime/lib/worklet/ref/workletRefPool.js.map +1 -0
- package/testing-library/dist/env/vitest.js +2 -1
- package/testing-library/dist/index.d.ts +25 -2
- package/testing-library/dist/pure.js +21 -9
- package/testing-library/dist/vitest-global-setup.js +19 -0
- package/testing-library/types/entry.d.ts +1 -0
- package/transform/dist/wasm.cjs +1 -1
- package/worklet-runtime/dist/dev.js +18 -10
- package/worklet-runtime/dist/main.js +1 -1
- package/worklet-runtime/lib/bindings/bindings.d.ts +1 -1
- package/worklet-runtime/lib/bindings/bindings.js +9 -1
- package/worklet-runtime/lib/bindings/bindings.js.map +1 -1
- package/worklet-runtime/lib/global.d.ts +1 -0
- package/worklet-runtime/lib/listeners.js +2 -8
- package/worklet-runtime/lib/listeners.js.map +1 -1
- package/worklet-runtime/lib/runOnMainThread.d.ts +2 -0
- package/worklet-runtime/lib/runOnMainThread.js +21 -0
- package/worklet-runtime/lib/runOnMainThread.js.map +1 -0
- package/worklet-runtime/lib/workletRuntime.js +2 -0
- package/worklet-runtime/lib/workletRuntime.js.map +1 -1
- package/runtime/lib/worklet/execMap.js.map +0 -1
- package/runtime/lib/worklet/functionCall.js.map +0 -1
- package/runtime/lib/worklet/runOnBackground.js.map +0 -1
- package/runtime/lib/worklet/runOnMainThread.js.map +0 -1
- package/runtime/lib/worklet/transformToWorklet.js.map +0 -1
- package/runtime/lib/worklet/workletRef.js.map +0 -1
- package/runtime/lib/worklet/workletRefPool.d.ts +0 -1
- package/runtime/lib/worklet/workletRefPool.js.map +0 -1
- /package/runtime/lib/worklet/{execMap.d.ts → call/execMap.d.ts} +0 -0
- /package/runtime/lib/worklet/{functionCall.d.ts → call/functionCall.d.ts} +0 -0
- /package/runtime/lib/worklet/{runOnBackground.d.ts → call/runOnBackground.d.ts} +0 -0
- /package/runtime/lib/worklet/{runOnMainThread.d.ts → call/runOnMainThread.d.ts} +0 -0
- /package/runtime/lib/worklet/{transformToWorklet.d.ts → call/transformToWorklet.d.ts} +0 -0
- /package/runtime/lib/worklet/{transformToWorklet.js → call/transformToWorklet.js} +0 -0
- /package/runtime/lib/worklet/{workletRef.d.ts → ref/workletRef.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# @lynx-js/react
|
|
2
2
|
|
|
3
|
+
## 0.114.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Partially fix the "cannot read property 'update' of undefined" error. ([#1771](https://github.com/lynx-family/lynx-stack/pull/1771))
|
|
8
|
+
|
|
9
|
+
This error happens when rendering a JSX expression in a [background-only](https://lynxjs.org/react/thinking-in-reactlynx.html) context.
|
|
10
|
+
|
|
11
|
+
See [lynx-family/lynx-stack#894](https://github.com/lynx-family/lynx-stack/issues/894) for more details.
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Reduce extra snapshot when children are pure text ([#1562](https://github.com/lynx-family/lynx-stack/pull/1562))
|
|
16
|
+
|
|
17
|
+
- feat: Support `SelectorQuery` `animation` APIs ([#1768](https://github.com/lynx-family/lynx-stack/pull/1768))
|
|
18
|
+
|
|
19
|
+
- Fix spread props inside list-item caused redundant snapshot patch ([#1760](https://github.com/lynx-family/lynx-stack/pull/1760))
|
|
20
|
+
|
|
21
|
+
- fix: `ref is not initialized` error on template reload ([#1757](https://github.com/lynx-family/lynx-stack/pull/1757))
|
|
22
|
+
|
|
23
|
+
## 0.113.0
|
|
24
|
+
|
|
25
|
+
### Minor Changes
|
|
26
|
+
|
|
27
|
+
- fix: Delay execution of `runOnMainThread()` during initial render ([#1667](https://github.com/lynx-family/lynx-stack/pull/1667))
|
|
28
|
+
|
|
29
|
+
When called during the initial render, `runOnMainThread()` would execute before the `main-thread:ref` was hydrated, causing it to be incorrectly set to null.
|
|
30
|
+
|
|
31
|
+
This change delays the function's execution to ensure the ref is available and correctly assigned.
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- Fix "TypeError: cannot read property '0' of undefined" in deferred list-item scenarios. ([#1692](https://github.com/lynx-family/lynx-stack/pull/1692))
|
|
36
|
+
|
|
37
|
+
Deferred `componentAtIndex` causes nodes that quickly appear/disappear to be enqueued without `__elements`. Update `signMap` before `__FlushElementTree` to resolve the issue.
|
|
38
|
+
|
|
39
|
+
- Keep the same `<page/>` element when calling `rerender` in testing library. ([#1656](https://github.com/lynx-family/lynx-stack/pull/1656))
|
|
40
|
+
|
|
41
|
+
- Bump `swc_core` to `39.0.3`. ([#1721](https://github.com/lynx-family/lynx-stack/pull/1721))
|
|
42
|
+
|
|
3
43
|
## 0.112.6
|
|
4
44
|
|
|
5
45
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lynx-js/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.114.0",
|
|
4
4
|
"description": "ReactLynx is a framework for developing Lynx applications with familiar React.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -175,8 +175,8 @@
|
|
|
175
175
|
},
|
|
176
176
|
"devDependencies": {
|
|
177
177
|
"@lynx-js/types": "3.4.11",
|
|
178
|
-
"@microsoft/api-extractor": "7.52.
|
|
179
|
-
"@types/react": "^18.3.
|
|
178
|
+
"@microsoft/api-extractor": "7.52.13",
|
|
179
|
+
"@types/react": "^18.3.24"
|
|
180
180
|
},
|
|
181
181
|
"peerDependencies": {
|
|
182
182
|
"@lynx-js/types": "*",
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
> @lynx-js/react-refresh@0.1.0 build /home/runner/work/lynx-stack/lynx-stack/packages/react/refresh
|
|
3
3
|
> rslib build
|
|
4
4
|
|
|
5
|
-
Rslib v0.
|
|
5
|
+
Rslib v0.13.3
|
|
6
6
|
|
|
7
7
|
info build started...
|
|
8
|
-
ready built in [1m0.
|
|
8
|
+
ready built in [1m0.20[22m s
|
|
9
9
|
|
|
10
10
|
[34mFile (esm) Size [39m
|
|
11
11
|
[2mdist/[22m[36mindex.js[39m 11.1 kB
|
package/runtime/lazy/internal.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { sExportsReactInternal, target } from './target.js';
|
|
6
6
|
|
|
7
7
|
export const {
|
|
8
|
+
BackgroundSnapshotInstance,
|
|
8
9
|
Component,
|
|
9
10
|
__ComponentIsPolyfill,
|
|
10
11
|
__DynamicPartChildren,
|
|
@@ -21,6 +22,7 @@ export const {
|
|
|
21
22
|
loadLazyBundle,
|
|
22
23
|
loadWorkletRuntime,
|
|
23
24
|
options,
|
|
25
|
+
process,
|
|
24
26
|
registerWorkletOnBackground,
|
|
25
27
|
snapshotCreateList,
|
|
26
28
|
snapshotManager,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import './lynx.js';
|
|
2
|
+
import { BackgroundSnapshotInstance } from './backgroundSnapshot.js';
|
|
2
3
|
import { __root } from './root.js';
|
|
3
4
|
import { DynamicPartType } from './snapshot/dynamicPartType.js';
|
|
4
5
|
import { snapshotCreateList } from './snapshot/list.js';
|
|
5
6
|
import { SnapshotInstance, __page, __pageId, createSnapshot, snapshotManager } from './snapshot.js';
|
|
6
7
|
export { __page, __pageId, __root };
|
|
7
|
-
export { SnapshotInstance, snapshotCreateList, createSnapshot, snapshotManager };
|
|
8
|
+
export { BackgroundSnapshotInstance, SnapshotInstance, snapshotCreateList, createSnapshot, snapshotManager };
|
|
8
9
|
export declare const __DynamicPartSlot: DynamicPartType;
|
|
9
10
|
export declare const __DynamicPartMultiChildren: DynamicPartType;
|
|
10
11
|
export declare const __DynamicPartChildren: DynamicPartType;
|
|
@@ -17,12 +18,12 @@ export { updateWorkletEvent } from './snapshot/workletEvent.js';
|
|
|
17
18
|
export { updateWorkletRef } from './snapshot/workletRef.js';
|
|
18
19
|
export { updateGesture } from './snapshot/gesture.js';
|
|
19
20
|
export { updateListItemPlatformInfo } from './snapshot/platformInfo.js';
|
|
20
|
-
export { options, Component, } from 'preact';
|
|
21
|
+
export { options, Component, process, } from 'preact';
|
|
21
22
|
export type { Options } from 'preact';
|
|
22
23
|
export { loadDynamicJS, __dynamicImport } from './lynx/dynamic-js.js';
|
|
23
24
|
export { withInitDataInState } from './compat/initData.js';
|
|
24
25
|
export { wrapWithLynxComponent } from './compat/lynxComponent.js';
|
|
25
26
|
export { loadLazyBundle } from './lynx/lazy-bundle.js';
|
|
26
|
-
export { transformToWorklet } from './worklet/transformToWorklet.js';
|
|
27
|
+
export { transformToWorklet } from './worklet/call/transformToWorklet.js';
|
|
27
28
|
export { registerWorkletOnBackground } from './worklet/hmr.js';
|
|
28
29
|
export { loadWorkletRuntime } from '@lynx-js/react/worklet-runtime/bindings';
|
package/runtime/lib/internal.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// LICENSE file in the root directory of this source tree.
|
|
4
4
|
import { Suspense, createElement, lazy } from 'preact/compat';
|
|
5
5
|
import './lynx.js';
|
|
6
|
+
import { BackgroundSnapshotInstance } from './backgroundSnapshot.js';
|
|
6
7
|
import { factory as factory2 } from './compat/componentIs.js';
|
|
7
8
|
import { useMemo } from './hooks/react.js';
|
|
8
9
|
import { loadLazyBundle } from './lynx/lazy-bundle.js';
|
|
@@ -11,7 +12,7 @@ import { DynamicPartType } from './snapshot/dynamicPartType.js';
|
|
|
11
12
|
import { snapshotCreateList } from './snapshot/list.js';
|
|
12
13
|
import { SnapshotInstance, __page, __pageId, createSnapshot, snapshotManager } from './snapshot.js';
|
|
13
14
|
export { __page, __pageId, __root };
|
|
14
|
-
export { SnapshotInstance, snapshotCreateList, createSnapshot, snapshotManager };
|
|
15
|
+
export { BackgroundSnapshotInstance, SnapshotInstance, snapshotCreateList, createSnapshot, snapshotManager };
|
|
15
16
|
export const __DynamicPartSlot = DynamicPartType.Slot;
|
|
16
17
|
export const __DynamicPartMultiChildren = DynamicPartType.MultiChildren;
|
|
17
18
|
export const __DynamicPartChildren = DynamicPartType.Children;
|
|
@@ -26,7 +27,7 @@ export { updateGesture } from './snapshot/gesture.js';
|
|
|
26
27
|
export { updateListItemPlatformInfo } from './snapshot/platformInfo.js';
|
|
27
28
|
export { options,
|
|
28
29
|
// Component is not an internal API, but refresh needs it from 'react/internal'
|
|
29
|
-
Component, } from 'preact';
|
|
30
|
+
Component, process, } from 'preact';
|
|
30
31
|
export { loadDynamicJS, __dynamicImport } from './lynx/dynamic-js.js';
|
|
31
32
|
export { withInitDataInState } from './compat/initData.js';
|
|
32
33
|
export { wrapWithLynxComponent } from './compat/lynxComponent.js';
|
|
@@ -37,7 +38,7 @@ export const __ComponentIsPolyfill = /* @__PURE__ */ factory2(
|
|
|
37
38
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
38
39
|
{ Suspense, lazy, createElement, useMemo }, loadLazyBundle);
|
|
39
40
|
export { loadLazyBundle } from './lynx/lazy-bundle.js';
|
|
40
|
-
export { transformToWorklet } from './worklet/transformToWorklet.js';
|
|
41
|
+
export { transformToWorklet } from './worklet/call/transformToWorklet.js';
|
|
41
42
|
export { registerWorkletOnBackground } from './worklet/hmr.js';
|
|
42
43
|
export { loadWorkletRuntime } from '@lynx-js/react/worklet-runtime/bindings';
|
|
43
44
|
//# sourceMappingURL=internal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,WAAW,CAAC;AAEnB,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,WAAW,CAAC;AAEnB,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAEpC,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAE7G,MAAM,CAAC,MAAM,iBAAiB,GAAoB,eAAe,CAAC,IAAI,CAAC;AACvE,MAAM,CAAC,MAAM,0BAA0B,GAAoB,eAAe,CAAC,aAAa,CAAC;AACzF,MAAM,CAAC,MAAM,qBAAqB,GAAoB,eAAe,CAAC,QAAQ,CAAC;AAC/E,MAAM,CAAC,MAAM,yBAAyB,GAAoB,eAAe,CAAC,YAAY,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,EACL,OAAO;AACP,+EAA+E;AAC/E,SAAS,EACT,OAAO,GACR,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAuB,eAAe,CAAC,QAAQ;AAC/E,iEAAiE;AACjE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAS,EACjD,cAAc,CACf,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Copyright 2025 The Lynx Authors. All rights reserved.
|
|
2
|
+
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
|
+
// LICENSE file in the root directory of this source tree.
|
|
4
|
+
import { options } from 'preact';
|
|
5
|
+
import { RENDER_COMPONENT, ROOT } from '../renderToOpcodes/constants.js';
|
|
6
|
+
import { hook, lynxQueueMicrotask } from '../utils.js';
|
|
7
|
+
export const isRendering = /* @__PURE__ */ { value: false };
|
|
8
|
+
const setIsRendering = () => {
|
|
9
|
+
isRendering.value = true;
|
|
10
|
+
// Make sure `isRendering` is set to false even if an error is thrown during rendering
|
|
11
|
+
lynxQueueMicrotask(() => {
|
|
12
|
+
isRendering.value = false;
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
hook(options, RENDER_COMPONENT, (old, ...args) => {
|
|
16
|
+
/* v8 ignore next */
|
|
17
|
+
old?.(...args);
|
|
18
|
+
setIsRendering();
|
|
19
|
+
});
|
|
20
|
+
hook(options, ROOT, (old, ...args) => {
|
|
21
|
+
/* v8 ignore next */
|
|
22
|
+
old?.(...args);
|
|
23
|
+
setIsRendering();
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=isRendering.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isRendering.js","sourceRoot":"","sources":["../../src/lifecycle/isRendering.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAE5D,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;IACzB,sFAAsF;IACtF,kBAAkB,CAAC,GAAG,EAAE;QACtB,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE;IAC/C,oBAAoB;IACpB,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACf,cAAc,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE;IACnC,oBAAoB;IACpB,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACf,cAAc,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { RunWorkletCtxData } from '@lynx-js/react/worklet-runtime/bindings';
|
|
1
2
|
import type { SnapshotPatch } from './snapshotPatch.js';
|
|
2
3
|
declare let globalFlushOptions: FlushOptions;
|
|
3
4
|
declare const globalCommitTaskMap: Map<number, () => void>;
|
|
@@ -8,13 +9,13 @@ declare let globalBackgroundSnapshotInstancesToRemove: number[];
|
|
|
8
9
|
interface Patch {
|
|
9
10
|
id: number;
|
|
10
11
|
snapshotPatch?: SnapshotPatch;
|
|
11
|
-
workletRefInitValuePatch?: [id: number, value: unknown][];
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* List of patches to be applied in a single update cycle with flush options.
|
|
15
15
|
*/
|
|
16
16
|
interface PatchList {
|
|
17
17
|
patchList: Patch[];
|
|
18
|
+
delayedRunOnMainThreadData?: RunWorkletCtxData[];
|
|
18
19
|
flushOptions?: FlushOptions;
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
@@ -23,10 +23,12 @@ import { COMMIT } from '../../renderToOpcodes/constants.js';
|
|
|
23
23
|
import { applyQueuedRefs } from '../../snapshot/ref.js';
|
|
24
24
|
import { backgroundSnapshotInstanceManager } from '../../snapshot.js';
|
|
25
25
|
import { hook, isEmptyObject } from '../../utils.js';
|
|
26
|
-
import {
|
|
26
|
+
import { sendMTRefInitValueToMainThread } from '../../worklet/ref/updateInitValue.js';
|
|
27
27
|
import { getReloadVersion } from '../pass.js';
|
|
28
28
|
import { takeGlobalSnapshotPatch } from './snapshotPatch.js';
|
|
29
29
|
import { profileEnd, profileStart } from '../../debug/utils.js';
|
|
30
|
+
import { delayedRunOnMainThreadData, takeDelayedRunOnMainThreadData, } from '../../worklet/call/delayedRunOnMainThreadData.js';
|
|
31
|
+
import { isRendering } from '../isRendering.js';
|
|
30
32
|
let globalFlushOptions = {};
|
|
31
33
|
function takeGlobalFlushOptions() {
|
|
32
34
|
const res = globalFlushOptions;
|
|
@@ -54,6 +56,7 @@ function replaceCommitHook() {
|
|
|
54
56
|
commitQueue.length = 0;
|
|
55
57
|
return;
|
|
56
58
|
}
|
|
59
|
+
isRendering.value = false;
|
|
57
60
|
// Mark the end of virtual DOM diffing phase for performance tracking
|
|
58
61
|
markTimingLegacy('updateDiffVdomEnd');
|
|
59
62
|
markTiming('diffVdomEnd');
|
|
@@ -70,12 +73,12 @@ function replaceCommitHook() {
|
|
|
70
73
|
}, 10000);
|
|
71
74
|
}
|
|
72
75
|
});
|
|
76
|
+
sendMTRefInitValueToMainThread();
|
|
73
77
|
// Collect patches for this update
|
|
74
78
|
const snapshotPatch = takeGlobalSnapshotPatch();
|
|
75
79
|
const flushOptions = takeGlobalFlushOptions();
|
|
76
80
|
const patchOptions = takeGlobalPatchOptions();
|
|
77
|
-
|
|
78
|
-
if (!snapshotPatch && workletRefInitValuePatch.length === 0) {
|
|
81
|
+
if (!snapshotPatch) {
|
|
79
82
|
// before hydration, skip patch
|
|
80
83
|
applyQueuedRefs();
|
|
81
84
|
originalPreactCommit?.(vnode, commitQueue);
|
|
@@ -88,15 +91,15 @@ function replaceCommitHook() {
|
|
|
88
91
|
if (snapshotPatch?.length) {
|
|
89
92
|
patch.snapshotPatch = snapshotPatch;
|
|
90
93
|
}
|
|
91
|
-
if (workletRefInitValuePatch.length) {
|
|
92
|
-
patch.workletRefInitValuePatch = workletRefInitValuePatch;
|
|
93
|
-
}
|
|
94
94
|
const patchList = {
|
|
95
95
|
patchList: [patch],
|
|
96
96
|
};
|
|
97
97
|
if (!isEmptyObject(flushOptions)) {
|
|
98
98
|
patchList.flushOptions = flushOptions;
|
|
99
99
|
}
|
|
100
|
+
if (snapshotPatch && delayedRunOnMainThreadData.length) {
|
|
101
|
+
patchList.delayedRunOnMainThreadData = takeDelayedRunOnMainThreadData();
|
|
102
|
+
}
|
|
100
103
|
const obj = commitPatchUpdate(patchList, patchOptions);
|
|
101
104
|
// Send the update to the native layer
|
|
102
105
|
lynx.getNativeApp().callLepusMethod(LifecycleConstant.patchUpdate, obj, () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../src/lifecycle/patch/commit.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D;;;;;;;;;;GAUG;AAEH;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../src/lifecycle/patch/commit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright 2025 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 { runRunOnMainThreadTask, setEomShouldFlushElementTree } from '@lynx-js/react/worklet-runtime/bindings';
|
|
5
5
|
import { setMainThreadHydrating } from './isMainThreadHydrating.js';
|
|
6
6
|
import { snapshotPatchApply } from './snapshotPatchApply.js';
|
|
7
7
|
import { LifecycleConstant } from '../../lifecycleConstant.js';
|
|
@@ -9,6 +9,7 @@ import { markTiming, setPipeline } from '../../lynx/performance.js';
|
|
|
9
9
|
import { __pendingListUpdates } from '../../pendingListUpdates.js';
|
|
10
10
|
import { applyRefQueue } from '../../snapshot/workletRef.js';
|
|
11
11
|
import { __page } from '../../snapshot.js';
|
|
12
|
+
import { isMtsEnabled } from '../../worklet/functionality.js';
|
|
12
13
|
import { getReloadVersion } from '../pass.js';
|
|
13
14
|
function updateMainThread({ data, patchOptions }) {
|
|
14
15
|
if ((patchOptions.reloadVersion) < getReloadVersion()) {
|
|
@@ -25,15 +26,14 @@ function updateMainThread({ data, patchOptions }) {
|
|
|
25
26
|
setPipeline(patchOptions.pipelineOptions);
|
|
26
27
|
markTiming('mtsRenderStart');
|
|
27
28
|
markTiming('parseChangesStart');
|
|
28
|
-
const { patchList, flushOptions = {} } = JSON.parse(data);
|
|
29
|
+
const { patchList, flushOptions = {}, delayedRunOnMainThreadData } = JSON.parse(data);
|
|
29
30
|
markTiming('parseChangesEnd');
|
|
30
31
|
markTiming('patchChangesStart');
|
|
31
32
|
if (patchOptions.isHydration) {
|
|
32
33
|
setMainThreadHydrating(true);
|
|
33
34
|
}
|
|
34
35
|
try {
|
|
35
|
-
for (const { snapshotPatch
|
|
36
|
-
updateWorkletRefInitValueChanges(workletRefInitValuePatch);
|
|
36
|
+
for (const { snapshotPatch } of patchList) {
|
|
37
37
|
__pendingListUpdates.clearAttachedLists();
|
|
38
38
|
if (snapshotPatch) {
|
|
39
39
|
snapshotPatchApply(snapshotPatch);
|
|
@@ -51,6 +51,19 @@ function updateMainThread({ data, patchOptions }) {
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
applyRefQueue();
|
|
54
|
+
if (delayedRunOnMainThreadData && isMtsEnabled()) {
|
|
55
|
+
setEomShouldFlushElementTree(false);
|
|
56
|
+
for (const data of delayedRunOnMainThreadData) {
|
|
57
|
+
try {
|
|
58
|
+
runRunOnMainThreadTask(data.worklet, data.params, data.resolveId);
|
|
59
|
+
/* v8 ignore next 3 */
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
lynx.reportError(e);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
setEomShouldFlushElementTree(true);
|
|
66
|
+
}
|
|
54
67
|
if (patchOptions.pipelineOptions) {
|
|
55
68
|
flushOptions.pipelineOptions = patchOptions.pipelineOptions;
|
|
56
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateMainThread.js","sourceRoot":"","sources":["../../../src/lifecycle/patch/updateMainThread.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;
|
|
1
|
+
{"version":3,"file":"updateMainThread.js","sourceRoot":"","sources":["../../../src/lifecycle/patch/updateMainThread.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { NodesRef } from '@lynx-js/types';
|
|
2
|
+
type FunctionPropertyNames<T> = {
|
|
3
|
+
[K in keyof T]: T[K] extends (...args: unknown[]) => unknown ? K : never;
|
|
4
|
+
}[keyof T];
|
|
5
|
+
type ForwardableNodesRefMethod = Exclude<FunctionPropertyNames<NodesRef>, 'exec'>;
|
|
2
6
|
/**
|
|
3
7
|
* A flag to indicate whether UI operations should be delayed.
|
|
4
8
|
* When set to true, UI operations will be queued in the `delayedUiOps` array
|
|
@@ -22,10 +26,11 @@ declare class RefProxy {
|
|
|
22
26
|
private task;
|
|
23
27
|
constructor(refAttr: [snapshotInstanceId: number, expIndex: number]);
|
|
24
28
|
private setTask;
|
|
25
|
-
invoke(...args: Parameters<NodesRef['invoke']>): RefProxy;
|
|
26
|
-
path(...args: Parameters<NodesRef['path']>): RefProxy;
|
|
27
|
-
fields(...args: Parameters<NodesRef['fields']>): RefProxy;
|
|
28
|
-
setNativeProps(...args: Parameters<NodesRef['setNativeProps']>): RefProxy;
|
|
29
29
|
exec(): void;
|
|
30
30
|
}
|
|
31
|
+
type RefProxyForwardedMethods = {
|
|
32
|
+
[K in ForwardableNodesRefMethod]: (...args: Parameters<NodesRef[K]>) => RefProxy;
|
|
33
|
+
};
|
|
34
|
+
interface RefProxy extends RefProxyForwardedMethods {
|
|
35
|
+
}
|
|
31
36
|
export {};
|
|
@@ -31,11 +31,12 @@ function runOrDelay(task) {
|
|
|
31
31
|
* Executes all delayed UI operations.
|
|
32
32
|
*/
|
|
33
33
|
function runDelayedUiOps() {
|
|
34
|
-
|
|
34
|
+
const tasks = delayedUiOps.slice();
|
|
35
|
+
delayedUiOps.length = 0;
|
|
36
|
+
shouldDelayUiOps.value = false;
|
|
37
|
+
for (const task of tasks) {
|
|
35
38
|
task();
|
|
36
39
|
}
|
|
37
|
-
shouldDelayUiOps.value = false;
|
|
38
|
-
delayedUiOps.length = 0;
|
|
39
40
|
}
|
|
40
41
|
/**
|
|
41
42
|
* A proxy class designed for managing and executing reference-based tasks.
|
|
@@ -46,25 +47,31 @@ class RefProxy {
|
|
|
46
47
|
task;
|
|
47
48
|
constructor(refAttr) {
|
|
48
49
|
this.refAttr = refAttr;
|
|
50
|
+
this.task = undefined;
|
|
51
|
+
return new Proxy(this, {
|
|
52
|
+
get: (target, prop, receiver) => {
|
|
53
|
+
if (typeof prop === 'symbol'
|
|
54
|
+
|| prop === 'then'
|
|
55
|
+
|| prop in target
|
|
56
|
+
|| typeof prop !== 'string') {
|
|
57
|
+
return Reflect.get(target, prop, receiver);
|
|
58
|
+
}
|
|
59
|
+
const forward = (method) => {
|
|
60
|
+
return (...args) => {
|
|
61
|
+
return new RefProxy(target.refAttr).setTask(method, args);
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
return forward(prop);
|
|
65
|
+
},
|
|
66
|
+
});
|
|
49
67
|
}
|
|
50
68
|
setTask(method, args) {
|
|
51
69
|
this.task = (nodesRef) => {
|
|
52
|
-
|
|
70
|
+
const nodesRefMethod = nodesRef[method];
|
|
71
|
+
return nodesRefMethod.apply(nodesRef, args);
|
|
53
72
|
};
|
|
54
73
|
return this;
|
|
55
74
|
}
|
|
56
|
-
invoke(...args) {
|
|
57
|
-
return new RefProxy(this.refAttr).setTask('invoke', args);
|
|
58
|
-
}
|
|
59
|
-
path(...args) {
|
|
60
|
-
return new RefProxy(this.refAttr).setTask('path', args);
|
|
61
|
-
}
|
|
62
|
-
fields(...args) {
|
|
63
|
-
return new RefProxy(this.refAttr).setTask('fields', args);
|
|
64
|
-
}
|
|
65
|
-
setNativeProps(...args) {
|
|
66
|
-
return new RefProxy(this.refAttr).setTask('setNativeProps', args);
|
|
67
|
-
}
|
|
68
75
|
exec() {
|
|
69
76
|
runOrDelay(() => {
|
|
70
77
|
const realRefId = hydrationMap.get(this.refAttr[0]) ?? this.refAttr[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delay.js","sourceRoot":"","sources":["../../../src/lifecycle/ref/delay.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"delay.js","sourceRoot":"","sources":["../../../src/lifecycle/ref/delay.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAUrE;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAEzC;;;GAGG;AACH,MAAM,YAAY,GAAmB,EAAE,CAAC;AAExC;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAgB;IAClC,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC3B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,IAAI,EAAE,CAAC;IACT,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe;IACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;IACnC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACxB,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,EAAE,CAAC;IACT,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,QAAQ;IACK,OAAO,CAAiD;IACjE,IAAI,CAAsB;IAElC,YAAY,OAAuD;QACjE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QAEtB,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;YACrB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC9B,IACE,OAAO,IAAI,KAAK,QAAQ;uBACrB,IAAI,KAAK,MAAM;uBACf,IAAI,IAAI,MAAM;uBACd,OAAO,IAAI,KAAK,QAAQ,EAC3B,CAAC;oBACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC7C,CAAC;gBAED,MAAM,OAAO,GAAG,CAAsC,MAAS,EAAE,EAAE;oBACjE,OAAO,CAAC,GAAG,IAA6B,EAAE,EAAE;wBAC1C,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC5D,CAAC,CAAC;gBACJ,CAAC,CAAC;gBAEF,OAAO,OAAO,CAAC,IAAiC,CAAC,CAAC;YACpD,CAAC;SACF,CAAa,CAAC;IACjB,CAAC;IAEO,OAAO,CACb,MAAS,EACT,IAA6B;QAE7B,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE;YACvB,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAA0D,CAAC;YACjG,OAAO,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI;QACF,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,WAAW,GAAG,cAAc,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAClE,IAAI,CAAC,IAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAQD;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -14,7 +14,6 @@ import { destroyBackground } from './destroy.js';
|
|
|
14
14
|
import { applyRefQueue } from '../snapshot/workletRef.js';
|
|
15
15
|
import { SnapshotInstance, __page, snapshotInstanceManager } from '../snapshot.js';
|
|
16
16
|
import { isEmptyObject } from '../utils.js';
|
|
17
|
-
import { destroyWorklet } from '../worklet/destroy.js';
|
|
18
17
|
import { clearJSReadyEventIdSwap, isJSReady } from './event/jsReady.js';
|
|
19
18
|
import { increaseReloadVersion } from './pass.js';
|
|
20
19
|
import { deinitGlobalSnapshotPatch } from './patch/snapshotPatch.js';
|
|
@@ -29,7 +28,6 @@ function reloadMainThread(data, options) {
|
|
|
29
28
|
if (typeof data == 'object' && !isEmptyObject(data)) {
|
|
30
29
|
Object.assign(lynx.__initData, data);
|
|
31
30
|
}
|
|
32
|
-
destroyWorklet();
|
|
33
31
|
snapshotInstanceManager.clear();
|
|
34
32
|
__pendingListUpdates.clearAttachedLists();
|
|
35
33
|
clearJSReadyEventIdSwap();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reload.js","sourceRoot":"","sources":["../../src/lifecycle/reload.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reload.js","sourceRoot":"","sources":["../../src/lifecycle/reload.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,8 @@ export declare const enum LifecycleConstant {
|
|
|
4
4
|
globalEventFromLepus = "globalEventFromLepus",
|
|
5
5
|
jsReady = "rLynxJSReady",
|
|
6
6
|
patchUpdate = "rLynxChange",
|
|
7
|
-
publishEvent = "rLynxPublishEvent"
|
|
7
|
+
publishEvent = "rLynxPublishEvent",
|
|
8
|
+
updateMTRefInitValue = "rLynxChangeRefInitValue"
|
|
8
9
|
}
|
|
9
10
|
export interface FirstScreenData {
|
|
10
11
|
root: string;
|
|
@@ -9,6 +9,7 @@ export var LifecycleConstant;
|
|
|
9
9
|
LifecycleConstant["jsReady"] = "rLynxJSReady";
|
|
10
10
|
LifecycleConstant["patchUpdate"] = "rLynxChange";
|
|
11
11
|
LifecycleConstant["publishEvent"] = "rLynxPublishEvent";
|
|
12
|
+
LifecycleConstant["updateMTRefInitValue"] = "rLynxChangeRefInitValue";
|
|
12
13
|
})(LifecycleConstant || (LifecycleConstant = {}));
|
|
13
14
|
export var NativeUpdateDataType;
|
|
14
15
|
(function (NativeUpdateDataType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycleConstant.js","sourceRoot":"","sources":["../src/lifecycleConstant.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,MAAM,CAAN,IAAkB,
|
|
1
|
+
{"version":3,"file":"lifecycleConstant.js","sourceRoot":"","sources":["../src/lifecycleConstant.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,MAAM,CAAN,IAAkB,iBAQjB;AARD,WAAkB,iBAAiB;IACjC,qDAAgC,CAAA;IAChC,sDAAiC,CAAA;IACjC,kEAA6C,CAAA;IAC7C,6CAAwB,CAAA;IACxB,gDAA2B,CAAA;IAC3B,uDAAkC,CAAA;IAClC,qEAAgD,CAAA;AAClD,CAAC,EARiB,iBAAiB,KAAjB,iBAAiB,QAQlC;AAOD,MAAM,CAAN,IAAkB,oBAGjB;AAHD,WAAkB,oBAAoB;IACpC,mEAAU,CAAA;IACV,iEAAS,CAAA;AACX,CAAC,EAHiB,oBAAoB,KAApB,oBAAoB,QAGrC"}
|
package/runtime/lib/list.js
CHANGED
|
@@ -132,6 +132,11 @@ export function componentAtIndexFactory(ctx, hydrateFunction) {
|
|
|
132
132
|
}
|
|
133
133
|
const root = childCtx.__element_root;
|
|
134
134
|
applyRefQueue();
|
|
135
|
+
// In the defer `list-item` scenario, `componentAtIndex` occurs with delay.
|
|
136
|
+
// Within `componentAtIndex`, nodes that quickly appear and disappear due to re-layout will be enqueued again,
|
|
137
|
+
// causing the mapping relationship between sign and SnapshotInstance to become corrupted.
|
|
138
|
+
// This results in a SnapshotInstance without `__elements` being enqueued.
|
|
139
|
+
signMap.set(sign, childCtx);
|
|
135
140
|
if (!enableBatchRender) {
|
|
136
141
|
const flushOptions = {
|
|
137
142
|
triggerLayout: true,
|
|
@@ -159,7 +164,6 @@ export function componentAtIndexFactory(ctx, hydrateFunction) {
|
|
|
159
164
|
}
|
|
160
165
|
__FlushElementTree(root, flushOptions);
|
|
161
166
|
}
|
|
162
|
-
signMap.set(sign, childCtx);
|
|
163
167
|
return sign;
|
|
164
168
|
}
|
|
165
169
|
childCtx.ensureElements();
|
|
@@ -167,6 +171,7 @@ export function componentAtIndexFactory(ctx, hydrateFunction) {
|
|
|
167
171
|
__AppendElement(list, root);
|
|
168
172
|
const sign = __GetElementUniqueID(root);
|
|
169
173
|
applyRefQueue();
|
|
174
|
+
signMap.set(sign, childCtx);
|
|
170
175
|
if (!enableBatchRender) {
|
|
171
176
|
__FlushElementTree(root, {
|
|
172
177
|
triggerLayout: true,
|
|
@@ -180,7 +185,6 @@ export function componentAtIndexFactory(ctx, hydrateFunction) {
|
|
|
180
185
|
asyncFlush: true,
|
|
181
186
|
});
|
|
182
187
|
}
|
|
183
|
-
signMap.set(sign, childCtx);
|
|
184
188
|
return sign;
|
|
185
189
|
};
|
|
186
190
|
function componentAtIndex(list, listID, cellIndex, operationID, enableReuseNotification) {
|
|
@@ -223,6 +227,7 @@ export function componentAtIndexFactory(ctx, hydrateFunction) {
|
|
|
223
227
|
// not the one generated by any code here, to workaround a bug of Lynx Engine.
|
|
224
228
|
// So we CANNOT split the `operationIDs` into two parts: one for ready items, one for unready items.
|
|
225
229
|
if (hasUnready) {
|
|
230
|
+
// eslint-disable-next-line @typescript-eslint/await-thenable
|
|
226
231
|
void Promise.all(p).then((uiSigns) => {
|
|
227
232
|
__FlushElementTree(list, {
|
|
228
233
|
triggerLayout: true,
|
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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"}
|