All files / src/app/(site)/account error.tsx

0% Statements 0/43
100% Branches 0/0
0% Functions 0/1
0% Lines 0/43

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44                                                                                       
'use client';

import { useEffect } from 'react';
import { ErrorPage } from '@/components/shared/ErrorPage';
import { logError } from '@/lib/errors/error-analytics';

/**
 * Account Error Boundary
 *
 * Handles errors in the user account section.
 */
export default function AccountError({
  error,
  reset,
}: {
  error: Error & { digest?: string };
  reset: () => void;
}) {
  useEffect(() => {
    logError(error, { context: 'account', digest: error.digest });
  }, [error]);

  // Check for authentication-related errors
  const isAuthError = error.message.toLowerCase().includes('unauthorized') ||
    error.message.toLowerCase().includes('unauthenticated') ||
    error.message.toLowerCase().includes('session');

  return (
    <ErrorPage
      title={isAuthError ? 'Session expired' : 'Account error'}
      message={
        isAuthError
          ? 'Your session has expired. Please sign in again.'
          : "We couldn't load your account information. Please try again or sign in again."
      }
      variant={isAuthError ? 'unauthorized' : 'warning'}
      errorCode={error.digest}
      showRetry
      showHome
      onRetry={reset}
    />
  );
}