import { useState, useCallback } from 'react'; export interface AppError { message: string; code?: string; details?: unknown; timestamp: number; } export function useErrorHandler() { const [error, setError] = useState(null); const handleError = useCallback((err: unknown, context?: string): void => { let errorMessage = 'Une erreur est survenue'; let errorCode: string | undefined; if (err instanceof Error) { errorMessage = err.message; errorCode = err.name; } else if (typeof err === 'string') { errorMessage = err; } if (context !== undefined) { errorMessage = `${context}: ${errorMessage}`; } console.error('Error:', err); setError({ message: errorMessage, code: errorCode, details: err, timestamp: Date.now(), }); }, []); const clearError = useCallback((): void => { setError(null); }, []); return { error, handleError, clearError, }; }