Proje: Okul B2B App · Hub: Okul B2B App — Conventions
MediaPicker Bileşeni
components/gallery/MediaPicker.tsx — Wrappable medya seçici bileşeni. useNativeImagePicker hook’unun bileşen versiyonu.
Props
{
onMediaSelected: (result: MediaPickerResult) => void,
onBatchSelected: (result: BatchMediaPickerResult) => void,
allowsMultipleSelection: boolean,
mediaTypes: 'Images' | 'Videos' | 'All',
quality: number, // 0-1
cropping: boolean,
cropSize?: { width, height },
aspectRatio?: [w, h],
selectionLimit: number, // max seçim
maxFileSize: number, // MB
children: ReactNode // Custom buton içeriği
}Fark: MediaPicker vs useNativeImagePicker
| Özellik | MediaPicker | useNativeImagePicker |
|---|---|---|
| Kullanım | Bileşen (children wrap) | Hook |
| Çoklu seçim | ✅ | ✅ |
| Video | ✅ | ❌ (sadece image) |
| Compression | ✅ ImageManipulator | ✅ ImageCompressor |
MediaPickerUtils
MediaPickerUtils.formatFileSize() — bytes → "2.4 MB" formatı.
Related
- gorsel-secici-hooklar — hook alternatifleri
- medya-yukleme-akisi — upload flow