File "error-boundary.js"
Full Path: /home/warrior1/public_html/languages/wp-content-20241001222009/plugins/elementor/app/assets/js/organisms/error-boundary.js
File size: 1.63 KB
MIME-type: text/x-java
Charset: utf-8
import Dialog from 'elementor-app/ui/dialog/dialog';
// In the current time there is no solution to use "getDerivedStateFromError" static method with functional component
// That is why this component is a class component.
// @link https://reactjs.org/docs/hooks-faq.html#do-hooks-cover-all-use-cases-for-classes
export default class ErrorBoundary extends React.Component {
static propTypes = {
children: PropTypes.any,
title: PropTypes.string,
text: PropTypes.string,
learnMoreUrl: PropTypes.string,
};
static defaultProps = {
title: __( 'App could not be loaded', 'elementor' ),
text: __( 'We’re sorry, but something went wrong. Click on ‘Learn more’ and follow each of the steps to quickly solve it.', 'elementor' ),
learnMoreUrl: 'https://go.elementor.com/app-general-load-issue/',
};
constructor( props ) {
super( props );
this.state = {
hasError: null,
};
}
static getDerivedStateFromError() {
return { hasError: true };
}
goBack() {
// If the app was opened inside an iframe, it will close it,
// if not, it will redirect to the last location.
if ( window.top !== window.self ) {
window.top.$e.run( 'app/close' );
}
window.location = elementorAppConfig.return_url;
}
render() {
if ( this.state.hasError ) {
return <Dialog
title={ this.props.title }
text={ this.props.text }
approveButtonUrl={ this.props.learnMoreUrl }
approveButtonColor="link"
approveButtonTarget="_blank"
approveButtonText={ __( 'Learn More', 'elementor' ) }
dismissButtonText={ __( 'Go Back', 'elementor' ) }
dismissButtonOnClick={ this.goBack }
/>;
}
return this.props.children;
}
}