Skip to content

Commit a38efd0

Browse files
fix(lynx): use built-in js-ready handoff
1 parent 52e07ad commit a38efd0

4 files changed

Lines changed: 9 additions & 13 deletions

File tree

apps/lynx-module-federation-demo/lynx.config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export default defineConfig({
3838
plugins: [
3939
pluginReactLynx({
4040
defaultDisplayLinear: false,
41-
firstScreenSyncTiming: 'manual',
41+
firstScreenSyncTiming: 'jsReady',
4242
}),
4343
createNativeHostFederationPlugin(nativeManifestUrl),
4444
pluginNativeRemoteAssets,

apps/lynx-module-federation-demo/lynx.web.config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export default defineConfig({
1414
plugins: [
1515
pluginReactLynx({
1616
defaultDisplayLinear: false,
17-
firstScreenSyncTiming: 'manual',
17+
firstScreenSyncTiming: 'jsReady',
1818
}),
1919
createWebHostFederationPlugin(manifestUrl),
2020
],

apps/lynx-module-federation-demo/src/app/App.tsx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
1-
import {
2-
markFirstScreenSyncReady,
3-
useCallback,
4-
useEffect,
5-
useState,
6-
} from '@lynx-js/react';
1+
import { useCallback, useEffect, useState } from '@lynx-js/react';
72

83
import type { SharedStateView } from '../remote-ui/contracts';
94
import { type LoadState, useFederatedCatalog } from './useFederatedCatalog';
@@ -199,7 +194,6 @@ export function App() {
199194
useEffect(() => {
200195
'background-only';
201196
setBackgroundReady(true);
202-
markFirstScreenSyncReady();
203197
}, []);
204198

205199
const selectScreen = useCallback((nextScreen: Screen) => {

apps/lynx-module-federation-demo/test/ios-project.mjs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,14 @@ assert.match(
108108
);
109109
assert.match(
110110
appSource,
111-
/useEffect\(\(\) => \{\s*'background-only';\s*setBackgroundReady\(true\);\s*markFirstScreenSyncReady\(\);\s*\}, \[\]\);/,
111+
/useEffect\(\(\) => \{\s*'background-only';\s*setBackgroundReady\(true\);\s*\}, \[\]\);/,
112+
);
113+
assert.doesNotMatch(
114+
appSource,
115+
/markFirstScreenSyncReady|setTimeout|queueMicrotask/,
112116
);
113-
assert.doesNotMatch(appSource, /\}, \[backgroundReady\]\);/);
114-
assert.doesNotMatch(appSource, /setTimeout|queueMicrotask/);
115117
for (const hostConfig of [nativeHostConfig, webHostConfig]) {
116-
assert.match(hostConfig, /firstScreenSyncTiming: 'manual'/);
118+
assert.match(hostConfig, /firstScreenSyncTiming: 'jsReady'/);
117119
}
118120
assert.match(appSource, /interactive=\{backgroundReady\}/);
119121
assert.match(

0 commit comments

Comments
 (0)