@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,55 @@
1
1
  # @lynx-js/react
2
2
 
3
+ ## 0.111.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Allow some `<list-item/>`s to be deferred and rendered in the background thread. ([#204](https://github.com/lynx-family/lynx-stack/pull/204))
8
+
9
+ Use the following syntax:
10
+
11
+ ```diff
12
+ <list>
13
+ - <list-item item-key="...">
14
+ + <list-item item-key="..." defer>
15
+ <SomeHeavyComponent />
16
+ </list-item>
17
+ </list>
18
+ ```
19
+
20
+ You should render your heavyweight components with the `defer` attribute to avoid blocking the main thread.
21
+
22
+ ### Patch Changes
23
+
24
+ - Add missing alias of `@lynx-js/react` and `preact` in testing library, it will fix the `Failed to resolve import "@lynx-js/react/internal"` error in node_modules. ([#1182](https://github.com/lynx-family/lynx-stack/pull/1182))
25
+
26
+ - Allow any types of `dataProcessors` in `lynx.registerDataProcessors`. ([#1200](https://github.com/lynx-family/lynx-stack/pull/1200))
27
+
28
+ - Make `loadLazyBundle` being able to render the content on the first screen of the background thread. ([#1212](https://github.com/lynx-family/lynx-stack/pull/1212))
29
+
30
+ - Fixed: An issue where the `lynxViewDidUpdate` callback did not trigger when data was updated from native. ([#1171](https://github.com/lynx-family/lynx-stack/pull/1171))
31
+
32
+ Notice:
33
+
34
+ - Even if no data changes are actually processed after calling `updateData()`, the `lynxViewDidUpdate` callback will still be triggered.
35
+ - Only one `lynxViewDidUpdate` callback will be triggered per render cycle. Consequently, if multiple `updateData()` calls are made within a single cycle but the data updates are batched, the number of `lynxViewDidUpdate` callbacks triggered may be less than the number of `updateData()` calls.
36
+
37
+ - Supports `act` in testing library. ([#1182](https://github.com/lynx-family/lynx-stack/pull/1182))
38
+
39
+ ```js
40
+ import { act } from '@lynx-js/react/testing-library';
41
+
42
+ act(() => {
43
+ // ...
44
+ });
45
+ ```
46
+
47
+ ## 0.110.1
48
+
49
+ ### Patch Changes
50
+
51
+ - Fix a memory leak when using `<list/>`. ([#1144](https://github.com/lynx-family/lynx-stack/pull/1144))
52
+
3
53
  ## 0.110.0
4
54
 
5
55
  ### Minor Changes
@@ -0,0 +1,7 @@
1
+ import type { FC, ReactNode } from 'react';
2
+ export interface DeferredListItemProps {
3
+ defer?: boolean;
4
+ renderListItem: (children: ReactNode | undefined) => JSX.Element;
5
+ renderChildren: () => ReactNode;
6
+ }
7
+ export declare const DeferredListItem: FC<DeferredListItemProps>;
@@ -0,0 +1,40 @@
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 { cloneElement as _cloneElement, useCallback, useRef, useState } from '@lynx-js/react';
5
+ import { cloneElement as _cloneElementMainThread } from '@lynx-js/react/lepus';
6
+ export const DeferredListItem = ({ defer, renderListItem, renderChildren }) => {
7
+ const __cloneElement = __MAIN_THREAD__ ? _cloneElementMainThread : _cloneElement;
8
+ const initialDeferRef = useRef(defer);
9
+ const prevDeferRef = useRef(defer);
10
+ const [isReady, setIsReady] = useState(!defer);
11
+ const onGetSnapshotInstance = useCallback((ctx) => {
12
+ 'background only';
13
+ ctx.__extraProps ??= {};
14
+ // hack: preact ignore function property on dom
15
+ ctx.__extraProps['onComponentAtIndex'] = () => {
16
+ setIsReady(true);
17
+ };
18
+ ctx.__extraProps['onRecycleComponent'] = () => {
19
+ // TODO(hzy): figure out if we need to unmount the component when recycled
20
+ // setIsReady(false);
21
+ };
22
+ return () => {
23
+ delete ctx.__extraProps['onComponentAtIndex'];
24
+ delete ctx.__extraProps['onRecycleComponent'];
25
+ };
26
+ }, []);
27
+ if (__BACKGROUND__) {
28
+ if (prevDeferRef.current && !defer) {
29
+ setIsReady(true);
30
+ }
31
+ prevDeferRef.current = defer;
32
+ }
33
+ return initialDeferRef.current
34
+ ? __cloneElement(renderListItem(isReady ? renderChildren() : null), {
35
+ isReady: +isReady, // hack: preact specially handled boolean props
36
+ ref: onGetSnapshotInstance,
37
+ })
38
+ : renderListItem(renderChildren());
39
+ };
40
+ //# sourceMappingURL=DeferredListItem.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeferredListItem.jsx","sourceRoot":"","sources":["../src/DeferredListItem.tsx"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE9F,OAAO,EAAE,YAAY,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAQ/E,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,EAAE;IACvG,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC;IAEjF,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,qBAAqB,GAAG,WAAW,CAAgC,CAAC,GAAG,EAAE,EAAE;QAC/E,iBAAiB,CAAC;QAElB,GAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QAEzB,+CAA+C;QAC/C,GAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,GAAG,EAAE;YAC7C,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,GAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,GAAG,EAAE;YAC7C,0EAA0E;YAC1E,qBAAqB;QACvB,CAAC,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,OAAO,GAAI,CAAC,YAAa,CAAC,oBAAoB,CAAC,CAAC;YAChD,OAAO,GAAI,CAAC,YAAa,CAAC,oBAAoB,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,YAAY,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QACD,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,OAAO,eAAe,CAAC,OAAO;QAC5B,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;YAClE,OAAO,EAAE,CAAC,OAAO,EAAE,+CAA+C;YAClE,GAAG,EAAE,qBAAqB;SAC3B,CAAC;QACF,CAAC,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC;AACvC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Page.js","sourceRoot":"","sources":["../src/Page.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,+BAA+B;AAC/B,6FAA6F;AAC7F,4CAA4C;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEhF,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,IAAI;AACR,eAAe,CAAC,CAAC;IACf,IAAI,SAAS,EAAE,CAAC;QACd,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,MAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC7E,qBAAqB;YACrB,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,oBAAoB;YACpB,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CACf,UAAS,KAAK,EAAE,GAAG;QACjB,MAAM,EACJ,QAAQ,EACR,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;QAEV,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC7B,GAAG;gBACH,GAAG,SAAS;gBACZ,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC,CAAC;QACJ,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAExC,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,WAAW,CACd,IAAI,KAAK,CACP,uEAAuE,CACxE,CACF,CAAC;gBACF,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YAED,OAAO,GAAG,EAAE;gBACV,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE;oBAC5B;wBACE,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;4BAC5C,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;wBAC1B,CAAC,CAAC,CACH;wBACD,QAAQ,EAAE,IAAI;qBACf;iBACF,CAAC,CAAC;gBACH,oBAAoB;gBACpB,IAAI,kBAAkB,CAAC,OAAO;oBAAE,WAAW,GAAG,KAAK,CAAC;YACtD,CAAC,CAAC;QACJ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,QAAQ,CAAC;IAClB,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,EAAE,CAAC;AAEP,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"Page.js","sourceRoot":"","sources":["../src/Page.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,+BAA+B;AAC/B,6FAA6F;AAC7F,4CAA4C;AAC5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEhF,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,IAAI;AACR,eAAe,CAAC,CAAC;IACf,IAAI,SAAS,EAAE,CAAC;QACd,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,MAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC7E,qBAAqB;YACrB,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,oBAAoB;YACpB,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAmC,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CACf,UAAS,KAAK,EAAE,GAAG;QACjB,MAAM,EACJ,QAAQ,EACR,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;QAEV,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC7B,GAAG;gBACH,GAAG,SAAS;gBACZ,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC,CAAC;QACJ,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAExC,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,WAAW,CACd,IAAI,KAAK,CACP,uEAAuE,CACxE,CACF,CAAC;gBACF,kBAAkB,CAAC,OAAO,GAAG,KAAK,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YAED,OAAO,GAAG,EAAE;gBACV,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE;oBAC5B;wBACE,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;4BAC5C,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;wBAC1B,CAAC,CAAC,CACH;wBACD,QAAQ,EAAE,IAAI;qBACf;iBACF,CAAC,CAAC;gBACH,oBAAoB;gBACpB,IAAI,kBAAkB,CAAC,OAAO;oBAAE,WAAW,GAAG,KAAK,CAAC;YACtD,CAAC,CAAC;QACJ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,QAAQ,CAAC;IAClB,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,EAAE,CAAC;AAEP,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -1 +1,2 @@
1
1
  export { Page } from './Page.js';
2
+ export { DeferredListItem } from './DeferredListItem.jsx';
@@ -2,4 +2,5 @@
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
4
  export { Page } from './Page.js';
5
+ export { DeferredListItem } from './DeferredListItem.jsx';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,56 @@
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
+
5
+ import type { FC, ReactNode, RefCallback } from 'react';
6
+
7
+ import { cloneElement as _cloneElement, useCallback, useRef, useState } from '@lynx-js/react';
8
+ import type { SnapshotInstance } from '@lynx-js/react/internal';
9
+ import { cloneElement as _cloneElementMainThread } from '@lynx-js/react/lepus';
10
+
11
+ export interface DeferredListItemProps {
12
+ defer?: boolean;
13
+ renderListItem: (children: ReactNode | undefined) => JSX.Element;
14
+ renderChildren: () => ReactNode;
15
+ }
16
+
17
+ export const DeferredListItem: FC<DeferredListItemProps> = ({ defer, renderListItem, renderChildren }) => {
18
+ const __cloneElement = __MAIN_THREAD__ ? _cloneElementMainThread : _cloneElement;
19
+
20
+ const initialDeferRef = useRef(defer);
21
+ const prevDeferRef = useRef(defer);
22
+ const [isReady, setIsReady] = useState(!defer);
23
+ const onGetSnapshotInstance = useCallback<RefCallback<SnapshotInstance>>((ctx) => {
24
+ 'background only';
25
+
26
+ ctx!.__extraProps ??= {};
27
+
28
+ // hack: preact ignore function property on dom
29
+ ctx!.__extraProps['onComponentAtIndex'] = () => {
30
+ setIsReady(true);
31
+ };
32
+ ctx!.__extraProps['onRecycleComponent'] = () => {
33
+ // TODO(hzy): figure out if we need to unmount the component when recycled
34
+ // setIsReady(false);
35
+ };
36
+
37
+ return () => {
38
+ delete ctx!.__extraProps!['onComponentAtIndex'];
39
+ delete ctx!.__extraProps!['onRecycleComponent'];
40
+ };
41
+ }, []);
42
+
43
+ if (__BACKGROUND__) {
44
+ if (prevDeferRef.current && !defer) {
45
+ setIsReady(true);
46
+ }
47
+ prevDeferRef.current = defer;
48
+ }
49
+
50
+ return initialDeferRef.current
51
+ ? __cloneElement(renderListItem(isReady ? renderChildren() : null), {
52
+ isReady: +isReady, // hack: preact specially handled boolean props
53
+ ref: onGetSnapshotInstance,
54
+ })
55
+ : renderListItem(renderChildren());
56
+ };
@@ -21,7 +21,7 @@ const Page: ForwardRefExoticComponent<Omit<PropsWithChildren, 'ref'> & RefAttrib
21
21
  return;
22
22
  }
23
23
  /* v8 ignore stop */
24
- updateSpread(snapshot, index, oldValue, 0);
24
+ updateSpread(snapshot, index, oldValue as Record<string, unknown>, 0);
25
25
  };
26
26
  }
27
27
 
@@ -3,3 +3,4 @@
3
3
  // LICENSE file in the root directory of this source tree.
4
4
 
5
5
  export { Page } from './Page.js';
6
+ export { DeferredListItem } from './DeferredListItem.jsx';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lynx-js/react",
3
- "version": "0.110.0",
3
+ "version": "0.111.0",
4
4
  "description": "ReactLynx is a framework for developing Lynx applications with familiar React.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -5,4 +5,4 @@
5
5
 
6
6
  dist/index.js 11.4kb
7
7
 
8
- ⚡ Done in 29ms
8
+ ⚡ Done in 25ms
@@ -6,4 +6,5 @@ import { sExportsReactLepus, target } from './target';
6
6
 
7
7
  export const {
8
8
  createElement,
9
+ cloneElement,
9
10
  } = target[sExportsReactLepus];
@@ -13,6 +13,7 @@ export const {
13
13
  MainThreadRef,
14
14
  PureComponent,
15
15
  Suspense,
16
+ cloneElement,
16
17
  createContext,
17
18
  createElement,
18
19
  createRef,
@@ -1,4 +1,4 @@
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
- export { createElement } from 'react';
4
+ export { cloneElement, createElement } from 'react';
@@ -41,3 +41,47 @@ export function createElement(type, props, children) {
41
41
 
42
42
  return createVNode(type, normalizedProps, key, ref, null);
43
43
  }
44
+
45
+ /**
46
+ * Clones the given VNode, optionally adding attributes/props and replacing its
47
+ * children.
48
+ * @param {VNode} vnode The virtual DOM element to clone
49
+ * @param {object} props Attributes/props to add when cloning
50
+ * @param {Array<ComponentChildren>} rest Any additional arguments will be used
51
+ * as replacement children.
52
+ * @returns {VNode}
53
+ */
54
+ export function cloneElement(vnode, props, children) {
55
+ let normalizedProps = Object.assign({}, vnode.props),
56
+ key,
57
+ ref,
58
+ i;
59
+
60
+ let defaultProps;
61
+
62
+ if (vnode.type && vnode.type.defaultProps) {
63
+ defaultProps = vnode.type.defaultProps;
64
+ }
65
+
66
+ for (i in props) {
67
+ if (i == 'key') key = props[i];
68
+ else if (i == 'ref') ref = props[i];
69
+ else if (props[i] === undefined && defaultProps !== undefined) {
70
+ normalizedProps[i] = defaultProps[i];
71
+ } else {
72
+ normalizedProps[i] = props[i];
73
+ }
74
+ }
75
+
76
+ if (arguments.length > 2) {
77
+ normalizedProps.children = arguments.length > 3 ? slice.call(arguments, 2) : children;
78
+ }
79
+
80
+ return createVNode(
81
+ vnode.type,
82
+ normalizedProps,
83
+ key || vnode.key,
84
+ ref || vnode.ref,
85
+ null,
86
+ );
87
+ }
@@ -6,6 +6,7 @@ export declare class BackgroundSnapshotInstance {
6
6
  __id: number;
7
7
  __values: any[] | undefined;
8
8
  __snapshot_def: Snapshot;
9
+ __extraProps?: Record<string, unknown> | undefined;
9
10
  private __parent;
10
11
  private __firstChild;
11
12
  private __lastChild;
@@ -18,7 +19,7 @@ export declare class BackgroundSnapshotInstance {
18
19
  insertBefore(node: BackgroundSnapshotInstance, beforeNode?: BackgroundSnapshotInstance): void;
19
20
  removeChild(node: BackgroundSnapshotInstance): void;
20
21
  get childNodes(): BackgroundSnapshotInstance[];
21
- setAttribute(key: string | number, value: any): void;
22
+ setAttribute(key: string | number, value: unknown): void;
22
23
  private setAttributeImpl;
23
24
  }
24
25
  export declare function hydrate(before: SerializedSnapshotInstance, after: BackgroundSnapshotInstance): SnapshotPatch;
@@ -6,9 +6,10 @@ import { diffArrayAction, diffArrayLepus } from './hydrate.js';
6
6
  import { globalBackgroundSnapshotInstancesToRemove } from './lifecycle/patch/commit.js';
7
7
  import { SnapshotOperation, __globalSnapshotPatch, initGlobalSnapshotPatch, takeGlobalSnapshotPatch, } from './lifecycle/patch/snapshotPatch.js';
8
8
  import { globalPipelineOptions } from './lynx/performance.js';
9
+ import { DynamicPartType } from './snapshot/dynamicPartType.js';
9
10
  import { clearQueuedRefs, queueRefAttrUpdate } from './snapshot/ref.js';
10
11
  import { transformSpread } from './snapshot/spread.js';
11
- import { DynamicPartType, backgroundSnapshotInstanceManager, snapshotManager, traverseSnapshotInstance, } from './snapshot.js';
12
+ import { backgroundSnapshotInstanceManager, snapshotManager, traverseSnapshotInstance } from './snapshot.js';
12
13
  import { hydrationMap } from './snapshotInstanceHydrationMap.js';
13
14
  import { isDirectOrDeepEqual } from './utils.js';
14
15
  import { onPostWorkletCtx } from './worklet/ctx.js';
@@ -17,14 +18,14 @@ export class BackgroundSnapshotInstance {
17
18
  constructor(type) {
18
19
  this.type = type;
19
20
  this.__snapshot_def = snapshotManager.values.get(type);
20
- let id;
21
- id = this.__id = backgroundSnapshotInstanceManager.nextId += 1;
21
+ const id = this.__id = backgroundSnapshotInstanceManager.nextId += 1;
22
22
  backgroundSnapshotInstanceManager.values.set(id, this);
23
23
  __globalSnapshotPatch?.push(SnapshotOperation.CreateElement, type, id);
24
24
  }
25
25
  __id;
26
26
  __values;
27
27
  __snapshot_def;
28
+ __extraProps;
28
29
  __parent = null;
29
30
  __firstChild = null;
30
31
  __lastChild = null;
@@ -193,11 +194,15 @@ export class BackgroundSnapshotInstance {
193
194
  }
194
195
  return;
195
196
  }
196
- // old path (`<__snapshot_xxxx_xxxx __0={} __1={} />` or `this.setAttribute(0, xxx)`)
197
- // is reserved as slow path
198
- const index = typeof key === 'string' ? Number(key.slice(2)) : key;
199
- (this.__values ??= [])[index] = value;
200
- __globalSnapshotPatch?.push(SnapshotOperation.SetAttribute, this.__id, index, value);
197
+ if (typeof key === 'string') {
198
+ (this.__extraProps ??= {})[key] = value;
199
+ }
200
+ else {
201
+ // old path (`this.setAttribute(0, xxx)`)
202
+ // is reserved as slow path
203
+ (this.__values ??= [])[key] = value;
204
+ }
205
+ __globalSnapshotPatch?.push(SnapshotOperation.SetAttribute, this.__id, key, value);
201
206
  if (__PROFILE__) {
202
207
  console.profileEnd();
203
208
  }
@@ -273,7 +278,7 @@ export class BackgroundSnapshotInstance {
273
278
  }
274
279
  export function hydrate(before, after) {
275
280
  initGlobalSnapshotPatch();
276
- const helper2 = (afters, parentId) => {
281
+ const helper2 = (afters, parentId, targetId) => {
277
282
  for (const child of afters) {
278
283
  const id = child.__id;
279
284
  __globalSnapshotPatch.push(SnapshotOperation.CreateElement, child.type, id);
@@ -282,8 +287,12 @@ export function hydrate(before, after) {
282
287
  child.__values = undefined;
283
288
  child.setAttribute('values', values);
284
289
  }
290
+ const extraProps = child.__extraProps;
291
+ for (const key in extraProps) {
292
+ child.setAttribute(key, extraProps[key]);
293
+ }
285
294
  helper2(child.childNodes, id);
286
- __globalSnapshotPatch.push(SnapshotOperation.InsertBefore, parentId, id, undefined);
295
+ __globalSnapshotPatch.push(SnapshotOperation.InsertBefore, parentId, id, targetId);
287
296
  }
288
297
  };
289
298
  const helper = (before, after) => {
@@ -292,40 +301,61 @@ export function hydrate(before, after) {
292
301
  after.__values?.forEach((value, index) => {
293
302
  const old = before.values[index];
294
303
  if (value) {
295
- if (value.__spread) {
296
- // `value.__spread` my contain event ids using snapshot ids before hydration. Remove it.
297
- delete value.__spread;
298
- value = transformSpread(after, index, value);
299
- for (const key in value) {
300
- if (value[key] && value[key]._wkltId) {
301
- onPostWorkletCtx(value[key]);
302
- }
303
- else if (value[key] && value[key].__isGesture) {
304
- processGestureBackground(value[key]);
304
+ if (typeof value === 'object') {
305
+ if ('__spread' in value) {
306
+ // `value.__spread` my contain event ids using snapshot ids before hydration. Remove it.
307
+ delete value.__spread;
308
+ const __spread = transformSpread(after, index, value);
309
+ for (const key in __spread) {
310
+ const v = __spread[key];
311
+ if (v && typeof v === 'object') {
312
+ if ('_wkltId' in v) {
313
+ onPostWorkletCtx(v);
314
+ }
315
+ else if ('__isGesture' in v) {
316
+ processGestureBackground(v);
317
+ }
318
+ }
305
319
  }
320
+ after.__values[index]['__spread'] = __spread;
321
+ value = __spread;
322
+ }
323
+ else if ('__ref' in value) {
324
+ // skip patch
325
+ value = old;
326
+ }
327
+ else if ('_wkltId' in value) {
328
+ onPostWorkletCtx(value);
329
+ }
330
+ else if ('__isGesture' in value) {
331
+ processGestureBackground(value);
306
332
  }
307
- after.__values[index].__spread = value;
308
- }
309
- else if (value.__ref) {
310
- // skip patch
311
- value = old;
312
333
  }
313
334
  else if (typeof value === 'function') {
314
- value = `${after.__id}:${index}:`;
335
+ if ('__ref' in value) {
336
+ // skip patch
337
+ value = old;
338
+ }
339
+ else {
340
+ value = `${after.__id}:${index}:`;
341
+ }
315
342
  }
316
343
  }
317
- if (value && value._wkltId) {
318
- onPostWorkletCtx(value);
319
- }
320
- else if (value && value.__isGesture) {
321
- processGestureBackground(value);
322
- }
323
344
  if (!isDirectOrDeepEqual(value, old)) {
324
345
  __globalSnapshotPatch.push(SnapshotOperation.SetAttribute, after.__id, index, value);
325
346
  }
326
347
  });
348
+ if (after.__extraProps) {
349
+ for (const key in after.__extraProps) {
350
+ const value = after.__extraProps[key];
351
+ const old = before.extraProps?.[key];
352
+ if (!isDirectOrDeepEqual(value, old)) {
353
+ __globalSnapshotPatch.push(SnapshotOperation.SetAttribute, after.__id, key, value);
354
+ }
355
+ }
356
+ }
327
357
  const { slot } = after.__snapshot_def;
328
- const beforeChildNodes = before.children || [];
358
+ const beforeChildNodes = before.children ?? [];
329
359
  const afterChildNodes = after.childNodes;
330
360
  if (!slot) {
331
361
  return;
@@ -346,14 +376,7 @@ export function hydrate(before, after) {
346
376
  helper(a, b);
347
377
  });
348
378
  diffArrayAction(beforeChildNodes, diffResult, (node, target) => {
349
- __globalSnapshotPatch.push(SnapshotOperation.CreateElement, node.type, node.__id);
350
- helper2(node.childNodes, node.__id);
351
- const values = node.__values;
352
- if (values) {
353
- node.__values = undefined;
354
- node.setAttribute('values', values);
355
- }
356
- __globalSnapshotPatch.push(SnapshotOperation.InsertBefore, before.id, node.__id, target?.id);
379
+ helper2([node], before.id, target?.id);
357
380
  return undefined;
358
381
  }, node => {
359
382
  __globalSnapshotPatch.push(SnapshotOperation.RemoveChild, before.id, node.id);
@@ -1 +1 @@
1
- {"version":3,"file":"backgroundSnapshot.js","sourceRoot":"","sources":["../src/backgroundSnapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backgroundSnapshot.js","sourceRoot":"","sources":["../src/backgroundSnapshot.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,17 @@
1
- import type { ComponentClass, Consumer, Context, FC, ReactNode } from 'react';
1
+ import type { Consumer, Context, Provider } from 'preact';
2
+ import type { ComponentClass } from 'react';
2
3
  import { useLynxGlobalEventListener } from '../hooks/useLynxGlobalEventListener.js';
3
4
  type Getter<T> = {
4
5
  [key in keyof T]: () => T[key];
5
6
  };
6
- export declare function factory<Data>({ createContext, useState, createElement, useLynxGlobalEventListener: useListener }: typeof import('react') & {
7
+ export declare function factory<Data>({ createContext, useState, createElement, useLynxGlobalEventListener: useListener }: {
8
+ createContext: typeof import('preact').createContext;
9
+ useState: typeof import('preact/hooks').useState;
10
+ createElement: typeof import('preact').createElement;
7
11
  useLynxGlobalEventListener: typeof useLynxGlobalEventListener;
8
12
  }, prop: '__globalProps' | '__initData', eventName: string): Getter<{
9
13
  Context: Context<Data>;
10
- Provider: FC<{
11
- children?: ReactNode | undefined;
12
- }>;
14
+ Provider: Provider<Data>;
13
15
  Consumer: Consumer<Data>;
14
16
  use: () => Data;
15
17
  useChanged: (callback: (data: Data) => void) => void;
@@ -1,10 +1,14 @@
1
1
  import { useLynxGlobalEventListener } from '../hooks/useLynxGlobalEventListener.js';
2
+ import { globalFlushOptions } from '../lifecycle/patch/commit.js';
2
3
  // for better reuse if runtime is changed
3
4
  export function factory({ createContext, useState, createElement, useLynxGlobalEventListener: useListener }, prop, eventName) {
4
5
  const Context = createContext({});
5
6
  const Provider = ({ children }) => {
6
7
  const [__, set] = useState(lynx[prop]);
7
8
  const handleChange = () => {
9
+ if (prop === '__initData') {
10
+ globalFlushOptions.triggerDataUpdated = true;
11
+ }
8
12
  set(lynx[prop]);
9
13
  };
10
14
  useChanged(handleChange);
@@ -16,17 +20,20 @@ export function factory({ createContext, useState, createElement, useLynxGlobalE
16
20
  const use = () => {
17
21
  const [__, set] = useState(lynx[prop]);
18
22
  useChanged(() => {
23
+ if (prop === '__initData') {
24
+ globalFlushOptions.triggerDataUpdated = true;
25
+ }
19
26
  set(lynx[prop]);
20
27
  });
21
28
  return __;
22
29
  };
23
30
  const useChanged = (callback) => {
24
31
  if (!__LEPUS__) {
25
- // @ts-ignore
26
32
  useListener(eventName, callback);
27
33
  }
28
34
  };
29
35
  return {
36
+ /* v8 ignore next */
30
37
  Context: () => Context,
31
38
  Provider: () => Provider,
32
39
  Consumer: () => Consumer,
@@ -60,7 +67,8 @@ export function factory({ createContext, useState, createElement, useLynxGlobalE
60
67
  * @public
61
68
  */
62
69
  export function withInitDataInState(App) {
63
- const isClassComponent = 'prototype' in App && App.prototype.render;
70
+ const isClassComponent = 'prototype' in App && 'render' in App.prototype;
71
+ /* v8 ignore next 4 */
64
72
  if (!isClassComponent) {
65
73
  // return as-is when not class component
66
74
  return App;
@@ -75,6 +83,7 @@ export function withInitDataInState(App) {
75
83
  };
76
84
  if (!__LEPUS__) {
77
85
  lynx.getJSModule('GlobalEventEmitter').addListener('onDataChanged', this.h = () => {
86
+ globalFlushOptions.triggerDataUpdated = true;
78
87
  this.setState(lynx.__initData);
79
88
  });
80
89
  }