@@ -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
5153const 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