mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-14 15:24:52 +09:00
* .jsx to .tsx * controller: tsc --build before webpack-cli * Type Annotation * disabled move into the <Input/> and <Checkbox/> * cleanup debug left over * documentation * default ModPack * modPackUpdateHandlers no undefined * PluginInfo changes proposition * PluginInfo changes proposition miss * ModRecord & ModInfo feedback loop at const mods = [ ? * ["connect", "drop", "resume", "close"] as const * .tsx to .ts when possible
28 lines
599 B
TypeScript
28 lines
599 B
TypeScript
import React from "react";
|
|
|
|
import type { ErrorProps } from "./App";
|
|
|
|
type ErrorBoundaryProps = {
|
|
Component: (props: ErrorProps) => React.JSX.Element;
|
|
children?: React.ReactElement;
|
|
};
|
|
|
|
type ErrorBoundaryState = {
|
|
error: Error | null;
|
|
};
|
|
|
|
export default class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
state: ErrorBoundaryState = { error: null };
|
|
|
|
static getDerivedStateFromError(error: any) {
|
|
return { error };
|
|
}
|
|
|
|
render() {
|
|
if (this.state.error) {
|
|
return <this.props.Component error={this.state.error} />;
|
|
}
|
|
return this.props.children;
|
|
}
|
|
}
|