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

Görsel Seçici Hook’lar

useNativeImagePicker (expo-image-picker)

Temel fotoğraf seçici. Kamera ve galeri desteği.

const { pickImage, pickImages, isProcessing } = useNativeImagePicker({
  quality: 0.8,           // JPEG kalitesi
  allowMultiple: false,   // Çoklu seçim
  selectionLimit: 10,     // Max seçim sayısı
  maxFileSize: 3,         // Max MB
  galleryOnly: false,     // Sadece galeri (kamera yok)
  onImageSelected: (result) => { /* ImagePickerResult */ },
  onBatchSelected: (result) => { /* BatchImagePickerResult */ },
  onError: (error) => { /* hata mesajı */ },
});

iOS’ta kamera vs galeri seçimi için ActionSheetIOS kullanır.

useImageCropPicker (react-native-image-crop-picker)

Kırpma gerektiren durumlar için (logo vb.):

const { pickWithCrop } = useImageCropPicker({
  width: 400,
  height: 400,
  cropping: true,
  cropperCircleOverlay: false,
});

İki Hook’un Farkı

ÖzellikuseNativeImagePickeruseImageCropPicker
Çoklu seçim
KırpmaSınırlı✅ Gelişmiş
Kütüphaneexpo-image-pickerreact-native-image-crop-picker
Expo Go❌ (native)

ImagePickerResult

{
  uri: string;
  fileName?: string;
  fileSize?: number;
  width?: number;
  height?: number;
}