Proje: Okul B2B App · Hub: Okul B2B App — Conventions

useErrorHandler Hook

hooks/useErrorHandler.ts — Hata gösterimi ve retry yönetimi hook’u.

Return

{
  errorState: { isVisible, errorMessage, onRetry },
  showError: (error, onRetry?) => void,        // Error → lokalize mesaj → göster
  showCustomError: (title, message, opts?) => void, // Özel mesaj
  hideError: () => void,
  handleRetry: () => void,                      // onRetry callback'i çağırır
  showAlert: (error, onRetry?) => void          // Native Alert ile göster
}

showError Pattern

const { showError } = useErrorHandler();
 
try {
  await apiCall();
} catch (error) {
  showError(error as Error, () => retryApiCall());
}

getErrorMessage(error) ile UserErrorMessage nesnesi oluşturulur. Toast veya AlertModal ile gösterilir.

ErrorModal

components/ui/ErrorModal.tsx — useErrorHandler state’ini dinleyip modal gösterer. isRetryable: true → “Tekrar Dene” butonu.