@@ -4,8 +4,6 @@ import PropTypes from 'prop-types';
44import LiveContext from './LiveContext' ;
55import { generateElement , renderElementAsync } from '../../utils/transpile' ;
66
7- const EMPTY_STATE = { unsafeWrapperError : undefined , error : undefined } ;
8-
97export default class LiveProvider extends Component {
108 static defaultProps = {
119 code : '' ,
@@ -25,7 +23,7 @@ export default class LiveProvider extends Component {
2523 transformCode : PropTypes . node
2624 } ;
2725
28- state = EMPTY_STATE ;
26+ state = { unsafeWrapperError : undefined , error : undefined , element : React . Fragment }
2927
3028 componentDidMount ( ) {
3129 const { code, scope, transformCode, noInline } = this . props ;
@@ -66,19 +64,22 @@ export default class LiveProvider extends Component {
6664 scope
6765 } ;
6866
67+ // State reset object
68+ const state = { unsafeWrapperError : undefined , error : undefined } ;
69+
6970 const errorCallback = err =>
7071 this . setState ( { element : undefined , error : err . toString ( ) } ) ;
71- const renderElement = element => this . setState ( { ...EMPTY_STATE , element } ) ;
72+ const renderElement = element => this . setState ( { ...state , element } ) ;
7273
7374 try {
7475 if ( noInline ) {
75- this . setState ( { ...EMPTY_STATE , element : null } ) ; // Reset output for async (no inline) evaluation
76+ this . setState ( { ...state , element : null } ) ; // Reset output for async (no inline) evaluation
7677 renderElementAsync ( input , renderElement , errorCallback ) ;
7778 } else {
7879 renderElement ( generateElement ( input , errorCallback ) ) ;
7980 }
8081 } catch ( error ) {
81- this . setState ( { ...EMPTY_STATE , error : error . toString ( ) } ) ;
82+ this . setState ( { ...state , error : error . toString ( ) } ) ;
8283 }
8384 } ;
8485
0 commit comments