StartupMap-India / frontend /src /components /ErrorBoundary.jsx
Ram2005's picture
fix: add React ErrorBoundary to prevent white-screen crashes
fc8f11d verified
import React from 'react'
export default class ErrorBoundary extends React.Component {
constructor(props) {
super(props)
this.state = { hasError: false, error: null }
}
static getDerivedStateFromError(error) {
return { hasError: true, error }
}
componentDidCatch(error, info) {
console.error('ErrorBoundary caught:', error, info)
}
render() {
if (this.state.hasError) {
return (
<div className="min-h-screen bg-atlas-bg flex items-center justify-center p-4">
<div className="glass rounded-2xl p-8 max-w-md text-center">
<div className="text-4xl mb-4">⚠️</div>
<h2 className="text-xl font-bold text-atlas-text mb-2">Something went wrong</h2>
<p className="text-sm text-atlas-muted mb-4">
The map encountered an error. Reloading usually fixes transient rendering/network issues.
</p>
<button
onClick={() => { this.setState({ hasError: false, error: null }); window.location.reload(); }}
className="bg-brand-500 hover:bg-brand-600 text-white px-4 py-2 rounded-lg text-sm font-medium transition-colors"
>
Reload Page
</button>
</div>
</div>
)
}
return this.props.children
}
}