Files
DOSSIER-STANDALONE/src/ui/ErrorBoundary.tsx
T
karim ca859c4aa4 Browser-BIM (cad): semantisches Modell, abgeleitete 2D/3D-Sichten, Zeichenwerkzeuge
Standalone-Browser-Port von DOSSIER. Enthaelt das semantische Modell mit
Plan-/3D-Ableitung, Zeichen- und Editierwerkzeuge, Rhino-artiges Befehlssystem,
dockbares Panel-System, Resource-Manager, DXF/.lin/.pat-Import, i18n (de/en)
sowie Projektdokumentation und Probe-Harness.
2026-06-30 20:52:27 +02:00

37 lines
938 B
TypeScript

import { Component, type ErrorInfo, type ReactNode } from "react";
import { t } from "../i18n";
interface Props {
children: ReactNode;
}
interface State {
error: Error | null;
}
/** Sicherheitsnetz: fängt Render-Fehler ab, statt die Seite weiß zu lassen. */
export class ErrorBoundary extends Component<Props, State> {
state: State = { error: null };
static getDerivedStateFromError(error: Error): State {
return { error };
}
componentDidCatch(error: Error, info: ErrorInfo): void {
console.error(t("error.console"), error, info);
}
render(): ReactNode {
if (this.state.error) {
return (
<div className="error-screen">
<h1>{t("error.title")}</h1>
<p>{t("error.body")}</p>
<pre>{this.state.error.message}</pre>
<button onClick={() => location.reload()}>{t("error.reload")}</button>
</div>
);
}
return this.props.children;
}
}