import React from 'react'; import { AlertTriangle, RefreshCw, Home } from 'lucide-react'; export default class ErrorBoundary extends React.Component { constructor(props) { super(props); this.state = { hasError: false, error: null, errorInfo: null }; } static getDerivedStateFromError(error) { return { hasError: true, error }; } componentDidCatch(error, errorInfo) { console.error('DiffWeave Caught Runtime Error:', error, errorInfo); this.setState({ errorInfo }); } handleReset = () => { this.setState({ hasError: false, error: null, errorInfo: null }); window.location.href = '/'; }; handleReload = () => { window.location.reload(); }; render() { if (this.state.hasError) { return (
DiffWeave encountered an unexpected client error. Don't worry, your workspace data and documents are safely stored.
{this.state.error.toString()}