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ı
| Özellik | useNativeImagePicker | useImageCropPicker |
|---|---|---|
| Çoklu seçim | ✅ | ❌ |
| Kırpma | Sınırlı | ✅ Gelişmiş |
| Kütüphane | expo-image-picker | react-native-image-crop-picker |
| Expo Go | ✅ | ❌ (native) |
ImagePickerResult
{
uri: string;
fileName?: string;
fileSize?: number;
width?: number;
height?: number;
}Related
- medya-yukleme-akisi — bu hook’lardan sonraki upload flow
- izin-yonetimi — kamera ve galeri izinleri