react-native-my-uploader-android 1.0.41 → 1.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/myuploaderandroid/MyUploaderModule.kt +79 -6
- package/lib/commonjs/components/MyUploader.js +12 -1
- package/lib/commonjs/components/MyUploader.js.map +1 -1
- package/lib/commonjs/index.d.js.map +1 -1
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/components/MyUploader.js +10 -0
- package/lib/module/components/MyUploader.js.map +1 -1
- package/lib/module/index.d.js.map +1 -1
- package/lib/module/index.js +2 -2
- package/lib/module/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/MyUploader.tsx +15 -0
- package/src/index.d.ts +1 -0
- package/src/index.ts +2 -2
|
@@ -80,11 +80,19 @@ class MyUploaderModule(private val reactContext: ReactApplicationContext) :
|
|
|
80
80
|
try {
|
|
81
81
|
val intent: Intent
|
|
82
82
|
if (isGallery) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) {
|
|
84
|
+
intent = Intent(MediaStore.ACTION_PICK_IMAGES) // Doğrudan sistem fotoğraf seçicisi
|
|
85
|
+
if (multipleFiles) {
|
|
86
|
+
// Not: Photo Picker'da max limit belirlenebilir
|
|
87
|
+
intent.putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, maxFiles)
|
|
88
|
+
}
|
|
89
|
+
} else {
|
|
90
|
+
// Eski sürümler için standart galeri
|
|
91
|
+
intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
|
|
92
|
+
if (multipleFiles) {
|
|
93
|
+
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
88
96
|
} else {
|
|
89
97
|
// SENARYO B: Genel Dosya Seçiciyi Açarlar (Sizin eski kodunuz)
|
|
90
98
|
val fileTypes = options.takeIf { it.hasKey("fileTypes") }
|
|
@@ -100,7 +108,11 @@ class MyUploaderModule(private val reactContext: ReactApplicationContext) :
|
|
|
100
108
|
}
|
|
101
109
|
}
|
|
102
110
|
}
|
|
103
|
-
|
|
111
|
+
// galeri fotograflar ve dosyalarım seçimi yaptırtıyor ...
|
|
112
|
+
// currentActivity.startActivityForResult(Intent.createChooser(intent, "Seçim Yapın"), REQUEST_CODE)
|
|
113
|
+
|
|
114
|
+
currentActivity.startActivityForResult(intent, REQUEST_CODE)
|
|
115
|
+
|
|
104
116
|
} catch (e: Exception) {
|
|
105
117
|
pickerPromise?.reject(E_FAILED_TO_OPEN_DOCUMENT, e)
|
|
106
118
|
pickerPromise = null
|
|
@@ -227,6 +239,67 @@ class MyUploaderModule(private val reactContext: ReactApplicationContext) :
|
|
|
227
239
|
}.start()
|
|
228
240
|
}
|
|
229
241
|
|
|
242
|
+
|
|
243
|
+
//zoom ve kaydırılmış image'i kırpıp base64 dönmesini sağlayan function
|
|
244
|
+
@ReactMethod
|
|
245
|
+
fun CropImageWithBase64(base64String: String, crop: ReadableMap, promise: Promise) {
|
|
246
|
+
Thread {
|
|
247
|
+
try {
|
|
248
|
+
val mimeType = if (base64String.startsWith("data:")) {
|
|
249
|
+
base64String.substringAfter("data:").substringBefore(";")
|
|
250
|
+
} else "image/jpeg"
|
|
251
|
+
|
|
252
|
+
val pureBase64 = base64String.substringAfter(",")
|
|
253
|
+
val decodedBytes = Base64.decode(pureBase64, Base64.DEFAULT)
|
|
254
|
+
|
|
255
|
+
val originalBitmap = BitmapFactory.decodeByteArray(
|
|
256
|
+
decodedBytes, 0, decodedBytes.size
|
|
257
|
+
) ?: throw Exception("Decode failed")
|
|
258
|
+
|
|
259
|
+
val rx = crop.getDouble("x")
|
|
260
|
+
val ry = crop.getDouble("y")
|
|
261
|
+
val rw = crop.getDouble("width")
|
|
262
|
+
val rh = crop.getDouble("height")
|
|
263
|
+
|
|
264
|
+
val px = (rx * originalBitmap.width)
|
|
265
|
+
.toInt().coerceIn(0, originalBitmap.width - 1)
|
|
266
|
+
val py = (ry * originalBitmap.height)
|
|
267
|
+
.toInt().coerceIn(0, originalBitmap.height - 1)
|
|
268
|
+
val pw = (rw * originalBitmap.width)
|
|
269
|
+
.toInt().coerceAtMost(originalBitmap.width - px)
|
|
270
|
+
.coerceAtLeast(1)
|
|
271
|
+
val ph = (rh * originalBitmap.height)
|
|
272
|
+
.toInt().coerceAtMost(originalBitmap.height - py)
|
|
273
|
+
.coerceAtLeast(1)
|
|
274
|
+
|
|
275
|
+
val cropped = Bitmap.createBitmap(originalBitmap, px, py, pw, ph)
|
|
276
|
+
|
|
277
|
+
val format = when {
|
|
278
|
+
mimeType.contains("png") -> Bitmap.CompressFormat.PNG
|
|
279
|
+
mimeType.contains("webp") -> {
|
|
280
|
+
if (android.os.Build.VERSION.SDK_INT >= 30)
|
|
281
|
+
Bitmap.CompressFormat.WEBP_LOSSLESS
|
|
282
|
+
else Bitmap.CompressFormat.WEBP
|
|
283
|
+
}
|
|
284
|
+
else -> Bitmap.CompressFormat.JPEG
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
val out = ByteArrayOutputStream()
|
|
288
|
+
cropped.compress(format, 90, out)
|
|
289
|
+
|
|
290
|
+
val result = Base64.encodeToString(out.toByteArray(), Base64.NO_WRAP)
|
|
291
|
+
|
|
292
|
+
originalBitmap.recycle()
|
|
293
|
+
cropped.recycle()
|
|
294
|
+
out.close()
|
|
295
|
+
|
|
296
|
+
promise.resolve("data:$mimeType;base64,$result")
|
|
297
|
+
} catch (e: Exception) {
|
|
298
|
+
promise.reject("E_CROP", e.message)
|
|
299
|
+
}
|
|
300
|
+
}.start()
|
|
301
|
+
}
|
|
302
|
+
|
|
230
303
|
override fun onActivityResult(activity: Activity, requestCode: Int, resultCode: Int, data: Intent?) {
|
|
231
304
|
if (requestCode != REQUEST_CODE || pickerPromise == null) { return }
|
|
232
305
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.pickFile = exports.getBase64FromUri = exports.default = exports.RotateImage = void 0;
|
|
6
|
+
exports.pickFile = exports.getBase64FromUri = exports.default = exports.RotateImage = exports.CropImageWithBase64 = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -39,6 +39,17 @@ const getBase64FromUri = async cropFileUri => {
|
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
exports.getBase64FromUri = getBase64FromUri;
|
|
42
|
+
const CropImageWithBase64 = async (base64, cropData) => {
|
|
43
|
+
if (!NativeUploadPicker) {
|
|
44
|
+
throw new Error("UploadDocumentPicker modülü linklenmemiş.");
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
return await NativeUploadPicker.CropImageWithBase64(base64, cropData);
|
|
48
|
+
} catch (error) {
|
|
49
|
+
throw new Error(`CropImageWithBase64 Hatası: ${error.message}`);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.CropImageWithBase64 = CropImageWithBase64;
|
|
42
53
|
const RotateImage = async ({
|
|
43
54
|
base64,
|
|
44
55
|
angle
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","UploadDocumentPicker","NativeUploadPicker","NativeModules","pickFile","options","_options$multipleFile","_options$maxFiles","_options$maxSize","_options$fileTypes","_options$excludedUris","_options$isGallery","Error","nativeOptions","multipleFiles","maxFiles","maxSize","fileTypes","excludedUris","isGallery","openDocument","exports","getBase64FromUri","cropFileUri","error","message","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","UploadDocumentPicker","NativeUploadPicker","NativeModules","pickFile","options","_options$multipleFile","_options$maxFiles","_options$maxSize","_options$fileTypes","_options$excludedUris","_options$isGallery","Error","nativeOptions","multipleFiles","maxFiles","maxSize","fileTypes","excludedUris","isGallery","openDocument","exports","getBase64FromUri","cropFileUri","error","message","CropImageWithBase64","base64","cropData","RotateImage","angle","rotatedBase64","rotateImage","MyUploader","onSelect","onError","buttonPlaceHolder","ButtonStyle","ButtonTextStyle","disabled","isLoading","setIsLoading","useState","handlePress","files","console","createElement","TouchableOpacity","style","styles","button","onPress","ActivityIndicator","color","Text","text","StyleSheet","create","backgroundColor","padding","borderRadius","alignItems","justifyContent","fontWeight","fontSize","_default"],"sources":["MyUploader.tsx"],"sourcesContent":["import React, { useState } from 'react';\r\nimport { TouchableOpacity, Text, StyleSheet, ActivityIndicator, NativeModules } from 'react-native';\r\nimport type { MyUploaderProps, DocumentPickerOptions, FileInfo, RotateImageProps } from '../types';\r\n\r\nconst { UploadDocumentPicker: NativeUploadPicker } = NativeModules;\r\n\r\n// 1. Standalone pickFile Fonksiyonu\r\nexport const pickFile = async (options: DocumentPickerOptions = {}): Promise<FileInfo[]> => {\r\n if (!NativeUploadPicker) throw new Error(\"DocumentPicker module is not linked.\");\r\n\r\n // Native tarafa gönderilecek options\r\n const nativeOptions = {\r\n multipleFiles: options.multipleFiles ?? false,\r\n maxFiles: options.maxFiles ?? 0,\r\n maxSize: options.maxSize ?? 0,\r\n fileTypes: options.fileTypes ?? ['*/*'],\r\n excludedUris: options.excludedUris ?? [],\r\n isGallery:options.isGallery ?? false,\r\n };\r\n\r\n return await NativeUploadPicker.openDocument(nativeOptions);\r\n};\r\n\r\nexport const getBase64FromUri = async (cropFileUri: string): Promise<string> => {\r\n if (!NativeUploadPicker) {\r\n throw new Error(\"UploadDocumentPicker modülü linklenmemiş.\");\r\n }\r\n\r\n try {\r\n return await NativeUploadPicker.getBase64FromUri(cropFileUri);\r\n } catch (error: any) {\r\n throw new Error(`getBase64FromUri Hatası: ${error.message}`);\r\n }\r\n};\r\n\r\n\r\n\r\nexport const CropImageWithBase64 = async (base64: string,cropData:any): Promise<string> => {\r\n if (!NativeUploadPicker) {\r\n throw new Error(\"UploadDocumentPicker modülü linklenmemiş.\");\r\n }\r\n\r\n try {\r\n return await NativeUploadPicker.CropImageWithBase64(base64,cropData);\r\n } catch (error: any) {\r\n throw new Error(`CropImageWithBase64 Hatası: ${error.message}`);\r\n }\r\n};\r\n\r\n\r\n \r\n\r\nexport const RotateImage = async ({ base64, angle }: RotateImageProps): Promise<string> => {\r\n if (!NativeUploadPicker) {\r\n throw new Error(\"UploadDocumentPicker modülü linklenmemiş.\");\r\n }\r\n\r\n try {\r\n // Native sadece saf base64 string'i döner\r\n const rotatedBase64: string = await NativeUploadPicker.rotateImage(base64, angle);\r\n\r\n // Uygulama tarafında doğrudan <Image /> içinde kullanılabilmesi için prefix eklenir\r\n return `data:image/jpeg;base64,${rotatedBase64}`;\r\n } catch (error: any) {\r\n // Hata mesajını daha okunaklı fırlatıyoruz\r\n throw new Error(`RotateImage Hatası: ${error.message}`);\r\n }\r\n};\r\n\r\n// 2. MyUploader Bileşeni\r\nconst MyUploader: React.FC<MyUploaderProps> = ({\r\n onSelect,\r\n onError,\r\n buttonPlaceHolder = \"Dosya Seç\",\r\n ButtonStyle,\r\n ButtonTextStyle,\r\n disabled = false,\r\n multipleFiles = false,\r\n fileTypes = ['*/*'],\r\n maxSize = 0,\r\n maxFiles = 0,\r\n excludedUris = [],\r\n}) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const handlePress = async () => {\r\n if (disabled || isLoading) return;\r\n setIsLoading(true);\r\n\r\n try {\r\n const files = await pickFile({\r\n multipleFiles,\r\n fileTypes,\r\n maxSize,\r\n maxFiles,\r\n excludedUris\r\n });\r\n\r\n onSelect(files);\r\n } catch (error: any) {\r\n if (onError) {\r\n onError(error);\r\n } else {\r\n console.error(\"MyUploader Error:\", error);\r\n }\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n <TouchableOpacity\r\n style={[styles.button, ButtonStyle, (disabled || isLoading) && styles.disabled]}\r\n onPress={handlePress}\r\n disabled={disabled || isLoading}\r\n >\r\n {isLoading ? (\r\n <ActivityIndicator color=\"#FFF\" />\r\n ) : (\r\n <Text style={[styles.text, ButtonTextStyle]}>{buttonPlaceHolder}</Text>\r\n )}\r\n </TouchableOpacity>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n button: {\r\n backgroundColor: '#6200EE',\r\n padding: 12,\r\n borderRadius: 8,\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n text: {\r\n color: '#FFF',\r\n fontWeight: '600',\r\n fontSize: 16\r\n },\r\n disabled: {\r\n backgroundColor: '#B0B0B0'\r\n }\r\n});\r\n\r\nexport default MyUploader;"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_types","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["index.d.ts"],"sourcesContent":["import * as React from 'react';\r\nimport type { DocumentPickerOptions, MyUploaderProps, FileInfo, DownloadFileProps ,RotateImageProps } from './types';\r\n// import type { DownloadFileProps } from './types';\r\n\r\nexport * from './types';\r\n\r\n// DownloadFile Component Tanımı (3. Bunu ekledik)\r\n// export declare const DownloadFile: React.FC<DownloadFileProps>;\r\n\r\n\r\nexport declare function pickFile(options?: DocumentPickerOptions): Promise<FileInfo[]>;\r\nexport declare function RotateImage(props:RotateImageProps):Promise<string>;\r\nexport declare function getBase64FromUri(cropFileUri: string): Promise<string>;\r\n\r\nexport declare const DownloadFile :React.FC<DownloadFileProps>;\r\nexport declare const MyUploader: React.FC<MyUploaderProps>;\r\n\r\n// Varsayılan dışa aktarım (İsteğe bağlı, genellikle ana bileşen verilir)\r\ndeclare const _default: React.FC<MyUploaderProps>;\r\nexport default _default;"],"mappings":";;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_types","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["index.d.ts"],"sourcesContent":["import * as React from 'react';\r\nimport type { DocumentPickerOptions, MyUploaderProps, FileInfo, DownloadFileProps ,RotateImageProps } from './types';\r\n// import type { DownloadFileProps } from './types';\r\n\r\nexport * from './types';\r\n\r\n// DownloadFile Component Tanımı (3. Bunu ekledik)\r\n// export declare const DownloadFile: React.FC<DownloadFileProps>;\r\n\r\n\r\nexport declare function pickFile(options?: DocumentPickerOptions): Promise<FileInfo[]>;\r\nexport declare function RotateImage(props:RotateImageProps):Promise<string>;\r\nexport declare function CropImageWithBase64(base64: string,cropData:any):Promise<string>;\r\nexport declare function getBase64FromUri(cropFileUri: string): Promise<string>;\r\n\r\nexport declare const DownloadFile :React.FC<DownloadFileProps>;\r\nexport declare const MyUploader: React.FC<MyUploaderProps>;\r\n\r\n// Varsayılan dışa aktarım (İsteğe bağlı, genellikle ana bileşen verilir)\r\ndeclare const _default: React.FC<MyUploaderProps>;\r\nexport default _default;"],"mappings":";;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -8,8 +8,15 @@ var _exportNames = {
|
|
|
8
8
|
pickFile: true,
|
|
9
9
|
RotateImage: true,
|
|
10
10
|
getBase64FromUri: true,
|
|
11
|
+
CropImageWithBase64: true,
|
|
11
12
|
DownloadFile: true
|
|
12
13
|
};
|
|
14
|
+
Object.defineProperty(exports, "CropImageWithBase64", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () {
|
|
17
|
+
return _MyUploader.CropImageWithBase64;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
13
20
|
Object.defineProperty(exports, "DownloadFile", {
|
|
14
21
|
enumerable: true,
|
|
15
22
|
get: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_MyUploader","_interopRequireWildcard","require","_DownloadFile","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","set","getOwnPropertyDescriptor","_default","MyUploader"],"sources":["index.ts"],"sourcesContent":["import MyUploader,{pickFile,RotateImage,getBase64FromUri} from \"./components/MyUploader\";\r\nimport {DownloadFile} from \"./components/DownloadFile\";\r\n\r\n\r\n// Sadece bu paketle ilgili olanları dışa aktar\r\nexport { MyUploader, pickFile ,DownloadFile ,RotateImage,getBase64FromUri };\r\nexport * from './types';\r\n\r\n// Varsayılan dışa aktarım olarak da ana bileşeni verelim\r\nexport default MyUploader;\r\n\r\n\r\n\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_MyUploader","_interopRequireWildcard","require","_DownloadFile","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","set","getOwnPropertyDescriptor","_default","MyUploader"],"sources":["index.ts"],"sourcesContent":["import MyUploader,{pickFile,RotateImage,getBase64FromUri,CropImageWithBase64} from \"./components/MyUploader\";\r\nimport {DownloadFile} from \"./components/DownloadFile\";\r\n\r\n\r\n// Sadece bu paketle ilgili olanları dışa aktar\r\nexport { MyUploader, pickFile ,DownloadFile ,RotateImage,getBase64FromUri,CropImageWithBase64 };\r\nexport * from './types';\r\n\r\n// Varsayılan dışa aktarım olarak da ana bileşeni verelim\r\nexport default MyUploader;\r\n\r\n\r\n\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAAwB,SAAAP,wBAAAgB,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAlB,uBAAA,YAAAA,CAAAgB,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAP,GAAA,CAAAC,CAAA,GAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAR,cAAA,CAAAC,IAAA,CAAAM,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAlB,MAAA,CAAAS,cAAA,KAAAT,MAAA,CAAAyB,wBAAA,CAAAb,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAR,GAAA,IAAAQ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAFxB;AAIA;AAAA,IAAAa,QAAA,GAAAlB,OAAA,CAAAc,OAAA,GACeK,mBAAU","ignoreList":[]}
|
|
@@ -30,6 +30,16 @@ export const getBase64FromUri = async cropFileUri => {
|
|
|
30
30
|
throw new Error(`getBase64FromUri Hatası: ${error.message}`);
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
|
+
export const CropImageWithBase64 = async (base64, cropData) => {
|
|
34
|
+
if (!NativeUploadPicker) {
|
|
35
|
+
throw new Error("UploadDocumentPicker modülü linklenmemiş.");
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
return await NativeUploadPicker.CropImageWithBase64(base64, cropData);
|
|
39
|
+
} catch (error) {
|
|
40
|
+
throw new Error(`CropImageWithBase64 Hatası: ${error.message}`);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
33
43
|
export const RotateImage = async ({
|
|
34
44
|
base64,
|
|
35
45
|
angle
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","TouchableOpacity","Text","StyleSheet","ActivityIndicator","NativeModules","UploadDocumentPicker","NativeUploadPicker","pickFile","options","_options$multipleFile","_options$maxFiles","_options$maxSize","_options$fileTypes","_options$excludedUris","_options$isGallery","Error","nativeOptions","multipleFiles","maxFiles","maxSize","fileTypes","excludedUris","isGallery","openDocument","getBase64FromUri","cropFileUri","error","message","
|
|
1
|
+
{"version":3,"names":["React","useState","TouchableOpacity","Text","StyleSheet","ActivityIndicator","NativeModules","UploadDocumentPicker","NativeUploadPicker","pickFile","options","_options$multipleFile","_options$maxFiles","_options$maxSize","_options$fileTypes","_options$excludedUris","_options$isGallery","Error","nativeOptions","multipleFiles","maxFiles","maxSize","fileTypes","excludedUris","isGallery","openDocument","getBase64FromUri","cropFileUri","error","message","CropImageWithBase64","base64","cropData","RotateImage","angle","rotatedBase64","rotateImage","MyUploader","onSelect","onError","buttonPlaceHolder","ButtonStyle","ButtonTextStyle","disabled","isLoading","setIsLoading","handlePress","files","console","createElement","style","styles","button","onPress","color","text","create","backgroundColor","padding","borderRadius","alignItems","justifyContent","fontWeight","fontSize"],"sources":["MyUploader.tsx"],"sourcesContent":["import React, { useState } from 'react';\r\nimport { TouchableOpacity, Text, StyleSheet, ActivityIndicator, NativeModules } from 'react-native';\r\nimport type { MyUploaderProps, DocumentPickerOptions, FileInfo, RotateImageProps } from '../types';\r\n\r\nconst { UploadDocumentPicker: NativeUploadPicker } = NativeModules;\r\n\r\n// 1. Standalone pickFile Fonksiyonu\r\nexport const pickFile = async (options: DocumentPickerOptions = {}): Promise<FileInfo[]> => {\r\n if (!NativeUploadPicker) throw new Error(\"DocumentPicker module is not linked.\");\r\n\r\n // Native tarafa gönderilecek options\r\n const nativeOptions = {\r\n multipleFiles: options.multipleFiles ?? false,\r\n maxFiles: options.maxFiles ?? 0,\r\n maxSize: options.maxSize ?? 0,\r\n fileTypes: options.fileTypes ?? ['*/*'],\r\n excludedUris: options.excludedUris ?? [],\r\n isGallery:options.isGallery ?? false,\r\n };\r\n\r\n return await NativeUploadPicker.openDocument(nativeOptions);\r\n};\r\n\r\nexport const getBase64FromUri = async (cropFileUri: string): Promise<string> => {\r\n if (!NativeUploadPicker) {\r\n throw new Error(\"UploadDocumentPicker modülü linklenmemiş.\");\r\n }\r\n\r\n try {\r\n return await NativeUploadPicker.getBase64FromUri(cropFileUri);\r\n } catch (error: any) {\r\n throw new Error(`getBase64FromUri Hatası: ${error.message}`);\r\n }\r\n};\r\n\r\n\r\n\r\nexport const CropImageWithBase64 = async (base64: string,cropData:any): Promise<string> => {\r\n if (!NativeUploadPicker) {\r\n throw new Error(\"UploadDocumentPicker modülü linklenmemiş.\");\r\n }\r\n\r\n try {\r\n return await NativeUploadPicker.CropImageWithBase64(base64,cropData);\r\n } catch (error: any) {\r\n throw new Error(`CropImageWithBase64 Hatası: ${error.message}`);\r\n }\r\n};\r\n\r\n\r\n \r\n\r\nexport const RotateImage = async ({ base64, angle }: RotateImageProps): Promise<string> => {\r\n if (!NativeUploadPicker) {\r\n throw new Error(\"UploadDocumentPicker modülü linklenmemiş.\");\r\n }\r\n\r\n try {\r\n // Native sadece saf base64 string'i döner\r\n const rotatedBase64: string = await NativeUploadPicker.rotateImage(base64, angle);\r\n\r\n // Uygulama tarafında doğrudan <Image /> içinde kullanılabilmesi için prefix eklenir\r\n return `data:image/jpeg;base64,${rotatedBase64}`;\r\n } catch (error: any) {\r\n // Hata mesajını daha okunaklı fırlatıyoruz\r\n throw new Error(`RotateImage Hatası: ${error.message}`);\r\n }\r\n};\r\n\r\n// 2. MyUploader Bileşeni\r\nconst MyUploader: React.FC<MyUploaderProps> = ({\r\n onSelect,\r\n onError,\r\n buttonPlaceHolder = \"Dosya Seç\",\r\n ButtonStyle,\r\n ButtonTextStyle,\r\n disabled = false,\r\n multipleFiles = false,\r\n fileTypes = ['*/*'],\r\n maxSize = 0,\r\n maxFiles = 0,\r\n excludedUris = [],\r\n}) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const handlePress = async () => {\r\n if (disabled || isLoading) return;\r\n setIsLoading(true);\r\n\r\n try {\r\n const files = await pickFile({\r\n multipleFiles,\r\n fileTypes,\r\n maxSize,\r\n maxFiles,\r\n excludedUris\r\n });\r\n\r\n onSelect(files);\r\n } catch (error: any) {\r\n if (onError) {\r\n onError(error);\r\n } else {\r\n console.error(\"MyUploader Error:\", error);\r\n }\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n <TouchableOpacity\r\n style={[styles.button, ButtonStyle, (disabled || isLoading) && styles.disabled]}\r\n onPress={handlePress}\r\n disabled={disabled || isLoading}\r\n >\r\n {isLoading ? (\r\n <ActivityIndicator color=\"#FFF\" />\r\n ) : (\r\n <Text style={[styles.text, ButtonTextStyle]}>{buttonPlaceHolder}</Text>\r\n )}\r\n </TouchableOpacity>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n button: {\r\n backgroundColor: '#6200EE',\r\n padding: 12,\r\n borderRadius: 8,\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n text: {\r\n color: '#FFF',\r\n fontWeight: '600',\r\n fontSize: 16\r\n },\r\n disabled: {\r\n backgroundColor: '#B0B0B0'\r\n }\r\n});\r\n\r\nexport default MyUploader;"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.d.ts"],"sourcesContent":["import * as React from 'react';\r\nimport type { DocumentPickerOptions, MyUploaderProps, FileInfo, DownloadFileProps ,RotateImageProps } from './types';\r\n// import type { DownloadFileProps } from './types';\r\n\r\nexport * from './types';\r\n\r\n// DownloadFile Component Tanımı (3. Bunu ekledik)\r\n// export declare const DownloadFile: React.FC<DownloadFileProps>;\r\n\r\n\r\nexport declare function pickFile(options?: DocumentPickerOptions): Promise<FileInfo[]>;\r\nexport declare function RotateImage(props:RotateImageProps):Promise<string>;\r\nexport declare function getBase64FromUri(cropFileUri: string): Promise<string>;\r\n\r\nexport declare const DownloadFile :React.FC<DownloadFileProps>;\r\nexport declare const MyUploader: React.FC<MyUploaderProps>;\r\n\r\n// Varsayılan dışa aktarım (İsteğe bağlı, genellikle ana bileşen verilir)\r\ndeclare const _default: React.FC<MyUploaderProps>;\r\nexport default _default;"],"mappings":"AAEA;;AAEA,cAAc,SAAS;;AAEvB;AACA;;
|
|
1
|
+
{"version":3,"names":[],"sources":["index.d.ts"],"sourcesContent":["import * as React from 'react';\r\nimport type { DocumentPickerOptions, MyUploaderProps, FileInfo, DownloadFileProps ,RotateImageProps } from './types';\r\n// import type { DownloadFileProps } from './types';\r\n\r\nexport * from './types';\r\n\r\n// DownloadFile Component Tanımı (3. Bunu ekledik)\r\n// export declare const DownloadFile: React.FC<DownloadFileProps>;\r\n\r\n\r\nexport declare function pickFile(options?: DocumentPickerOptions): Promise<FileInfo[]>;\r\nexport declare function RotateImage(props:RotateImageProps):Promise<string>;\r\nexport declare function CropImageWithBase64(base64: string,cropData:any):Promise<string>;\r\nexport declare function getBase64FromUri(cropFileUri: string): Promise<string>;\r\n\r\nexport declare const DownloadFile :React.FC<DownloadFileProps>;\r\nexport declare const MyUploader: React.FC<MyUploaderProps>;\r\n\r\n// Varsayılan dışa aktarım (İsteğe bağlı, genellikle ana bileşen verilir)\r\ndeclare const _default: React.FC<MyUploaderProps>;\r\nexport default _default;"],"mappings":"AAEA;;AAEA,cAAc,SAAS;;AAEvB;AACA;;AAWA;AAAA","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import MyUploader, { pickFile, RotateImage, getBase64FromUri } from "./components/MyUploader";
|
|
1
|
+
import MyUploader, { pickFile, RotateImage, getBase64FromUri, CropImageWithBase64 } from "./components/MyUploader";
|
|
2
2
|
import { DownloadFile } from "./components/DownloadFile";
|
|
3
3
|
|
|
4
4
|
// Sadece bu paketle ilgili olanları dışa aktar
|
|
5
|
-
export { MyUploader, pickFile, DownloadFile, RotateImage, getBase64FromUri };
|
|
5
|
+
export { MyUploader, pickFile, DownloadFile, RotateImage, getBase64FromUri, CropImageWithBase64 };
|
|
6
6
|
export * from './types';
|
|
7
7
|
|
|
8
8
|
// Varsayılan dışa aktarım olarak da ana bileşeni verelim
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MyUploader","pickFile","RotateImage","getBase64FromUri","DownloadFile"],"sources":["index.ts"],"sourcesContent":["import MyUploader,{pickFile,RotateImage,getBase64FromUri} from \"./components/MyUploader\";\r\nimport {DownloadFile} from \"./components/DownloadFile\";\r\n\r\n\r\n// Sadece bu paketle ilgili olanları dışa aktar\r\nexport { MyUploader, pickFile ,DownloadFile ,RotateImage,getBase64FromUri };\r\nexport * from './types';\r\n\r\n// Varsayılan dışa aktarım olarak da ana bileşeni verelim\r\nexport default MyUploader;\r\n\r\n\r\n\r\n"],"mappings":"AAAA,OAAOA,UAAU,IAAEC,QAAQ,EAACC,WAAW,EAACC,gBAAgB,QAAO,yBAAyB;
|
|
1
|
+
{"version":3,"names":["MyUploader","pickFile","RotateImage","getBase64FromUri","CropImageWithBase64","DownloadFile"],"sources":["index.ts"],"sourcesContent":["import MyUploader,{pickFile,RotateImage,getBase64FromUri,CropImageWithBase64} from \"./components/MyUploader\";\r\nimport {DownloadFile} from \"./components/DownloadFile\";\r\n\r\n\r\n// Sadece bu paketle ilgili olanları dışa aktar\r\nexport { MyUploader, pickFile ,DownloadFile ,RotateImage,getBase64FromUri,CropImageWithBase64 };\r\nexport * from './types';\r\n\r\n// Varsayılan dışa aktarım olarak da ana bileşeni verelim\r\nexport default MyUploader;\r\n\r\n\r\n\r\n"],"mappings":"AAAA,OAAOA,UAAU,IAAEC,QAAQ,EAACC,WAAW,EAACC,gBAAgB,EAACC,mBAAmB,QAAO,yBAAyB;AAC5G,SAAQC,YAAY,QAAO,2BAA2B;;AAGtD;AACA,SAASL,UAAU,EAAEC,QAAQ,EAAEI,YAAY,EAAEH,WAAW,EAACC,gBAAgB,EAACC,mBAAmB;AAC7F,cAAc,SAAS;;AAEvB;AACA,eAAeJ,UAAU","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -35,6 +35,21 @@ export const getBase64FromUri = async (cropFileUri: string): Promise<string> =>
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
38
|
+
export const CropImageWithBase64 = async (base64: string,cropData:any): Promise<string> => {
|
|
39
|
+
if (!NativeUploadPicker) {
|
|
40
|
+
throw new Error("UploadDocumentPicker modülü linklenmemiş.");
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
try {
|
|
44
|
+
return await NativeUploadPicker.CropImageWithBase64(base64,cropData);
|
|
45
|
+
} catch (error: any) {
|
|
46
|
+
throw new Error(`CropImageWithBase64 Hatası: ${error.message}`);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
38
53
|
export const RotateImage = async ({ base64, angle }: RotateImageProps): Promise<string> => {
|
|
39
54
|
if (!NativeUploadPicker) {
|
|
40
55
|
throw new Error("UploadDocumentPicker modülü linklenmemiş.");
|
package/src/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export * from './types';
|
|
|
10
10
|
|
|
11
11
|
export declare function pickFile(options?: DocumentPickerOptions): Promise<FileInfo[]>;
|
|
12
12
|
export declare function RotateImage(props:RotateImageProps):Promise<string>;
|
|
13
|
+
export declare function CropImageWithBase64(base64: string,cropData:any):Promise<string>;
|
|
13
14
|
export declare function getBase64FromUri(cropFileUri: string): Promise<string>;
|
|
14
15
|
|
|
15
16
|
export declare const DownloadFile :React.FC<DownloadFileProps>;
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import MyUploader,{pickFile,RotateImage,getBase64FromUri} from "./components/MyUploader";
|
|
1
|
+
import MyUploader,{pickFile,RotateImage,getBase64FromUri,CropImageWithBase64} from "./components/MyUploader";
|
|
2
2
|
import {DownloadFile} from "./components/DownloadFile";
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
// Sadece bu paketle ilgili olanları dışa aktar
|
|
6
|
-
export { MyUploader, pickFile ,DownloadFile ,RotateImage,getBase64FromUri };
|
|
6
|
+
export { MyUploader, pickFile ,DownloadFile ,RotateImage,getBase64FromUri,CropImageWithBase64 };
|
|
7
7
|
export * from './types';
|
|
8
8
|
|
|
9
9
|
// Varsayılan dışa aktarım olarak da ana bileşeni verelim
|