Proje: Okul B2B App · Hub: Okul B2B App — Conventions
Async Operation Pattern (useAsyncOperation)
hooks/useAsyncOperation.ts — Loading/error state yönetimi ile async işlem wrapper.
Kullanım
const { execute, isLoading, data, hasError, retry } = useAsyncOperation(
LeadsService.getLeads,
{
showErrors: true, // Otomatik Toast error
retryOnError: false, // Hata sonrası retry
maxRetries: 3,
retryDelay: 1000,
onSuccess: (data) => { /* işlem tamamlandı */ },
onError: (error) => { /* hata */ },
}
);
// Çalıştır
await execute(page, pageSize, schoolId);State
{
data: T | null,
loading: boolean,
error: Error | null,
lastUpdated: Date | null
}isMountedRef
Unmount olmuş bileşende state güncellemesini önler:
if (isMountedRef.current) {
setState(...)
}useErrorHandler Entegrasyonu
showErrors: true → useErrorHandler.showError() ile Toast gösterilir.
Not
Bu hook günlük kullanımda pek görülmez. Çoğu yerde servis çağrıları useState + useEffect ile manual yapılmış. Yeni geliştirmelerde kullanılabilir.
Related
- error-handling-pattern — hata gösterme
- custom-hooklar — diğer hook’lar