import { ErrorBoundary } from 'react-error-boundary'; import { useTranslation } from 'react-i18next'; import { ServerSelector } from '/@/renderer/features/sidebar/components/server-selector'; import { Box } from '/@/shared/components/box/box'; import { Button } from '/@/shared/components/button/button'; import { Center } from '/@/shared/components/center/center'; import { Group } from '/@/shared/components/group/group'; import { Icon } from '/@/shared/components/icon/icon'; import { Stack } from '/@/shared/components/stack/stack'; import { Text } from '/@/shared/components/text/text'; interface RouterErrorFallbackProps { error: Error; resetErrorBoundary: () => void; } const RouterErrorFallback = ({ error, resetErrorBoundary }: RouterErrorFallbackProps) => { 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 RouterErrorBoundaryProps { children: React.ReactNode; } export const RouterErrorBoundary = ({ children }: RouterErrorBoundaryProps) => { return ( { if (process.env.NODE_ENV === 'development') { console.error('Root error boundary caught an error:', error, errorInfo); } }} onReset={() => {}} > {children} ); };