import React from 'react'; import { cn } from '../utils/cn'; export interface ErrorStateProps { /** * Error object or message */ error?: Error | string | null; /** * Additional CSS class */ className?: string; /** * Whether to show a retry button * @default false */ showRetry?: boolean; /** * Handler for retry button click */ onRetry?: () => void; /** * Custom renderer for error message */ renderMessage?: (error: Error | string) => React.ReactNode; /** * Default error message if no error is provided */ defaultMessage?: string; } /** * ErrorState component - Display error message with optional retry button */ export const ErrorState: React.FC = ({ error, className, showRetry = false, onRetry, renderMessage, defaultMessage = 'Đã xảy ra lỗi', }) => { // If no error, use default message const errorMessage = error ? (typeof error === 'string' ? error : error.message || defaultMessage) : defaultMessage; return (
{renderMessage ? ( renderMessage(error || defaultMessage) ) : (

{errorMessage}

)} {showRetry && onRetry && ( )}
); }; export default ErrorState;