Skip to content

Commit 0442bbd

Browse files
committed
Fix fallback
1 parent edee6b5 commit 0442bbd

File tree

1 file changed

+28
-36
lines changed

1 file changed

+28
-36
lines changed

docs/src/modules/components/Demo.js

Lines changed: 28 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,12 @@ function dynamicWithFallbackProps(getter, options = {}) {
4242
};
4343
}
4444

45-
const EditableDemoEditor = dynamicWithFallbackProps(() => load('EditableDemoEditor'), {
46-
loading: ({ props }) => {
47-
return props.fallback;
48-
},
45+
const EditableDemoPreview = dynamicWithFallbackProps(() => load('EditableDemoPreview'), {
46+
loading: ({ props }) => props.fallback,
47+
});
48+
49+
const EditableDemoEditor = dynamicWithFallbackProps(async () => load('EditableDemoEditor'), {
50+
loading: ({ props }) => props.fallback,
4951
});
5052

5153
const DemoToolbar = React.lazy(() => import('./DemoToolbar'));
@@ -207,7 +209,6 @@ export default function Demo(props) {
207209
setDemoHovered(event.type === 'mouseenter');
208210
};
209211

210-
const DemoComponent = demoData.Component;
211212
const demoName = getDemoName(demoData.githubLocation);
212213
const demoSandboxedStyle = React.useMemo(
213214
() => ({
@@ -272,15 +273,20 @@ export default function Demo(props) {
272273
handleEditorChange(codeOpen ? demoData.raw : demo.jsxPreview);
273274
}, [codeOpen, handleEditorChange, demoData.raw, demo.jsxPreview]);
274275

275-
const codeSandboxed = (
276-
<DemoSandboxed
277-
key={demoKey}
278-
style={demoSandboxedStyle}
279-
component={DemoComponent}
280-
iframe={demoOptions.iframe}
281-
name={demoName}
282-
onResetDemoClick={resetDemo}
283-
/>
276+
const DemoComponent = React.useMemo(
277+
() =>
278+
isEditing
279+
? () => (
280+
<EditableDemoPreview
281+
resolveDemoImports={resolveDemoImports}
282+
code={dynamicCode}
283+
key={demoKey}
284+
language={demoData.sourceLanguage}
285+
fallback={<demoData.Component />}
286+
/>
287+
)
288+
: demoData.Component,
289+
[isEditing, dynamicCode, demoKey, resolveDemoImports, demoData],
284290
);
285291

286292
const staticPreview = (
@@ -303,28 +309,14 @@ export default function Demo(props) {
303309
onMouseLeave={handleDemoHover}
304310
>
305311
<InitialFocus aria-label={t('initialFocusLabel')} action={initialFocusRef} tabIndex={-1} />
306-
{
307-
// <EditableDemoPreview
308-
// resolveDemoImports={resolveDemoImports}
309-
// code={dynamicCode}
310-
// key={demoKey}
311-
// language={demoData.sourceLanguage}
312-
// fallback={codeSandboxed}
313-
// />
314-
<DemoSandboxed
315-
key={demoKey}
316-
style={demoSandboxedStyle}
317-
component={DemoComponent}
318-
iframe={demoOptions.iframe}
319-
name={demoName}
320-
onResetDemoClick={resetDemo}
321-
isEditing={isEditing}
322-
resolveDemoImports={resolveDemoImports}
323-
key={demoKey}
324-
language={demoData.sourceLanguage}
325-
dynamicCode={dynamicCode}
326-
/>
327-
}
312+
<DemoSandboxed
313+
key={demoKey}
314+
style={demoSandboxedStyle}
315+
component={DemoComponent}
316+
iframe={demoOptions.iframe}
317+
name={demoName}
318+
onResetDemoClick={resetDemo}
319+
/>
328320
</DemoRoot>
329321
<AnchorLink id={`${demoName}.js`} />
330322
<AnchorLink id={`${demoName}.tsx`} />

0 commit comments

Comments
 (0)