@lynx-js/react 0.118.0 → 0.119.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 +44 -0
- package/package.json +25 -3
- package/refresh/.turbo/turbo-build.log +1 -1
- package/runtime/lib/alog/elementPAPICall.js +1 -0
- package/runtime/lib/alog/elementPAPICall.js.map +1 -1
- package/runtime/lib/debug/component-stack.d.ts +0 -6
- package/runtime/lib/debug/component-stack.js.map +1 -1
- package/runtime/lib/gesture/processGesture.js +103 -11
- package/runtime/lib/gesture/processGesture.js.map +1 -1
- package/runtime/lib/hooks/mainThread.d.ts +17 -0
- package/runtime/lib/hooks/mainThread.js +152 -0
- package/runtime/lib/hooks/mainThread.js.map +1 -0
- package/runtime/lib/hooks/react.d.ts +1 -2
- package/runtime/lib/hooks/react.js +8 -14
- package/runtime/lib/hooks/react.js.map +1 -1
- package/runtime/lib/lifecycle/event/jsReady.js +3 -1
- package/runtime/lib/lifecycle/event/jsReady.js.map +1 -1
- package/runtime/lib/lifecycle/render.js +0 -6
- package/runtime/lib/lifecycle/render.js.map +1 -1
- package/runtime/lib/renderToOpcodes/constants.d.ts +1 -0
- package/runtime/lib/renderToOpcodes/constants.js +1 -0
- package/runtime/lib/renderToOpcodes/constants.js.map +1 -1
- package/runtime/lib/renderToOpcodes/index.js +3 -1
- package/runtime/lib/renderToOpcodes/index.js.map +1 -1
- package/runtime/lib/tsconfig.tsbuildinfo +1 -1
- package/testing-library/README.md +48 -9
- package/testing-library/dist/0~123.js +43 -0
- package/testing-library/dist/881.js +1 -0
- package/testing-library/dist/entry.d.ts +1 -0
- package/testing-library/dist/env/index.d.ts +2 -0
- package/testing-library/dist/env/index.js +661 -0
- package/testing-library/dist/env/rstest.d.ts +1 -0
- package/testing-library/dist/env/rstest.js +6 -0
- package/testing-library/dist/env/vitest.d.ts +3 -0
- package/testing-library/dist/env/vitest.js +8 -662
- package/testing-library/dist/fire-event.d.ts +111 -0
- package/testing-library/dist/index.d.ts +18 -6
- package/testing-library/dist/plugins/index.d.ts +2 -0
- package/testing-library/dist/plugins/index.js +282 -0
- package/testing-library/dist/plugins/vitest.d.ts +26 -0
- package/testing-library/dist/pure.js +2 -2
- package/testing-library/dist/rstest-config.d.ts +25 -0
- package/testing-library/dist/rstest-config.js +61 -0
- package/testing-library/dist/setupFiles/common/bootstrap.js +2 -0
- package/testing-library/dist/{vitest-global-setup.js → setupFiles/common/runtime-setup.js} +25 -39
- package/testing-library/dist/setupFiles/inner/rstest.js +7 -0
- package/testing-library/dist/setupFiles/inner/vitest.js +11 -0
- package/testing-library/dist/setupFiles/rstest.js +21 -0
- package/testing-library/dist/setupFiles/vitest.js +20 -0
- package/testing-library/dist/vitest.config.d.ts +6 -0
- package/testing-library/dist/vitest.config.js +4 -257
- package/transform/dist/wasm.cjs +1 -1
- package/transform/index.d.ts +10 -0
- package/testing-library/types/vitest-config.d.ts +0 -20
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# @lynx-js/react
|
|
2
2
|
|
|
3
|
+
## 0.119.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Simplify hooks for main-thread runtime, which only can run during the first screen. ([#2441](https://github.com/lynx-family/lynx-stack/pull/2441))
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Remove stale gestures when gestures are removed ([#2297](https://github.com/lynx-family/lynx-stack/pull/2297))
|
|
12
|
+
|
|
13
|
+
- Trace refactor ([#2466](https://github.com/lynx-family/lynx-stack/pull/2466))
|
|
14
|
+
|
|
15
|
+
- Remove `ReactLynx::renderOpcodes` from the trace
|
|
16
|
+
- Use `ReactLynx::transferRoot` to measure the time spent transferring the root to the background thread
|
|
17
|
+
|
|
18
|
+
- refactor: set state of suspense to render fallback ([#2450](https://github.com/lynx-family/lynx-stack/pull/2450))
|
|
19
|
+
|
|
20
|
+
- Support rstest for testing library, you can use rstest with RLTL now: ([#2328](https://github.com/lynx-family/lynx-stack/pull/2328))
|
|
21
|
+
|
|
22
|
+
Create a config file `rstest.config.ts` with the following content:
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
import { defineConfig } from '@rstest/core';
|
|
26
|
+
import { withLynxConfig } from '@lynx-js/react/testing-library/rstest-config';
|
|
27
|
+
|
|
28
|
+
export default defineConfig({
|
|
29
|
+
extends: withLynxConfig(),
|
|
30
|
+
});
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
`@lynx-js/react/testing-library/rstest-config` will automatically load your `lynx.config.ts` and apply the same configuration to rstest, so you can keep your test environment consistent with your development environment.
|
|
34
|
+
|
|
35
|
+
And then use rstest as usual:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
$ rstest
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
For more usage detail, see https://rstest.rs/
|
|
42
|
+
|
|
43
|
+
- Update preact version ([#2456](https://github.com/lynx-family/lynx-stack/pull/2456))
|
|
44
|
+
|
|
45
|
+
- Add `nodeIndex` to generated FiberElement creation calls and expose React transform debug metadata as `uiSourceMapRecords`. ([#2402](https://github.com/lynx-family/lynx-stack/pull/2402))
|
|
46
|
+
|
|
3
47
|
## 0.118.0
|
|
4
48
|
|
|
5
49
|
### Minor Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lynx-js/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.119.0",
|
|
4
4
|
"description": "ReactLynx is a framework for developing Lynx applications with familiar React.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -55,6 +55,14 @@
|
|
|
55
55
|
"types": "./runtime/jsx-runtime/index.d.ts",
|
|
56
56
|
"default": "./runtime/lepus/jsx-runtime/index.js"
|
|
57
57
|
},
|
|
58
|
+
"./hooks": {
|
|
59
|
+
"types": "./runtime/lib/hooks/react.d.ts",
|
|
60
|
+
"default": "./runtime/lib/hooks/react.js"
|
|
61
|
+
},
|
|
62
|
+
"./lepus/hooks": {
|
|
63
|
+
"types": "./runtime/lib/hooks/react.d.ts",
|
|
64
|
+
"default": "./runtime/lib/hooks/mainThread.js"
|
|
65
|
+
},
|
|
58
66
|
"./lepus": {
|
|
59
67
|
"types": "./runtime/lepus/index.d.ts",
|
|
60
68
|
"lazy": "./runtime/lazy/react-lepus.js",
|
|
@@ -101,9 +109,17 @@
|
|
|
101
109
|
"default": "./testing-library/dist/pure.js"
|
|
102
110
|
},
|
|
103
111
|
"./testing-library/vitest-config": {
|
|
104
|
-
"types": "./testing-library/
|
|
112
|
+
"types": "./testing-library/dist/vitest.config.d.ts",
|
|
105
113
|
"default": "./testing-library/dist/vitest.config.js"
|
|
106
114
|
},
|
|
115
|
+
"./testing-library/plugins": {
|
|
116
|
+
"types": "./testing-library/dist/plugins/index.d.ts",
|
|
117
|
+
"default": "./testing-library/dist/plugins/index.js"
|
|
118
|
+
},
|
|
119
|
+
"./testing-library/rstest-config": {
|
|
120
|
+
"types": "./testing-library/dist/rstest-config.d.ts",
|
|
121
|
+
"default": "./testing-library/dist/rstest-config.js"
|
|
122
|
+
},
|
|
107
123
|
"./package.json": "./package.json"
|
|
108
124
|
},
|
|
109
125
|
"types": "./types/react.d.ts",
|
|
@@ -115,6 +131,12 @@
|
|
|
115
131
|
"experimental/lazy/import": [
|
|
116
132
|
"./runtime/lazy/import.d.ts"
|
|
117
133
|
],
|
|
134
|
+
"hooks": [
|
|
135
|
+
"./runtime/lib/hooks/react.d.ts"
|
|
136
|
+
],
|
|
137
|
+
"lepus/hooks": [
|
|
138
|
+
"./runtime/lib/hooks/react.d.ts"
|
|
139
|
+
],
|
|
118
140
|
"internal": [
|
|
119
141
|
"./runtime/lib/internal.d.ts"
|
|
120
142
|
],
|
|
@@ -170,7 +192,7 @@
|
|
|
170
192
|
"README.zh.md"
|
|
171
193
|
],
|
|
172
194
|
"dependencies": {
|
|
173
|
-
"preact": "npm:@lynx-js/internal-preact@10.28.4-
|
|
195
|
+
"preact": "npm:@lynx-js/internal-preact@10.28.4-2d1d67a"
|
|
174
196
|
},
|
|
175
197
|
"devDependencies": {
|
|
176
198
|
"@lynx-js/types": "3.7.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elementPAPICall.js","sourceRoot":"","sources":["../../src/alog/elementPAPICall.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,wBAAwB,GAAG;IAC/B,cAAc;IACd,iBAAiB;IACjB,wBAAwB;IACxB,cAAc;IACd,eAAe;IACf,cAAc;IACd,iBAAiB;IACjB,cAAc;IACd,iBAAiB;IACjB,uBAAuB;IACvB,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,oBAAoB;IACpB,cAAc;IACd,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,sBAAsB;IACtB,qBAAqB;IACrB,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,mBAAmB;IACnB,YAAY;IACZ,SAAS;IACT,sBAAsB;IACtB,UAAU;IACV,oBAAoB;IACpB,uBAAuB;IACvB,oBAAoB;IACpB,kBAAkB;IAClB,sBAAsB;
|
|
1
|
+
{"version":3,"file":"elementPAPICall.js","sourceRoot":"","sources":["../../src/alog/elementPAPICall.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-stack.js","sourceRoot":"","sources":["../../src/debug/component-stack.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAG3C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"component-stack.js","sourceRoot":"","sources":["../../src/debug/component-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,76 @@ import { GestureTypeInner } from './types.js';
|
|
|
6
6
|
function isSerializedGesture(gesture) {
|
|
7
7
|
return gesture.__isSerialized ?? false;
|
|
8
8
|
}
|
|
9
|
+
function getSerializedBaseGesture(gesture) {
|
|
10
|
+
if (!gesture || !isSerializedGesture(gesture)) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
if (gesture.type !== GestureTypeInner.COMPOSED) {
|
|
14
|
+
return gesture;
|
|
15
|
+
}
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
function appendUniqueSerializedBaseGestures(gesture, out, seenIds) {
|
|
19
|
+
if (!gesture || !isSerializedGesture(gesture)) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (gesture.type === GestureTypeInner.COMPOSED) {
|
|
23
|
+
for (const subGesture of gesture.gestures) {
|
|
24
|
+
appendUniqueSerializedBaseGestures(subGesture, out, seenIds);
|
|
25
|
+
}
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const baseGesture = gesture;
|
|
29
|
+
if (seenIds.has(baseGesture.id)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
seenIds.add(baseGesture.id);
|
|
33
|
+
out.push(baseGesture);
|
|
34
|
+
}
|
|
35
|
+
function collectOldGestureInfo(oldGesture) {
|
|
36
|
+
const uniqOldBaseGestures = [];
|
|
37
|
+
const oldBaseGesturesById = new Map();
|
|
38
|
+
appendOldGestureInfo(oldGesture, uniqOldBaseGestures, oldBaseGesturesById);
|
|
39
|
+
return {
|
|
40
|
+
uniqOldBaseGestures,
|
|
41
|
+
oldBaseGesturesById,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function appendOldGestureInfo(gesture, out, byId) {
|
|
45
|
+
if (!gesture || !isSerializedGesture(gesture)) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (gesture.type === GestureTypeInner.COMPOSED) {
|
|
49
|
+
for (const subGesture of gesture.gestures) {
|
|
50
|
+
appendOldGestureInfo(subGesture, out, byId);
|
|
51
|
+
}
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const oldBaseGesture = gesture;
|
|
55
|
+
if (!byId.has(oldBaseGesture.id)) {
|
|
56
|
+
byId.set(oldBaseGesture.id, oldBaseGesture);
|
|
57
|
+
out.push(oldBaseGesture);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function consumeOldBaseGesture(baseGesture, uniqOldBaseGestures, oldBaseGesturesById) {
|
|
61
|
+
const idMatchedOldBaseGesture = oldBaseGesturesById.get(baseGesture.id);
|
|
62
|
+
if (idMatchedOldBaseGesture) {
|
|
63
|
+
oldBaseGesturesById.delete(baseGesture.id);
|
|
64
|
+
return idMatchedOldBaseGesture;
|
|
65
|
+
}
|
|
66
|
+
const fallbackOldBaseGesture = uniqOldBaseGestures.find(oldBaseGesture => oldBaseGesturesById.has(oldBaseGesture.id));
|
|
67
|
+
if (!fallbackOldBaseGesture) {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
oldBaseGesturesById.delete(fallbackOldBaseGesture.id);
|
|
71
|
+
return fallbackOldBaseGesture;
|
|
72
|
+
}
|
|
73
|
+
function removeGestureDetector(dom, id) {
|
|
74
|
+
// Keep compatibility with old runtimes where remove API is not exposed.
|
|
75
|
+
if (typeof __RemoveGestureDetector === 'function') {
|
|
76
|
+
__RemoveGestureDetector(dom, id);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
9
79
|
function getGestureInfo(gesture, oldGesture, isFirstScreen, dom) {
|
|
10
80
|
const config = {
|
|
11
81
|
callbacks: [],
|
|
@@ -34,23 +104,45 @@ function getGestureInfo(gesture, oldGesture, isFirstScreen, dom) {
|
|
|
34
104
|
};
|
|
35
105
|
}
|
|
36
106
|
export function processGesture(dom, gesture, oldGesture, isFirstScreen, gestureOptions) {
|
|
37
|
-
|
|
107
|
+
const domSet = gestureOptions?.domSet === true;
|
|
108
|
+
const { uniqOldBaseGestures, oldBaseGesturesById } = collectOldGestureInfo(oldGesture);
|
|
109
|
+
// Fast path for the most common case: single base gesture update.
|
|
110
|
+
const singleBaseGesture = getSerializedBaseGesture(gesture);
|
|
111
|
+
const singleOldBaseGesture = getSerializedBaseGesture(oldGesture);
|
|
112
|
+
if (singleBaseGesture && (!oldGesture || singleOldBaseGesture)) {
|
|
113
|
+
if (!domSet) {
|
|
114
|
+
__SetAttribute(dom, 'has-react-gesture', true);
|
|
115
|
+
__SetAttribute(dom, 'flatten', false);
|
|
116
|
+
}
|
|
117
|
+
if (singleOldBaseGesture) {
|
|
118
|
+
// On update, remove old detector first to avoid stale callbacks.
|
|
119
|
+
removeGestureDetector(dom, singleOldBaseGesture.id);
|
|
120
|
+
}
|
|
121
|
+
const { config, relationMap } = getGestureInfo(singleBaseGesture, singleOldBaseGesture, isFirstScreen, dom);
|
|
122
|
+
__SetGestureDetector(dom, singleBaseGesture.id, singleBaseGesture.type, config, relationMap);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const uniqBaseGestures = [];
|
|
126
|
+
appendUniqueSerializedBaseGestures(gesture, uniqBaseGestures, new Set());
|
|
127
|
+
if (uniqBaseGestures.length === 0) {
|
|
128
|
+
for (const oldBaseGesture of oldBaseGesturesById.values()) {
|
|
129
|
+
removeGestureDetector(dom, oldBaseGesture.id);
|
|
130
|
+
}
|
|
131
|
+
if (!domSet) {
|
|
132
|
+
__SetAttribute(dom, 'has-react-gesture', null);
|
|
133
|
+
}
|
|
38
134
|
return;
|
|
39
135
|
}
|
|
40
|
-
if (!
|
|
136
|
+
if (!domSet) {
|
|
41
137
|
__SetAttribute(dom, 'has-react-gesture', true);
|
|
42
138
|
__SetAttribute(dom, 'flatten', false);
|
|
43
139
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
domSet: true,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
140
|
+
// On update, remove old detectors first to avoid stale callbacks.
|
|
141
|
+
for (const oldBaseGesture of oldBaseGesturesById.values()) {
|
|
142
|
+
removeGestureDetector(dom, oldBaseGesture.id);
|
|
50
143
|
}
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
const oldBaseGesture = oldGesture;
|
|
144
|
+
for (const baseGesture of uniqBaseGestures) {
|
|
145
|
+
const oldBaseGesture = consumeOldBaseGesture(baseGesture, uniqOldBaseGestures, oldBaseGesturesById);
|
|
54
146
|
const { config, relationMap } = getGestureInfo(baseGesture, oldBaseGesture, isFirstScreen, dom);
|
|
55
147
|
__SetGestureDetector(dom, baseGesture.id, baseGesture.type, config, relationMap);
|
|
56
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processGesture.js","sourceRoot":"","sources":["../../src/gesture/processGesture.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,SAAS,mBAAmB,CAAC,OAAoB;IAC/C,OAAO,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC;AACzC,CAAC;AAED,SAAS,cAAc,CACrB,OAAoB,EACpB,UAAmC,EACnC,aAAsB,EACtB,GAAiB;IAEjB,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,EAAE;KACG,CAAC;IACnB,MAAM,WAAW,GAAG,OAAO,CAAC;IAE5B,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,KACE,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAC/C,CAAC;QACD,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/C,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG;QAClB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QACrE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QACnF,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;KAChF,CAAC;IAEF,OAAO;QACL,MAAM;QACN,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,GAAiB,EACjB,OAAoB,EACpB,UAAmC,EACnC,aAAsB,EACtB,cAEC;IAED,
|
|
1
|
+
{"version":3,"file":"processGesture.js","sourceRoot":"","sources":["../../src/gesture/processGesture.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ErrorInfo, PreactContext } from 'preact';
|
|
2
|
+
import type { Dispatch, useEffect as useEffectType, useErrorBoundary as useErrorBoundaryType, useImperativeHandle as useImperativeHandleType, useLayoutEffect as useLayoutEffectType } from 'preact/hooks';
|
|
3
|
+
declare function useState<S>(initialState: S | (() => S)): [S, Dispatch<unknown>];
|
|
4
|
+
declare function useReducer<S, A>(_reducer: (prevState: S, action: A) => S, initialState: S | (() => S), init?: (initialState: S) => S): [S, Dispatch<A>];
|
|
5
|
+
declare function useRef<T>(initialValue?: T): {
|
|
6
|
+
current: T | undefined;
|
|
7
|
+
};
|
|
8
|
+
declare function useMemo<T>(factory: () => T, _args: ReadonlyArray<unknown>): T;
|
|
9
|
+
declare function useCallback<T>(callback: T, args: ReadonlyArray<unknown>): T;
|
|
10
|
+
declare function useContext<T>(context: PreactContext<T>): T;
|
|
11
|
+
declare function useDebugValue<T>(value: T, formatter?: (value: T) => string | number): void;
|
|
12
|
+
declare function useErrorBoundary(cb: (error: any, errorInfo: ErrorInfo) => Promise<void> | void): ReturnType<typeof useErrorBoundaryType>;
|
|
13
|
+
declare function useId(): string;
|
|
14
|
+
declare const useEffect: typeof useEffectType;
|
|
15
|
+
declare const useLayoutEffect: typeof useLayoutEffectType;
|
|
16
|
+
declare const useImperativeHandle: typeof useImperativeHandleType;
|
|
17
|
+
export { useCallback, useContext, useDebugValue, useEffect, useErrorBoundary, useId, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, };
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
// Copyright 2026 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
|
+
/**
|
|
5
|
+
* Implements hooks in main thread.
|
|
6
|
+
* This module is modified from preact/hooks
|
|
7
|
+
*
|
|
8
|
+
* internal-preact/hooks/dist/hooks.mjs
|
|
9
|
+
*/
|
|
10
|
+
import { options } from 'preact';
|
|
11
|
+
import { CHILDREN, COMPONENT, DIFF, DIFFED, HOOK, HOOKS, LIST, MASK, PARENT, PENDING_EFFECTS, RENDER, ROOT, VALUE, VNODE, } from '../renderToOpcodes/constants.js';
|
|
12
|
+
import { noop } from '../utils.js';
|
|
13
|
+
let currentIndex;
|
|
14
|
+
let currentComponent;
|
|
15
|
+
let currentHook;
|
|
16
|
+
const oldBeforeDiff = options[DIFF];
|
|
17
|
+
const oldBeforeRender = options[RENDER];
|
|
18
|
+
const oldAfterDiff = options[DIFFED];
|
|
19
|
+
const oldRoot = options[ROOT];
|
|
20
|
+
options[DIFF] = function (vnode) {
|
|
21
|
+
currentComponent = null;
|
|
22
|
+
if (oldBeforeDiff)
|
|
23
|
+
oldBeforeDiff(vnode);
|
|
24
|
+
};
|
|
25
|
+
/* v8 ignore start */
|
|
26
|
+
options[ROOT] = function (vnode, parentDom) {
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
28
|
+
if (vnode && parentDom[CHILDREN] && parentDom[CHILDREN][MASK]) {
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
30
|
+
vnode[MASK] = parentDom[CHILDREN][MASK];
|
|
31
|
+
}
|
|
32
|
+
if (oldRoot)
|
|
33
|
+
oldRoot(vnode, parentDom);
|
|
34
|
+
};
|
|
35
|
+
/* v8 ignore stop */
|
|
36
|
+
options[RENDER] = function (vnode) {
|
|
37
|
+
if (oldBeforeRender)
|
|
38
|
+
oldBeforeRender(vnode);
|
|
39
|
+
currentComponent = vnode[COMPONENT];
|
|
40
|
+
currentIndex = 0;
|
|
41
|
+
};
|
|
42
|
+
options[DIFFED] = function (vnode) {
|
|
43
|
+
if (oldAfterDiff)
|
|
44
|
+
oldAfterDiff(vnode);
|
|
45
|
+
currentComponent = null;
|
|
46
|
+
};
|
|
47
|
+
function getHookState(index, type) {
|
|
48
|
+
if (options[HOOK]) {
|
|
49
|
+
options[HOOK](currentComponent, index, currentHook || type);
|
|
50
|
+
}
|
|
51
|
+
currentHook = 0;
|
|
52
|
+
const hooks = currentComponent[HOOKS] ?? (currentComponent[HOOKS] = {
|
|
53
|
+
[LIST]: [],
|
|
54
|
+
[PENDING_EFFECTS]: [],
|
|
55
|
+
});
|
|
56
|
+
if (index >= hooks[LIST].length) {
|
|
57
|
+
hooks[LIST].push({});
|
|
58
|
+
}
|
|
59
|
+
return hooks[LIST][index];
|
|
60
|
+
}
|
|
61
|
+
function invokeOrReturn(arg, f) {
|
|
62
|
+
return typeof f == 'function' ? f(arg) : f;
|
|
63
|
+
}
|
|
64
|
+
function useState(initialState) {
|
|
65
|
+
currentHook = 1;
|
|
66
|
+
return useReducer(noop, initialState);
|
|
67
|
+
}
|
|
68
|
+
function useReducer(_reducer, initialState, init) {
|
|
69
|
+
const hookState = getHookState(currentIndex++, 2);
|
|
70
|
+
if (!hookState[COMPONENT]) {
|
|
71
|
+
hookState[VALUE] = [
|
|
72
|
+
/* v8 ignore start */
|
|
73
|
+
init ? init(initialState) : invokeOrReturn(undefined, initialState),
|
|
74
|
+
/* v8 ignore stop */
|
|
75
|
+
function (_action) {
|
|
76
|
+
if (__DEV__) {
|
|
77
|
+
console.error('Cannot update state in main thread!');
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
];
|
|
81
|
+
hookState[COMPONENT] = currentComponent;
|
|
82
|
+
}
|
|
83
|
+
return hookState[VALUE];
|
|
84
|
+
}
|
|
85
|
+
function useRef(initialValue) {
|
|
86
|
+
currentHook = 5;
|
|
87
|
+
return useMemo(function () {
|
|
88
|
+
return {
|
|
89
|
+
current: initialValue,
|
|
90
|
+
};
|
|
91
|
+
}, []);
|
|
92
|
+
}
|
|
93
|
+
// used for first screen and need not to cache value by args
|
|
94
|
+
function useMemo(factory, _args) {
|
|
95
|
+
const state = getHookState(currentIndex++, 7);
|
|
96
|
+
state[VALUE] = factory();
|
|
97
|
+
return state[VALUE];
|
|
98
|
+
}
|
|
99
|
+
function useCallback(callback, args) {
|
|
100
|
+
currentHook = 8;
|
|
101
|
+
return useMemo(function () {
|
|
102
|
+
return callback;
|
|
103
|
+
}, args);
|
|
104
|
+
}
|
|
105
|
+
function useContext(context) {
|
|
106
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
107
|
+
const provider = currentComponent.context[context.__c];
|
|
108
|
+
const state = getHookState(currentIndex++, 9);
|
|
109
|
+
state['c'] = context;
|
|
110
|
+
/* v8 ignore start */
|
|
111
|
+
if (!provider)
|
|
112
|
+
return context.__;
|
|
113
|
+
/* v8 ignore stop */
|
|
114
|
+
state[VALUE] = true;
|
|
115
|
+
return provider.props.value;
|
|
116
|
+
}
|
|
117
|
+
function useDebugValue(value, formatter) {
|
|
118
|
+
if (options.useDebugValue) {
|
|
119
|
+
/* v8 ignore start */
|
|
120
|
+
options.useDebugValue(formatter ? formatter(value) : value);
|
|
121
|
+
/* v8 ignore stop */
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function useErrorBoundary(cb) {
|
|
125
|
+
const state = getHookState(currentIndex++, 10);
|
|
126
|
+
state[VALUE] = cb;
|
|
127
|
+
return [undefined, noop];
|
|
128
|
+
}
|
|
129
|
+
function useId() {
|
|
130
|
+
const state = getHookState(currentIndex++, 11);
|
|
131
|
+
if (!state[VALUE]) {
|
|
132
|
+
// Grab either the root node or the nearest async boundary node.
|
|
133
|
+
let root = currentComponent[VNODE];
|
|
134
|
+
while (root !== null && !root[MASK] && root[PARENT] !== null) {
|
|
135
|
+
root = root[PARENT];
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* init mask to [0, 0]
|
|
139
|
+
* mask[0] will not change
|
|
140
|
+
* mask[1] will auto increase
|
|
141
|
+
*/
|
|
142
|
+
const mask = root[MASK] ?? (root[MASK] = [0, 0]);
|
|
143
|
+
state[VALUE] = 'P' + mask[0] + '-' + mask[1]++;
|
|
144
|
+
}
|
|
145
|
+
return state[VALUE];
|
|
146
|
+
}
|
|
147
|
+
// background hooks
|
|
148
|
+
const useEffect = noop;
|
|
149
|
+
const useLayoutEffect = noop;
|
|
150
|
+
const useImperativeHandle = noop;
|
|
151
|
+
export { useCallback, useContext, useDebugValue, useEffect, useErrorBoundary, useId, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, };
|
|
152
|
+
//# sourceMappingURL=mainThread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mainThread.js","sourceRoot":"","sources":["../../src/hooks/mainThread.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useCallback, useContext, useDebugValue, useErrorBoundary, useId, useMemo, useState as usePreactState,
|
|
1
|
+
import { useCallback, useContext, useDebugValue, useErrorBoundary, useId, useImperativeHandle, useMemo, useState as usePreactState, useReducer, useRef } from 'preact/hooks';
|
|
2
2
|
import type { DependencyList, EffectCallback } from 'react';
|
|
3
3
|
declare const useState: typeof usePreactState;
|
|
4
4
|
/**
|
|
@@ -24,5 +24,4 @@ declare const useEffect: (effect: EffectCallback, deps?: DependencyList) => void
|
|
|
24
24
|
* @deprecated `useLayoutEffect` in the background thread cannot offer the precise timing for reading layout information and synchronously re-render, which is different from React.
|
|
25
25
|
*/
|
|
26
26
|
declare const useLayoutEffect: (effect: EffectCallback, deps?: DependencyList) => void;
|
|
27
|
-
declare const useImperativeHandle: typeof usePreactUseImperativeHandle;
|
|
28
27
|
export { useState, useReducer, useRef, useImperativeHandle, useLayoutEffect, useEffect, useCallback, useMemo, useContext, useDebugValue, useErrorBoundary, useId, };
|
|
@@ -1,9 +1,8 @@
|
|
|
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 { useCallback, useContext, useDebugValue, useErrorBoundary, useId, useMemo, useEffect as usePreactEffect, useState as usePreactState,
|
|
4
|
+
import { useCallback, useContext, useDebugValue, useErrorBoundary, useId, useImperativeHandle, useMemo, useEffect as usePreactEffect, useState as usePreactState, useReducer, useRef, } from 'preact/hooks';
|
|
5
5
|
import { isProfiling, profileEnd, profileFlowId, profileStart } from '../debug/profile.js';
|
|
6
|
-
import { noop } from '../utils.js';
|
|
7
6
|
// Cache profiled wrappers by the original preact setter to preserve stable
|
|
8
7
|
// identity without introducing extra hooks in component render flow.
|
|
9
8
|
const stateSetterTraceCache = /* @__PURE__ */ isProfiling
|
|
@@ -87,7 +86,7 @@ function useStateWithProfile(initialState) {
|
|
|
87
86
|
stateSetterTraceCache?.set(genericSetState, tracedSetState);
|
|
88
87
|
return [state, tracedSetState];
|
|
89
88
|
}
|
|
90
|
-
const useState = isProfiling
|
|
89
|
+
const useState = (__BACKGROUND__ && isProfiling)
|
|
91
90
|
? useStateWithProfile
|
|
92
91
|
: usePreactState;
|
|
93
92
|
/**
|
|
@@ -99,11 +98,9 @@ const useState = isProfiling
|
|
|
99
98
|
*
|
|
100
99
|
* @public
|
|
101
100
|
*/
|
|
102
|
-
const useEffect = __BACKGROUND__
|
|
103
|
-
?
|
|
104
|
-
|
|
105
|
-
: usePreactEffect)
|
|
106
|
-
: noop;
|
|
101
|
+
const useEffect = (__BACKGROUND__ && isProfiling)
|
|
102
|
+
? useEffectProfiled
|
|
103
|
+
: usePreactEffect;
|
|
107
104
|
/**
|
|
108
105
|
* `useLayoutEffect` is now an alias of `useEffect`. Use `useEffect` instead.
|
|
109
106
|
*
|
|
@@ -116,12 +113,9 @@ const useEffect = __BACKGROUND__
|
|
|
116
113
|
*
|
|
117
114
|
* @deprecated `useLayoutEffect` in the background thread cannot offer the precise timing for reading layout information and synchronously re-render, which is different from React.
|
|
118
115
|
*/
|
|
119
|
-
const useLayoutEffect = __BACKGROUND__
|
|
120
|
-
?
|
|
121
|
-
|
|
122
|
-
: usePreactEffect)
|
|
123
|
-
: noop;
|
|
124
|
-
const useImperativeHandle = __BACKGROUND__ ? usePreactUseImperativeHandle : noop;
|
|
116
|
+
const useLayoutEffect = (__BACKGROUND__ && isProfiling)
|
|
117
|
+
? useLayoutEffectProfiled
|
|
118
|
+
: usePreactEffect;
|
|
125
119
|
export {
|
|
126
120
|
// preact
|
|
127
121
|
useState, useReducer, useRef, useImperativeHandle, useLayoutEffect, useEffect, useCallback, useMemo, useContext, useDebugValue, useErrorBoundary, useId, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/hooks/react.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,SAAS,IAAI,eAAe,EAC5B,QAAQ,IAAI,cAAc,EAC1B,
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/hooks/react.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,15 @@ let jsReadyEventIdSwap;
|
|
|
9
9
|
function jsReady() {
|
|
10
10
|
isJSReady = true;
|
|
11
11
|
if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
|
|
12
|
-
profileStart('ReactLynx::transferRoot');
|
|
13
12
|
profileStart('ReactLynx::serializeRoot');
|
|
14
13
|
}
|
|
15
14
|
const root = JSON.stringify(__root);
|
|
16
15
|
if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
|
|
17
16
|
profileEnd();
|
|
18
17
|
}
|
|
18
|
+
if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
|
|
19
|
+
profileStart('ReactLynx::transferRoot');
|
|
20
|
+
}
|
|
19
21
|
__OnLifecycleEvent([
|
|
20
22
|
LifecycleConstant.firstScreen, /* FIRST_SCREEN */
|
|
21
23
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsReady.js","sourceRoot":"","sources":["../../../src/lifecycle/event/jsReady.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,IAAI,SAAkB,CAAC;AACvB,IAAI,kBAAmD,CAAC;AAExD,SAAS,OAAO;IACd,SAAS,GAAG,IAAI,CAAC;IAEjB,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,EAAE,CAAC;QACtD,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"jsReady.js","sourceRoot":"","sources":["../../../src/lifecycle/event/jsReady.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,IAAI,SAAkB,CAAC;AACvB,IAAI,kBAAmD,CAAC;AAExD,SAAS,OAAO;IACd,SAAS,GAAG,IAAI,CAAC;IAEjB,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,EAAE,CAAC;QACtD,YAAY,CAAC,0BAA0B,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,EAAE,CAAC;QACtD,UAAU,EAAE,CAAC;IACf,CAAC;IACD,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,EAAE,CAAC;QACtD,YAAY,CAAC,yBAAyB,CAAC,CAAC;IAC1C,CAAC;IACD,kBAAkB,CAAC;QACjB,iBAAiB,CAAC,WAAW,EAAE,kBAAkB;QACjD;YACE,IAAI;YACJ,kBAAkB;SACnB;KACF,CAAC,CAAC;IACH,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,EAAE,CAAC;QACtD,UAAU,EAAE,CAAC;IACf,CAAC;IACD,kBAAkB,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,uBAAuB;IAC9B,kBAAkB,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY;IACnB,SAAS,GAAG,KAAK,CAAC;IAClB,kBAAkB,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -26,15 +26,9 @@ function renderMainThread() {
|
|
|
26
26
|
profileEnd();
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
|
|
30
|
-
profileStart('ReactLynx::renderOpcodes');
|
|
31
|
-
}
|
|
32
29
|
if (__ENABLE_SSR__) {
|
|
33
30
|
__root.__opcodes = opcodes;
|
|
34
31
|
}
|
|
35
|
-
if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
|
|
36
|
-
profileEnd();
|
|
37
|
-
}
|
|
38
32
|
}
|
|
39
33
|
export { renderMainThread };
|
|
40
34
|
//# sourceMappingURL=render.js.map
|