import { ErrorBoundary } from 'react-error-boundary';
import { useTranslation } from 'react-i18next';
import { ServerSelector } from '/@/renderer/features/sidebar/components/server-selector';
import { LogCategory, logFn } from '/@/renderer/utils/logger';
import { Box } from '/@/shared/components/box/box';
import { Button } from '/@/shared/components/button/button';
import { Center } from '/@/shared/components/center/center';
import { Code } from '/@/shared/components/code/code';
import { Group } from '/@/shared/components/group/group';
import { Icon } from '/@/shared/components/icon/icon';
import { Stack } from '/@/shared/components/stack/stack';
import { TextTitle } from '/@/shared/components/text-title/text-title';
import { Text } from '/@/shared/components/text/text';
interface PageErrorFallbackProps {
error: Error;
resetErrorBoundary: () => void;
}
const PageErrorFallback = ({ error, resetErrorBoundary }: PageErrorFallbackProps) => {
const { t } = useTranslation();
const handleRefresh = () => {
window.location.reload();
};
return (
{t('error.genericError', { postProcess: 'sentenceCase' })}
{error?.message || t('error.genericError', { postProcess: 'sentenceCase' })}
{process.env.NODE_ENV === 'development' && error?.stack && (
{error.stack}
)}
);
};
interface PageErrorBoundaryProps {
children: React.ReactNode;
}
export const PageErrorBoundary = ({ children }: PageErrorBoundaryProps) => {
return (
{
logFn.error('Page error boundary caught an error', {
category: LogCategory.OTHER,
meta: {
componentStack: errorInfo?.componentStack,
message: error?.message,
name: error?.name,
stack: error?.stack,
},
});
}}
onReset={() => {}}
>
{children}
);
};