react-native-picture-selector 1.0.29 → 1.0.31
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/CMakeLists.txt +0 -18
- package/android/src/main/cpp/cpp-adapter.cpp +29 -7
- package/android/src/main/kotlin/com/margelo/pictureselector/LubanCompressEngine.kt +5 -13
- package/android/src/main/kotlin/com/margelo/pictureselector/MediaAssetMapper.kt +5 -6
- package/android/src/main/kotlin/com/margelo/pictureselector/NitroPictureSelectorPackage.kt +0 -7
- package/android/src/main/kotlin/com/margelo/pictureselector/PictureSelectorOptionsMapper.kt +5 -17
- package/ios/NitroPictureSelectorOnLoad.mm +3 -3
- package/lib/commonjs/PictureSelector.js +1 -1
- package/lib/commonjs/PictureSelector.js.map +1 -1
- package/lib/module/PictureSelector.js +1 -1
- package/lib/module/PictureSelector.js.map +1 -1
- package/nitrogen.config.json +19 -0
- package/package.json +2 -11
- package/src/PictureSelector.ts +1 -1
- package/nitro.json +0 -11
package/android/CMakeLists.txt
CHANGED
|
@@ -18,21 +18,3 @@ include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/NitroPictureSelector+a
|
|
|
18
18
|
target_sources(${CMAKE_PROJECT_NAME} PRIVATE
|
|
19
19
|
src/main/cpp/cpp-adapter.cpp
|
|
20
20
|
)
|
|
21
|
-
|
|
22
|
-
# Directly link libNitroModules.so from its stable cmake build output path.
|
|
23
|
-
# The prefab for react-native-nitro-modules is header-only at CMake configure
|
|
24
|
-
# time (fix-prefab.gradle updates it only after native build), so we link
|
|
25
|
-
# the .so directly to avoid undefined symbol errors on fresh builds.
|
|
26
|
-
#
|
|
27
|
-
# Use a generator expression so the correct variant (debug/release) is picked
|
|
28
|
-
# automatically — avoids breaking assembleRelease / EAS production builds.
|
|
29
|
-
string(TOLOWER "${CMAKE_BUILD_TYPE}" _build_type_lower)
|
|
30
|
-
if(_build_type_lower STREQUAL "release")
|
|
31
|
-
set(NITRO_BUILD_VARIANT "release")
|
|
32
|
-
else()
|
|
33
|
-
set(NITRO_BUILD_VARIANT "debug")
|
|
34
|
-
endif()
|
|
35
|
-
|
|
36
|
-
target_link_libraries(${CMAKE_PROJECT_NAME}
|
|
37
|
-
${CMAKE_SOURCE_DIR}/../../react-native-nitro-modules/android/build/intermediates/cmake/${NITRO_BUILD_VARIANT}/obj/${ANDROID_ABI}/libNitroModules.so
|
|
38
|
-
)
|
|
@@ -6,21 +6,43 @@
|
|
|
6
6
|
/// System.loadLibrary("NitroPictureSelector")
|
|
7
7
|
/// the JVM invokes this function with the JavaVM*, which:
|
|
8
8
|
/// 1. Initialises fbjni (facebook::jni::initialize)
|
|
9
|
-
/// 2. Calls registerAllNatives() — which registers JNI methods
|
|
10
|
-
///
|
|
11
|
-
///
|
|
12
|
-
///
|
|
13
|
-
/// nothing ever gets registered, so every call to
|
|
14
|
-
/// NitroModules.createHybridObject("PictureSelector")
|
|
15
|
-
/// throws "It has not yet been registered in the HybridObjectRegistry".
|
|
9
|
+
/// 2. Calls registerAllNatives() — which registers JNI methods.
|
|
10
|
+
/// 3. Registers "HybridPictureSelector" in Nitro's HybridObjectRegistry
|
|
11
|
+
/// so that NitroModules.createHybridObject("HybridPictureSelector")
|
|
12
|
+
/// resolves to the Kotlin HybridPictureSelector class.
|
|
16
13
|
///
|
|
17
14
|
|
|
18
15
|
#include <jni.h>
|
|
19
16
|
#include <fbjni/fbjni.h>
|
|
17
|
+
#include <NitroModules/HybridObjectRegistry.hpp>
|
|
20
18
|
#include "NitroPictureSelectorOnLoad.hpp"
|
|
19
|
+
#include "JHybridHybridPictureSelectorSpec.hpp"
|
|
20
|
+
#include "HybridHybridPictureSelectorSpec.hpp"
|
|
21
21
|
|
|
22
22
|
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
|
|
23
23
|
return facebook::jni::initialize(vm, []() {
|
|
24
|
+
// 1. Register JNI methods for all generated specs.
|
|
24
25
|
margelo::nitro::pictureselector::registerAllNatives();
|
|
26
|
+
|
|
27
|
+
// 2. Register the HybridObject factory in Nitro's HybridObjectRegistry.
|
|
28
|
+
// The autolinking block in the generated NitroPictureSelectorOnLoad.cpp
|
|
29
|
+
// is empty (nitrogen was run before autolinking was configured).
|
|
30
|
+
// Registration is done here manually using the TAG from the generated spec.
|
|
31
|
+
margelo::nitro::HybridObjectRegistry::registerHybridObjectConstructor(
|
|
32
|
+
margelo::nitro::pictureselector::HybridHybridPictureSelectorSpec::TAG,
|
|
33
|
+
[]() -> std::shared_ptr<margelo::nitro::HybridObject> {
|
|
34
|
+
static const auto cls = facebook::jni::findClassStatic(
|
|
35
|
+
"com/margelo/pictureselector/HybridPictureSelector"
|
|
36
|
+
);
|
|
37
|
+
static const auto ctor = cls->getConstructor<facebook::jni::JObject()>();
|
|
38
|
+
auto javaObject = cls->newObject(ctor);
|
|
39
|
+
auto javaPart = facebook::jni::static_ref_cast<
|
|
40
|
+
margelo::nitro::pictureselector::JHybridHybridPictureSelectorSpec::JavaPart
|
|
41
|
+
>(javaObject);
|
|
42
|
+
return std::make_shared<
|
|
43
|
+
margelo::nitro::pictureselector::JHybridHybridPictureSelectorSpec
|
|
44
|
+
>(javaPart);
|
|
45
|
+
}
|
|
46
|
+
);
|
|
25
47
|
});
|
|
26
48
|
}
|
|
@@ -15,28 +15,20 @@ import java.io.File
|
|
|
15
15
|
* (io.github.lucksiege:compress). This engine is invoked after selection
|
|
16
16
|
* when compression is enabled.
|
|
17
17
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* Luban handles compression quality internally using an adaptive algorithm
|
|
19
|
+
* based on image dimensions. Direct JPEG quality control is not supported
|
|
20
|
+
* by this bundled version. Use [ignoreBy] to skip already-small files.
|
|
21
21
|
*/
|
|
22
|
-
class LubanCompressEngine
|
|
23
|
-
private val quality: Int,
|
|
24
|
-
private val maxWidth: Int,
|
|
25
|
-
private val maxHeight: Int,
|
|
26
|
-
) : CompressFileEngine {
|
|
22
|
+
class LubanCompressEngine : CompressFileEngine {
|
|
27
23
|
|
|
28
24
|
override fun onStartCompress(
|
|
29
25
|
context: Context,
|
|
30
26
|
source: ArrayList<Uri>,
|
|
31
27
|
call: OnKeyValueResultCallbackListener,
|
|
32
28
|
) {
|
|
33
|
-
// API REQUIRES VERIFICATION: setQuality() method name in bundled Luban version.
|
|
34
|
-
// In most Luban forks bundled with PictureSelector, quality is set via .quality(Int)
|
|
35
|
-
// or .setCompressQuality(Int). Adjust the method name after verifying against
|
|
36
|
-
// io.github.lucksiege:compress:v3.11.2 source.
|
|
37
29
|
Luban.with(context)
|
|
38
30
|
.load(source)
|
|
39
|
-
.ignoreBy(100) // skip files under 100 KB
|
|
31
|
+
.ignoreBy(100) // skip files already under 100 KB
|
|
40
32
|
.setTargetDir(context.cacheDir.absolutePath)
|
|
41
33
|
.setCompressListener(object : OnNewCompressListener {
|
|
42
34
|
override fun onStart() {
|
|
@@ -13,11 +13,10 @@ import java.io.File
|
|
|
13
13
|
* 3. Real file path (realPath != null)
|
|
14
14
|
* 4. Fallback (path — may be content:// URI)
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
* - LocalMedia.
|
|
18
|
-
*
|
|
19
|
-
* - LocalMedia.
|
|
20
|
-
* - LocalMedia.duration unit (ms in v3; confirm).
|
|
16
|
+
* Field mapping verified against PictureSelector v3.11.2:
|
|
17
|
+
* - LocalMedia.size — file size in bytes (Long)
|
|
18
|
+
* - LocalMedia.duration — duration in milliseconds (Long)
|
|
19
|
+
* - LocalMedia.parentFolderName — album/bucket display name (String)
|
|
21
20
|
*/
|
|
22
21
|
object MediaAssetMapper {
|
|
23
22
|
|
|
@@ -44,7 +43,7 @@ object MediaAssetMapper {
|
|
|
44
43
|
height = media.height.toDouble(),
|
|
45
44
|
duration = media.duration.toDouble(), // milliseconds
|
|
46
45
|
fileName = fileName,
|
|
47
|
-
fileSize = media.size.toDouble(),
|
|
46
|
+
fileSize = media.size.toDouble(),
|
|
48
47
|
editedUri = editedPath,
|
|
49
48
|
isOriginal = null,
|
|
50
49
|
bucketName = media.parentFolderName,
|
|
@@ -18,13 +18,6 @@ import com.margelo.nitro.com.margelo.pictureselector.NitroPictureSelectorOnLoad
|
|
|
18
18
|
* // MainApplication.kt
|
|
19
19
|
* override fun getPackages() = PackageList(this).packages + NitroPictureSelectorPackage()
|
|
20
20
|
* ```
|
|
21
|
-
*
|
|
22
|
-
* API REQUIRES VERIFICATION:
|
|
23
|
-
* - NitroModules.addHybridObjectCreator is the actual registration API in
|
|
24
|
-
* react-native-nitro-modules for Android. Verify against the installed
|
|
25
|
-
* version of the library. The creator name ("PictureSelector") must
|
|
26
|
-
* exactly match the string passed to NitroModules.createHybridObject()
|
|
27
|
-
* on the JS side.
|
|
28
21
|
*/
|
|
29
22
|
class NitroPictureSelectorPackage : ReactPackage {
|
|
30
23
|
|
|
@@ -12,11 +12,7 @@ import com.margelo.nitro.com.margelo.pictureselector.PictureSelectorOptions
|
|
|
12
12
|
* [PictureSelector.create(activity).openGallery()] /
|
|
13
13
|
* [PictureSelector.create(activity).openCamera()].
|
|
14
14
|
*
|
|
15
|
-
*
|
|
16
|
-
* - setSelectVideoMaxDuration / setSelectVideoMinDuration unit (seconds vs ms).
|
|
17
|
-
* In v3.11.2 these accept seconds. Confirm in the library source.
|
|
18
|
-
* - setSelectorUIStyle builder method name & enum values.
|
|
19
|
-
* - setSelectedData signature for pre-selected items.
|
|
15
|
+
* Video duration methods accept seconds in v3.11.2.
|
|
20
16
|
*/
|
|
21
17
|
object PictureSelectorOptionsMapper {
|
|
22
18
|
|
|
@@ -37,9 +33,8 @@ object PictureSelectorOptionsMapper {
|
|
|
37
33
|
// Show camera button inside gallery
|
|
38
34
|
builder.isDisplayCamera(options.enableCamera ?: true)
|
|
39
35
|
|
|
40
|
-
// Pre-selected assets
|
|
41
|
-
//
|
|
42
|
-
// options.selectedAssets is currently unused in v1; add in future.
|
|
36
|
+
// Pre-selected assets: selectedAssets (file:// URIs) conversion to LocalMedia
|
|
37
|
+
// is not yet implemented; skipped intentionally.
|
|
43
38
|
}
|
|
44
39
|
|
|
45
40
|
/**
|
|
@@ -68,10 +63,7 @@ object PictureSelectorOptionsMapper {
|
|
|
68
63
|
|
|
69
64
|
val compress = options.compress
|
|
70
65
|
if (compress != null && compress.enabled) {
|
|
71
|
-
|
|
72
|
-
val maxWidth = (compress.maxWidth ?: 1920.0).toInt()
|
|
73
|
-
val maxHeight = (compress.maxHeight ?: 1920.0).toInt()
|
|
74
|
-
builder.setCompressEngine(LubanCompressEngine(quality, maxWidth, maxHeight))
|
|
66
|
+
builder.setCompressEngine(LubanCompressEngine())
|
|
75
67
|
}
|
|
76
68
|
}
|
|
77
69
|
|
|
@@ -104,11 +96,7 @@ object PictureSelectorOptionsMapper {
|
|
|
104
96
|
// ── Compress engine ───────────────────────────────────────────────────
|
|
105
97
|
val compress = options.compress
|
|
106
98
|
if (compress != null && compress.enabled) {
|
|
107
|
-
|
|
108
|
-
val maxWidth = (compress.maxWidth ?: 1920.0).toInt()
|
|
109
|
-
val maxHeight = (compress.maxHeight ?: 1920.0).toInt()
|
|
110
|
-
|
|
111
|
-
builder.setCompressEngine(LubanCompressEngine(quality, maxWidth, maxHeight))
|
|
99
|
+
builder.setCompressEngine(LubanCompressEngine())
|
|
112
100
|
}
|
|
113
101
|
}
|
|
114
102
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Registers HybridPictureSelector with Nitro's HybridObjectRegistry.
|
|
4
4
|
//
|
|
5
5
|
// The +load ObjC method runs before main(), guaranteeing the factory is
|
|
6
|
-
// available when JS calls NitroModules.createHybridObject("
|
|
6
|
+
// available when JS calls NitroModules.createHybridObject("HybridPictureSelector").
|
|
7
7
|
//
|
|
8
8
|
// We bridge to Swift via @_cdecl("NitroPictureSelectorMakeHybrid") to avoid
|
|
9
9
|
// ambiguous Swift class constructor syntax from C++.
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
// Defined in HybridPictureSelector.swift via @_cdecl.
|
|
18
18
|
// Creates a HybridPictureSelector instance and returns a retained raw pointer
|
|
19
19
|
// to its HybridHybridPictureSelectorSpec_cxx wrapper.
|
|
20
|
-
extern "C" void* NitroPictureSelectorMakeHybrid();
|
|
20
|
+
extern "C" void* NitroPictureSelectorMakeHybrid() noexcept;
|
|
21
21
|
|
|
22
22
|
using namespace margelo::nitro;
|
|
23
23
|
using namespace margelo::nitro::pictureselector;
|
|
@@ -30,7 +30,7 @@ using namespace margelo::nitro::pictureselector::bridge::swift;
|
|
|
30
30
|
|
|
31
31
|
+ (void)load {
|
|
32
32
|
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
33
|
-
"
|
|
33
|
+
"HybridPictureSelector",
|
|
34
34
|
[]() -> std::shared_ptr<HybridObject> {
|
|
35
35
|
void* ptr = NitroPictureSelectorMakeHybrid();
|
|
36
36
|
return create_std__shared_ptr_HybridHybridPictureSelectorSpec_(ptr);
|
|
@@ -13,7 +13,7 @@ var _types = require("./types");
|
|
|
13
13
|
let _native = null;
|
|
14
14
|
function getNative() {
|
|
15
15
|
if (_native == null) {
|
|
16
|
-
_native = _reactNativeNitroModules.NitroModules.createHybridObject('
|
|
16
|
+
_native = _reactNativeNitroModules.NitroModules.createHybridObject('HybridPictureSelector');
|
|
17
17
|
}
|
|
18
18
|
return _native;
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeNitroModules","require","_types","_native","getNative","NitroModules","createHybridObject","defaultOptions","mediaType","MediaType","IMAGE","maxCount","enableCamera","callNative","method","options","err","toPickerError","PictureSelector","exports","openPicker","openCamera"],"sourceRoot":"..\\..\\src","sources":["PictureSelector.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAEA;AACA;AACA;;AAEA,IAAIE,OAAqC,GAAG,IAAI;AAEhD,SAASC,SAASA,CAAA,EAA0B;EAC1C,IAAID,OAAO,IAAI,IAAI,EAAE;IACnBA,OAAO,GAAGE,qCAAY,CAACC,kBAAkB,CACvC,
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","_types","_native","getNative","NitroModules","createHybridObject","defaultOptions","mediaType","MediaType","IMAGE","maxCount","enableCamera","callNative","method","options","err","toPickerError","PictureSelector","exports","openPicker","openCamera"],"sourceRoot":"..\\..\\src","sources":["PictureSelector.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAEA;AACA;AACA;;AAEA,IAAIE,OAAqC,GAAG,IAAI;AAEhD,SAASC,SAASA,CAAA,EAA0B;EAC1C,IAAID,OAAO,IAAI,IAAI,EAAE;IACnBA,OAAO,GAAGE,qCAAY,CAACC,kBAAkB,CACvC,uBACF,CAAC;EACH;EACA,OAAOH,OAAO;AAChB;;AAEA;AACA;AACA;;AAEA,MAAMI,cAAsC,GAAG;EAC7CC,SAAS,EAAEC,gBAAS,CAACC,KAAK;EAC1BC,QAAQ,EAAE,CAAC;EACXC,YAAY,EAAE;AAChB,CAAC;;AAED;AACA;AACA;;AAEA,eAAeC,UAAUA,CACvBC,MAAmC,EACnCC,OAA+B,EACR;EACvB,IAAI;IACF,OAAO,MAAMX,SAAS,CAAC,CAAC,CAACU,MAAM,CAAC,CAAC;MAAE,GAAGP,cAAc;MAAE,GAAGQ;IAAQ,CAAC,CAAC;EACrE,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,MAAM,IAAAC,oBAAa,EAACD,GAAG,CAAC;EAC1B;AACF;;AAEA;AACA;AACA;;AAEO,MAAME,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC7B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEE,UAAUA,CAACL,OAA+B,GAAG,CAAC,CAAC,EAAyB;IACtE,OAAOF,UAAU,CAAC,YAAY,EAAEE,OAAO,CAAC;EAC1C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEM,UAAUA,CAACN,OAA+B,GAAG,CAAC,CAAC,EAAyB;IACtE,OAAOF,UAAU,CAAC,YAAY,EAAEE,OAAO,CAAC;EAC1C;AACF,CAAC","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ import { MediaType, toPickerError } from './types';
|
|
|
10
10
|
let _native = null;
|
|
11
11
|
function getNative() {
|
|
12
12
|
if (_native == null) {
|
|
13
|
-
_native = NitroModules.createHybridObject('
|
|
13
|
+
_native = NitroModules.createHybridObject('HybridPictureSelector');
|
|
14
14
|
}
|
|
15
15
|
return _native;
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NitroModules","MediaType","toPickerError","_native","getNative","createHybridObject","defaultOptions","mediaType","IMAGE","maxCount","enableCamera","callNative","method","options","err","PictureSelector","openPicker","openCamera"],"sourceRoot":"..\\..\\src","sources":["PictureSelector.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD,SAASC,SAAS,EAAEC,aAAa,QAAQ,SAAS;;AAElD;AACA;AACA;;AAEA,IAAIC,OAAqC,GAAG,IAAI;AAEhD,SAASC,SAASA,CAAA,EAA0B;EAC1C,IAAID,OAAO,IAAI,IAAI,EAAE;IACnBA,OAAO,GAAGH,YAAY,CAACK,kBAAkB,CACvC,
|
|
1
|
+
{"version":3,"names":["NitroModules","MediaType","toPickerError","_native","getNative","createHybridObject","defaultOptions","mediaType","IMAGE","maxCount","enableCamera","callNative","method","options","err","PictureSelector","openPicker","openCamera"],"sourceRoot":"..\\..\\src","sources":["PictureSelector.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD,SAASC,SAAS,EAAEC,aAAa,QAAQ,SAAS;;AAElD;AACA;AACA;;AAEA,IAAIC,OAAqC,GAAG,IAAI;AAEhD,SAASC,SAASA,CAAA,EAA0B;EAC1C,IAAID,OAAO,IAAI,IAAI,EAAE;IACnBA,OAAO,GAAGH,YAAY,CAACK,kBAAkB,CACvC,uBACF,CAAC;EACH;EACA,OAAOF,OAAO;AAChB;;AAEA;AACA;AACA;;AAEA,MAAMG,cAAsC,GAAG;EAC7CC,SAAS,EAAEN,SAAS,CAACO,KAAK;EAC1BC,QAAQ,EAAE,CAAC;EACXC,YAAY,EAAE;AAChB,CAAC;;AAED;AACA;AACA;;AAEA,eAAeC,UAAUA,CACvBC,MAAmC,EACnCC,OAA+B,EACR;EACvB,IAAI;IACF,OAAO,MAAMT,SAAS,CAAC,CAAC,CAACQ,MAAM,CAAC,CAAC;MAAE,GAAGN,cAAc;MAAE,GAAGO;IAAQ,CAAC,CAAC;EACrE,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,MAAMZ,aAAa,CAACY,GAAG,CAAC;EAC1B;AACF;;AAEA;AACA;AACA;;AAEA,OAAO,MAAMC,eAAe,GAAG;EAC7B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,UAAUA,CAACH,OAA+B,GAAG,CAAC,CAAC,EAAyB;IACtE,OAAOF,UAAU,CAAC,YAAY,EAAEE,OAAO,CAAC;EAC1C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEI,UAAUA,CAACJ,OAA+B,GAAG,CAAC,CAAC,EAAyB;IACtE,OAAOF,UAAU,CAAC,YAAY,EAAEE,OAAO,CAAC;EAC1C;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://nitro.margelo.com/nitro.schema.json",
|
|
3
|
+
"cxxNamespace": ["margelo", "nitro", "pictureselector"],
|
|
4
|
+
"outputDirectory": "./nitrogen",
|
|
5
|
+
"specs": ["./src/specs"],
|
|
6
|
+
"ios": {
|
|
7
|
+
"iosModuleName": "NitroPictureSelector"
|
|
8
|
+
},
|
|
9
|
+
"android": {
|
|
10
|
+
"androidNamespace": ["com", "margelo", "pictureselector"],
|
|
11
|
+
"androidCxxLibName": "NitroPictureSelector"
|
|
12
|
+
},
|
|
13
|
+
"autolinking": {
|
|
14
|
+
"HybridPictureSelector": {
|
|
15
|
+
"swift": "HybridPictureSelector",
|
|
16
|
+
"kotlin": "HybridPictureSelector"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-picture-selector",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.31",
|
|
4
4
|
"description": "High-performance photo/video picker for React Native using Nitro Modules",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"android",
|
|
14
14
|
"ios",
|
|
15
15
|
"nitrogen",
|
|
16
|
-
"
|
|
16
|
+
"nitrogen.config.json",
|
|
17
17
|
"*.podspec"
|
|
18
18
|
],
|
|
19
19
|
"scripts": {
|
|
@@ -51,15 +51,6 @@
|
|
|
51
51
|
"react-native-nitro-modules": ">=0.20.0",
|
|
52
52
|
"typescript": "^5.3.0"
|
|
53
53
|
},
|
|
54
|
-
"nitro": {
|
|
55
|
-
"ios": {
|
|
56
|
-
"iosModuleName": "NitroPictureSelector"
|
|
57
|
-
},
|
|
58
|
-
"android": {
|
|
59
|
-
"androidNamespace": "com.nitro.pictureselector",
|
|
60
|
-
"androidCxxLibName": "NitroPictureSelector"
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
54
|
"react-native-builder-bob": {
|
|
64
55
|
"source": "src",
|
|
65
56
|
"output": "lib",
|
package/src/PictureSelector.ts
CHANGED
|
@@ -12,7 +12,7 @@ let _native: HybridPictureSelector | null = null
|
|
|
12
12
|
function getNative(): HybridPictureSelector {
|
|
13
13
|
if (_native == null) {
|
|
14
14
|
_native = NitroModules.createHybridObject<HybridPictureSelector>(
|
|
15
|
-
'
|
|
15
|
+
'HybridPictureSelector'
|
|
16
16
|
)
|
|
17
17
|
}
|
|
18
18
|
return _native
|
package/nitro.json
DELETED