@@ -6,6 +6,7 @@ import { themes } from "prism-react-renderer";
66type  ProviderState  =  { 
77  element ?: ComponentType  |  null ; 
88  error ?: string ; 
9+   newCode ?: string ; 
910} ; 
1011
1112type  Props  =  { 
@@ -37,7 +38,11 @@ function LiveProvider({
3738
3839  async  function  transpileAsync ( newCode : string )  { 
3940    const  errorCallback  =  ( error : Error )  =>  { 
40-       setState ( {  error : error . toString ( ) ,  element : undefined  } ) ; 
41+       setState ( ( previousState )  =>  ( { 
42+         ...previousState , 
43+         error : error . toString ( ) , 
44+         element : undefined , 
45+       } ) ) ; 
4146    } ; 
4247
4348    // - transformCode may be synchronous or asynchronous. 
@@ -51,7 +56,7 @@ function LiveProvider({
5156      try  { 
5257        const  transformedCode  =  await  Promise . resolve ( transformResult ) ; 
5358        const  renderElement  =  ( element : ComponentType )  => 
54-           setState ( {  error : undefined ,  element } ) ; 
59+           setState ( {  error : undefined ,  element,  newCode  } ) ; 
5560
5661        if  ( typeof  transformedCode  !==  "string" )  { 
5762          throw  new  Error ( "Code failed to transform" ) ; 
@@ -65,7 +70,11 @@ function LiveProvider({
6570        } ; 
6671
6772        if  ( noInline )  { 
68-           setState ( {  error : undefined ,  element : null  } ) ;  // Reset output for async (no inline) evaluation 
73+           setState ( ( previousState )  =>  ( { 
74+             ...previousState , 
75+             error : undefined , 
76+             element : null , 
77+           } ) ) ;  // Reset output for async (no inline) evaluation 
6978          renderElementAsync ( input ,  renderElement ,  errorCallback ) ; 
7079        }  else  { 
7180          renderElement ( generateElement ( input ,  errorCallback ) ) ; 
0 commit comments