@@ -4,6 +4,8 @@ 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+
79export default class LiveProvider extends Component {
810 static defaultProps = {
911 code : '' ,
@@ -23,8 +25,9 @@ export default class LiveProvider extends Component {
2325 transformCode : PropTypes . node
2426 } ;
2527
26- // eslint-disable-next-line camelcase
27- UNSAFE_componentWillMount ( ) {
28+ state = EMPTY_STATE ;
29+
30+ componentDidMount ( ) {
2831 const { code, scope, transformCode, noInline } = this . props ;
2932
3033 this . transpile ( { code, scope, transformCode, noInline } ) ;
@@ -65,20 +68,17 @@ export default class LiveProvider extends Component {
6568
6669 const errorCallback = err =>
6770 this . setState ( { element : undefined , error : err . toString ( ) } ) ;
68- const renderElement = element => this . setState ( { ...state , element } ) ;
69-
70- // State reset object
71- const state = { unsafeWrapperError : undefined , error : undefined } ;
71+ const renderElement = element => this . setState ( { ...EMPTY_STATE , element } ) ;
7272
7373 try {
7474 if ( noInline ) {
75- this . setState ( { ...state , element : null } ) ; // Reset output for async (no inline) evaluation
75+ this . setState ( { ...EMPTY_STATE , element : null } ) ; // Reset output for async (no inline) evaluation
7676 renderElementAsync ( input , renderElement , errorCallback ) ;
7777 } else {
7878 renderElement ( generateElement ( input , errorCallback ) ) ;
7979 }
8080 } catch ( error ) {
81- this . setState ( { ...state , error : error . toString ( ) } ) ;
81+ this . setState ( { ...EMPTY_STATE , error : error . toString ( ) } ) ;
8282 }
8383 } ;
8484
0 commit comments