MCPcopy
hub / github.com/preactjs/preact / renderWithResolveOrder

Function renderWithResolveOrder

compat/test/browser/suspense-hydration.test.jsx:87–121  ·  view source on GitHub ↗
(order)

Source from the content-addressed store, hash-verified

85 );
86
87 async function renderWithResolveOrder(order) {
88 const loaders = {};
89
90 function Field({ name }) {
91 const id = useId();
92 return <span id={id}>{name}</span>;
93 }
94
95 const createLazy = name =>
96 lazy(
97 () =>
98 new Promise(resolve => {
99 loaders[name] = () =>
100 resolve({ default: () => <Field name={name} /> });
101 })
102 );
103
104 const A = createLazy('A');
105 const B = createLazy('B');
106 const rendered = renderToStringAsync(
107 <div>
108 <Suspense fallback={null}>
109 <A />
110 </Suspense>
111 <Suspense fallback={null}>
112 <B />
113 </Suspense>
114 </div>
115 );
116
117 await Promise.resolve();
118 order.some(name => loaders[name]());
119
120 return getIds(await rendered);
121 }
122
123 const ordered = await renderWithResolveOrder(['A', 'B']);
124 const reversed = await renderWithResolveOrder(['B', 'A']);

Callers 1

Calls 2

createLazyFunction · 0.90
getIdsFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…