mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-05 10:23:44 +08:00
30 lines
646 B
TypeScript
30 lines
646 B
TypeScript
import { ReactNode } from "react";
|
|
import { ErrorBoundary, FallbackProps } from "react-error-boundary";
|
|
|
|
function ErrorFallback({ error }: FallbackProps) {
|
|
return (
|
|
<div role="alert" style={{ padding: 16 }}>
|
|
<h4>Something went wrong:(</h4>
|
|
|
|
<pre>{error.message}</pre>
|
|
|
|
<details title="Error Stack">
|
|
<summary>Error Stack</summary>
|
|
<pre>{error.stack}</pre>
|
|
</details>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
interface Props {
|
|
children?: ReactNode;
|
|
}
|
|
|
|
export const BaseErrorBoundary = (props: Props) => {
|
|
return (
|
|
<ErrorBoundary FallbackComponent={ErrorFallback}>
|
|
{props.children}
|
|
</ErrorBoundary>
|
|
);
|
|
};
|