rtmp / src /main.tsx
wuhp's picture
Update src/main.tsx
6b10023 verified
import React, {StrictMode, useEffect, useState} from 'react';
import {createRoot} from 'react-dom/client';
import App from './App.tsx';
import './index.css';
function ErrorBoundary({ children }: { children: React.ReactNode }) {
const [hasError, setHasError] = useState(false);
const [errorMsg, setErrorMsg] = useState('');
useEffect(() => {
const errorHandler = (event: ErrorEvent) => {
setHasError(true);
setErrorMsg(event.message + '\n' + (event.error?.stack || ''));
};
window.addEventListener('error', errorHandler);
return () => {
window.removeEventListener('error', errorHandler);
};
}, []);
if (hasError) {
return (
<div style={{ padding: 20, color: 'red', fontFamily: 'monospace', whiteSpace: 'pre-wrap', background: 'white' }}>
<h2>Something went wrong.</h2>
<p>{errorMsg}</p>
</div>
);
}
return <>{children}</>;
}
createRoot(document.getElementById('root')!).render(
<StrictMode>
<ErrorBoundary>
<App />
</ErrorBoundary>
</StrictMode>,
);