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

UploadProgress Bileşeni

components/gallery/UploadProgress.tsx — Yükleme ilerleme takibi modal’ı.

UploadItem State

interface UploadItem {
  id: string,
  fileName: string,
  fileSize: number,
  progress: number,        // 0-100
  status: 'pending' | 'uploading' | 'completed' | 'error',
  error?: string,
  type: 'image' | 'video' | 'logo',
  uri: string,
  uploadedAt?: string
}

ProgressBar

SVG Circle ile dairesel progress bar. status === 'error' → kırmızı, completed → yeşil, uploading → mavi.

Aksiyonlar

  • onRetry(uploadId) — Başarısız yüklemeyi tekrar dene
  • onCancel(uploadId) — Yüklemeyi iptal et
  • onClearCompleted() — Tamamlanan yüklemeleri temizle

Haptic Feedback

Upload tamamlandığında veya başarısız olduğunda Haptics.notificationAsync() çağrılır.