mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-06 16:33:15 +01:00
34 lines
711 B
JavaScript
34 lines
711 B
JavaScript
import React from "react";
|
|
|
|
export class Scope extends React.Component {
|
|
|
|
state = {
|
|
hasError: false,
|
|
};
|
|
|
|
recover = () => {
|
|
toRecover.delete(this.recover);
|
|
this.setState({hasError: false});
|
|
};
|
|
|
|
componentDidCatch(e) {
|
|
this.setState({hasError: true});
|
|
setTimeout(() => toRecover.add(this.recover), 300);
|
|
console.error(e);
|
|
}
|
|
|
|
render() {
|
|
if (this.state.hasError) {
|
|
return this.props.message || null;
|
|
}
|
|
return this.props.children;
|
|
}
|
|
}
|
|
|
|
const toRecover = new Set();
|
|
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
document.addEventListener("mouseup", function( e ) {
|
|
setTimeout(() => toRecover.forEach(r => r()), 300);
|
|
}, false)
|
|
}, false);
|