react-native-share 7.1.2 → 7.3.1
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/cl/json/RNSharePathUtil.java +3 -2
- package/android/src/main/java/cl/json/ShareFile.java +9 -7
- package/android/src/main/java/cl/json/ShareFiles.java +8 -5
- package/android/src/main/java/cl/json/social/FacebookStoriesShare.java +7 -2
- package/android/src/main/java/cl/json/social/InstagramShare.java +60 -12
- package/android/src/main/java/cl/json/social/InstagramStoriesShare.java +7 -2
- package/android/src/main/java/cl/json/social/ShareIntent.java +15 -6
- package/ios/FacebookStories.m +46 -107
- package/lib/commonjs/index.js +3 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/typings/react-native.d.js.map +1 -1
- package/lib/module/index.js +3 -6
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/typings/react-native.d.js.map +1 -1
- package/lib/typescript/index.d.ts +2 -5
- package/lib/typescript/types.d.ts +3 -1
- package/package.json +1 -1
- package/src/index.tsx +2 -9
- package/src/types.ts +2 -0
- package/src/typings/react-native.d.ts +2 -0
|
@@ -63,7 +63,7 @@ public class RNSharePathUtil {
|
|
|
63
63
|
return result;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
public static String getRealPathFromURI(final Context context, final Uri uri) {
|
|
66
|
+
public static String getRealPathFromURI(final Context context, final Uri uri, Boolean useInternalStorage) {
|
|
67
67
|
|
|
68
68
|
String filePrefix = "";
|
|
69
69
|
// DocumentProvider
|
|
@@ -76,7 +76,8 @@ public class RNSharePathUtil {
|
|
|
76
76
|
final String type = split[0];
|
|
77
77
|
|
|
78
78
|
if ("primary".equalsIgnoreCase(type) || "0".equalsIgnoreCase(type)) {
|
|
79
|
-
|
|
79
|
+
File cacheDir = useInternalStorage ? context.getCacheDir() : context.getExternalCacheDir();
|
|
80
|
+
return filePrefix + cacheDir + "/" + split[1];
|
|
80
81
|
} else if ("raw".equalsIgnoreCase(type)) {
|
|
81
82
|
return filePrefix + split[1];
|
|
82
83
|
} else if (!TextUtils.isEmpty(type)) {
|
|
@@ -23,18 +23,19 @@ public class ShareFile {
|
|
|
23
23
|
private Uri uri;
|
|
24
24
|
private String type;
|
|
25
25
|
private String filename;
|
|
26
|
+
private Boolean useInternalStorage;
|
|
26
27
|
|
|
27
|
-
public ShareFile(String url, String type, String filename, ReactApplicationContext reactContext){
|
|
28
|
-
this(url, filename, reactContext);
|
|
28
|
+
public ShareFile(String url, String type, String filename, Boolean useInternalStorage, ReactApplicationContext reactContext){
|
|
29
|
+
this(url, filename, useInternalStorage, reactContext);
|
|
29
30
|
this.type = type;
|
|
30
|
-
this.filename = filename;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
public ShareFile(String url, String filename, ReactApplicationContext reactContext){
|
|
33
|
+
public ShareFile(String url, String filename, Boolean useInternalStorage, ReactApplicationContext reactContext){
|
|
34
34
|
this.url = url;
|
|
35
35
|
this.uri = Uri.parse(this.url);
|
|
36
|
-
this.reactContext = reactContext;
|
|
37
36
|
this.filename = filename;
|
|
37
|
+
this.useInternalStorage = useInternalStorage;
|
|
38
|
+
this.reactContext = reactContext;
|
|
38
39
|
}
|
|
39
40
|
/**
|
|
40
41
|
* Obtain mime type from URL
|
|
@@ -110,7 +111,7 @@ public class ShareFile {
|
|
|
110
111
|
return this.type;
|
|
111
112
|
}
|
|
112
113
|
private String getRealPathFromURI(Uri contentUri) {
|
|
113
|
-
String result = RNSharePathUtil.getRealPathFromURI(this.reactContext,
|
|
114
|
+
String result = RNSharePathUtil.getRealPathFromURI(this.reactContext, contentUri, this.useInternalStorage);
|
|
114
115
|
return result;
|
|
115
116
|
}
|
|
116
117
|
public Uri getURI() {
|
|
@@ -122,7 +123,8 @@ public class ShareFile {
|
|
|
122
123
|
String encodedImg = this.uri.toString().substring(BASE_64_DATA_LENGTH + this.type.length() + BASE_64_DATA_OFFSET);
|
|
123
124
|
String filename = this.filename != null ? this.filename : System.nanoTime() + "";
|
|
124
125
|
try {
|
|
125
|
-
File
|
|
126
|
+
File cacheDir = this.useInternalStorage ? this.reactContext.getCacheDir() : this.reactContext.getExternalCacheDir();
|
|
127
|
+
File dir = new File(cacheDir, Environment.DIRECTORY_DOWNLOADS);
|
|
126
128
|
if (!dir.exists() && !dir.mkdirs()) {
|
|
127
129
|
throw new IOException("mkdirs failed on " + dir.getAbsolutePath());
|
|
128
130
|
}
|
|
@@ -23,13 +23,14 @@ public class ShareFiles
|
|
|
23
23
|
private ArrayList<Uri> uris;
|
|
24
24
|
private ArrayList<String> filenames;
|
|
25
25
|
private String intentType;
|
|
26
|
+
private Boolean useInternalStorage;
|
|
26
27
|
|
|
27
|
-
public ShareFiles(ReadableArray urls, ArrayList<String> filenames, String type, ReactApplicationContext reactContext) {
|
|
28
|
-
this(urls, filenames, reactContext);
|
|
28
|
+
public ShareFiles(ReadableArray urls, ArrayList<String> filenames, String type, Boolean useInternalStorage, ReactApplicationContext reactContext) {
|
|
29
|
+
this(urls, filenames, useInternalStorage, reactContext);
|
|
29
30
|
this.intentType = type;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
public ShareFiles(ReadableArray urls, ArrayList<String> filenames, ReactApplicationContext reactContext) {
|
|
33
|
+
public ShareFiles(ReadableArray urls, ArrayList<String> filenames, Boolean useInternalStorage, ReactApplicationContext reactContext) {
|
|
33
34
|
this.uris = new ArrayList<>();
|
|
34
35
|
for (int i = 0; i < urls.size(); i++) {
|
|
35
36
|
String url = urls.getString(i);
|
|
@@ -39,6 +40,7 @@ public class ShareFiles
|
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
this.filenames = filenames;
|
|
43
|
+
this.useInternalStorage = useInternalStorage;
|
|
42
44
|
this.reactContext = reactContext;
|
|
43
45
|
}
|
|
44
46
|
/**
|
|
@@ -124,7 +126,7 @@ public class ShareFiles
|
|
|
124
126
|
}
|
|
125
127
|
|
|
126
128
|
private String getRealPathFromURI(Uri contentUri) {
|
|
127
|
-
String result = RNSharePathUtil.getRealPathFromURI(this.reactContext, contentUri);
|
|
129
|
+
String result = RNSharePathUtil.getRealPathFromURI(this.reactContext, contentUri, this.useInternalStorage);
|
|
128
130
|
return result;
|
|
129
131
|
}
|
|
130
132
|
|
|
@@ -141,7 +143,8 @@ public class ShareFiles
|
|
|
141
143
|
String encodedImg = uri.getSchemeSpecificPart().substring(uri.getSchemeSpecificPart().indexOf(";base64,") + 8);
|
|
142
144
|
String fileName = filenames.size() >= uriIndex + 1 ? filenames.get(uriIndex) : (System.currentTimeMillis() + "." + extension);
|
|
143
145
|
try {
|
|
144
|
-
File
|
|
146
|
+
File cacheDir = this.useInternalStorage ? this.reactContext.getCacheDir() : this.reactContext.getExternalCacheDir();
|
|
147
|
+
File dir = new File(cacheDir, Environment.DIRECTORY_DOWNLOADS);
|
|
145
148
|
if (!dir.exists() && !dir.mkdirs()) {
|
|
146
149
|
throw new IOException("mkdirs failed on " + dir.getAbsolutePath());
|
|
147
150
|
}
|
|
@@ -81,6 +81,11 @@ public class FacebookStoriesShare extends SingleShareIntent {
|
|
|
81
81
|
this.intent.putExtra("bottom_background_color", options.getString("backgroundBottomColor"));
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
Boolean useInternalStorage = false;
|
|
85
|
+
if (this.hasValidKey("useInternalStorage", options)) {
|
|
86
|
+
useInternalStorage = options.getBoolean("useInternalStorage");
|
|
87
|
+
}
|
|
88
|
+
|
|
84
89
|
Boolean hasBackgroundAsset = this.hasValidKey("backgroundImage", options)
|
|
85
90
|
|| this.hasValidKey("backgroundVideo", options);
|
|
86
91
|
|
|
@@ -93,14 +98,14 @@ public class FacebookStoriesShare extends SingleShareIntent {
|
|
|
93
98
|
backgroundFileName = options.getString("backgroundVideo");
|
|
94
99
|
}
|
|
95
100
|
|
|
96
|
-
ShareFile backgroundAsset = new ShareFile(backgroundFileName, "background", this.reactContext);
|
|
101
|
+
ShareFile backgroundAsset = new ShareFile(backgroundFileName, "background", useInternalStorage, this.reactContext);
|
|
97
102
|
|
|
98
103
|
this.intent.setDataAndType(backgroundAsset.getURI(), backgroundAsset.getType());
|
|
99
104
|
this.intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
|
100
105
|
}
|
|
101
106
|
|
|
102
107
|
if (this.hasValidKey("stickerImage", options)) {
|
|
103
|
-
ShareFile stickerAsset = new ShareFile(options.getString("stickerImage"), "sticker", this.reactContext);
|
|
108
|
+
ShareFile stickerAsset = new ShareFile(options.getString("stickerImage"), "sticker", useInternalStorage, this.reactContext);
|
|
104
109
|
|
|
105
110
|
if (!hasBackgroundAsset) {
|
|
106
111
|
this.intent.setType("image/*");
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
package cl.json.social;
|
|
2
2
|
|
|
3
|
+
import android.app.Activity;
|
|
3
4
|
import android.content.ActivityNotFoundException;
|
|
4
5
|
import android.content.Intent;
|
|
5
|
-
import java.io.File;
|
|
6
|
-
import android.os.Environment;
|
|
7
6
|
import android.net.Uri;
|
|
8
7
|
import android.util.Log;
|
|
9
8
|
|
|
10
9
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
11
10
|
import com.facebook.react.bridge.ReadableMap;
|
|
12
11
|
|
|
12
|
+
import cl.json.ShareFile;
|
|
13
|
+
|
|
13
14
|
/**
|
|
14
15
|
* Created by Ralf Nieuwenhuizen on 10-04-17.
|
|
15
16
|
*/
|
|
@@ -24,17 +25,64 @@ public class InstagramShare extends SingleShareIntent {
|
|
|
24
25
|
|
|
25
26
|
@Override
|
|
26
27
|
public void open(ReadableMap options) throws ActivityNotFoundException {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
super.open(options);
|
|
29
|
+
|
|
30
|
+
if (!ShareIntent.hasValidKey("url", options)) {
|
|
31
|
+
Log.e("RNShare", "No url provided");
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
String url = options.getString("url");
|
|
35
|
+
|
|
36
|
+
Boolean isUrlScheme = url.startsWith("instagram://");
|
|
37
|
+
if (isUrlScheme) {
|
|
38
|
+
openInstagramUrlScheme(url);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
if (!ShareIntent.hasValidKey("type", options)) {
|
|
44
|
+
Log.e("RNShare", "No type provided");
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
String type = options.getString("type");
|
|
48
|
+
Boolean isImage = type.startsWith("image");
|
|
49
|
+
|
|
50
|
+
if (isImage) {
|
|
51
|
+
this.openInstagramIntentChooserForImage(url, chooserTitle);
|
|
52
|
+
} else {
|
|
53
|
+
super.openIntentChooser();
|
|
33
54
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
protected void openInstagramUrlScheme(String url) {
|
|
58
|
+
Uri uri = Uri.parse(url);
|
|
59
|
+
this.getIntent().setAction(Intent.ACTION_VIEW);
|
|
60
|
+
this.getIntent().setData(uri);
|
|
61
|
+
super.openIntentChooser();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
protected void openInstagramIntentChooserForImage(String url, String chooserTitle) {
|
|
65
|
+
Boolean shouldUseInternalStorage = ShareIntent.hasValidKey("useInternalStorage", options) && options.getBoolean("useInternalStorage");
|
|
66
|
+
ShareFile shareFile = new ShareFile(url, "image/jpeg", "image", shouldUseInternalStorage, this.reactContext);
|
|
67
|
+
Uri uri = shareFile.getURI();
|
|
68
|
+
|
|
69
|
+
Intent feedIntent = new Intent(Intent.ACTION_SEND);
|
|
70
|
+
feedIntent.setType("image/*");
|
|
71
|
+
feedIntent.putExtra(Intent.EXTRA_STREAM, uri);
|
|
72
|
+
feedIntent.setPackage(PACKAGE);
|
|
73
|
+
|
|
74
|
+
Intent storiesIntent = new Intent("com.instagram.share.ADD_TO_STORY");
|
|
75
|
+
storiesIntent.setDataAndType(uri, "jpg");
|
|
76
|
+
storiesIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
|
77
|
+
storiesIntent.setPackage(PACKAGE);
|
|
78
|
+
|
|
79
|
+
Intent chooserIntent = Intent.createChooser(feedIntent, chooserTitle);
|
|
80
|
+
chooserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
81
|
+
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {storiesIntent});
|
|
82
|
+
|
|
83
|
+
Activity activity = this.reactContext.getCurrentActivity();
|
|
84
|
+
activity.grantUriPermission(PACKAGE, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
|
85
|
+
this.reactContext.startActivity(chooserIntent);
|
|
38
86
|
}
|
|
39
87
|
|
|
40
88
|
@Override
|
|
@@ -76,6 +76,11 @@ public class InstagramStoriesShare extends SingleShareIntent {
|
|
|
76
76
|
this.intent.putExtra("bottom_background_color", options.getString("backgroundBottomColor"));
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
Boolean useInternalStorage = false;
|
|
80
|
+
if (this.hasValidKey("useInternalStorage", options)) {
|
|
81
|
+
useInternalStorage = options.getBoolean("useInternalStorage");
|
|
82
|
+
}
|
|
83
|
+
|
|
79
84
|
Boolean hasBackgroundAsset = this.hasValidKey("backgroundImage", options)
|
|
80
85
|
|| this.hasValidKey("backgroundVideo", options);
|
|
81
86
|
|
|
@@ -88,14 +93,14 @@ public class InstagramStoriesShare extends SingleShareIntent {
|
|
|
88
93
|
backgroundFileName = options.getString("backgroundVideo");
|
|
89
94
|
}
|
|
90
95
|
|
|
91
|
-
ShareFile backgroundAsset = new ShareFile(backgroundFileName, "background", this.reactContext);
|
|
96
|
+
ShareFile backgroundAsset = new ShareFile(backgroundFileName, "background", useInternalStorage, this.reactContext);
|
|
92
97
|
|
|
93
98
|
this.intent.setDataAndType(backgroundAsset.getURI(), backgroundAsset.getType());
|
|
94
99
|
this.intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
|
95
100
|
}
|
|
96
101
|
|
|
97
102
|
if (this.hasValidKey("stickerImage", options)) {
|
|
98
|
-
ShareFile stickerAsset = new ShareFile(options.getString("stickerImage"), "sticker", this.reactContext);
|
|
103
|
+
ShareFile stickerAsset = new ShareFile(options.getString("stickerImage"), "sticker", useInternalStorage, this.reactContext);
|
|
99
104
|
|
|
100
105
|
if (!hasBackgroundAsset) {
|
|
101
106
|
this.intent.setType("image/*");
|
|
@@ -135,7 +135,7 @@ public abstract class ShareIntent {
|
|
|
135
135
|
this.getIntent().putExtra("jid", chatAddress);
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
-
|
|
138
|
+
|
|
139
139
|
if (socialType.equals("whatsappbusiness")) {
|
|
140
140
|
if (options.hasKey("whatsAppNumber")) {
|
|
141
141
|
String whatsAppNumber = options.getString("whatsAppNumber");
|
|
@@ -186,14 +186,19 @@ public abstract class ShareIntent {
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
protected ShareFile getFileShare(ReadableMap options) {
|
|
189
|
-
|
|
189
|
+
String filename = null;
|
|
190
190
|
if (ShareIntent.hasValidKey("filename", options)) {
|
|
191
191
|
filename = options.getString("filename");
|
|
192
192
|
}
|
|
193
|
+
|
|
194
|
+
Boolean useInternalStorage = false;
|
|
195
|
+
if (ShareIntent.hasValidKey("useInternalStorage", options)) {
|
|
196
|
+
useInternalStorage = options.getBoolean("useInternalStorage");
|
|
197
|
+
}
|
|
193
198
|
if (ShareIntent.hasValidKey("type", options)) {
|
|
194
|
-
return new ShareFile(options.getString("url"), options.getString("type"), filename, this.reactContext);
|
|
199
|
+
return new ShareFile(options.getString("url"), options.getString("type"), filename, useInternalStorage, this.reactContext);
|
|
195
200
|
} else {
|
|
196
|
-
return new ShareFile(options.getString("url"), filename, this.reactContext);
|
|
201
|
+
return new ShareFile(options.getString("url"), filename, useInternalStorage, this.reactContext);
|
|
197
202
|
}
|
|
198
203
|
}
|
|
199
204
|
|
|
@@ -206,10 +211,14 @@ public abstract class ShareIntent {
|
|
|
206
211
|
}
|
|
207
212
|
}
|
|
208
213
|
|
|
214
|
+
Boolean useInternalStorage = false;
|
|
215
|
+
if (ShareIntent.hasValidKey("useInternalStorage", options)) {
|
|
216
|
+
useInternalStorage = options.getBoolean("useInternalStorage");
|
|
217
|
+
}
|
|
209
218
|
if (ShareIntent.hasValidKey("type", options)) {
|
|
210
|
-
return new ShareFiles(options.getArray("urls"), filenames, options.getString("type"), this.reactContext);
|
|
219
|
+
return new ShareFiles(options.getArray("urls"), filenames, options.getString("type"), useInternalStorage, this.reactContext);
|
|
211
220
|
} else {
|
|
212
|
-
return new ShareFiles(options.getArray("urls"), filenames, this.reactContext);
|
|
221
|
+
return new ShareFiles(options.getArray("urls"), filenames, useInternalStorage, this.reactContext);
|
|
213
222
|
}
|
|
214
223
|
}
|
|
215
224
|
|
package/ios/FacebookStories.m
CHANGED
|
@@ -21,131 +21,70 @@
|
|
|
21
21
|
@implementation FacebookStories
|
|
22
22
|
RCT_EXPORT_MODULE();
|
|
23
23
|
|
|
24
|
-
- (void)
|
|
25
|
-
|
|
24
|
+
- (void)shareSingle:(NSDictionary *)options
|
|
25
|
+
failureCallback:(RCTResponseErrorBlock)failureCallback
|
|
26
|
+
successCallback:(RCTResponseSenderBlock)successCallback {
|
|
26
27
|
|
|
27
28
|
NSURL *urlScheme = [NSURL URLWithString:@"facebook-stories://share"];
|
|
28
|
-
if ([[UIApplication sharedApplication] canOpenURL:urlScheme]) {
|
|
29
|
-
// Assign background image asset and attribution link URL to pasteboard
|
|
30
|
-
NSArray *pasteboardItems = @[@{@"com.facebook.sharedSticker.backgroundImage" : backgroundImage, @"com.facebook.sharedSticker.contentURL" : attributionURL, @"com.facebook.sharedSticker.appID" : appId}];
|
|
31
|
-
NSDictionary *pasteboardOptions = @{UIPasteboardOptionExpirationDate : [[NSDate date] dateByAddingTimeInterval:60 * 5]};
|
|
32
|
-
// This call is iOS 10+, can use 'setItems' depending on what versions you support
|
|
33
|
-
[[UIPasteboard generalPasteboard] setItems:pasteboardItems options:pasteboardOptions];
|
|
34
|
-
[[UIApplication sharedApplication] openURL:urlScheme options:@{} completionHandler:nil];
|
|
35
|
-
} else { // Handle older app versions or app not installed case
|
|
29
|
+
if (![[UIApplication sharedApplication] canOpenURL:urlScheme]) {
|
|
36
30
|
[self fallbackFacebook];
|
|
37
31
|
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
- (void)stickerImage:(NSData *)stickerImage
|
|
41
|
-
backgroundTopColor:(NSString *)backgroundTopColor
|
|
42
|
-
backgroundBottomColor:(NSString *)backgroundBottomColor
|
|
43
|
-
attributionURL:(NSString *)attributionURL
|
|
44
|
-
appId:(NSString *)appId
|
|
45
|
-
{
|
|
46
|
-
// Verify app can open custom URL scheme. If able,
|
|
47
|
-
// assign assets to pasteboard, open scheme.
|
|
48
32
|
|
|
49
|
-
|
|
50
|
-
|
|
33
|
+
// Create dictionary of assets and attribution
|
|
34
|
+
NSMutableDictionary *items = [NSMutableDictionary dictionary];
|
|
51
35
|
|
|
52
|
-
|
|
36
|
+
[items setObject: options[@"appId"] forKey: @"com.facebook.sharedSticker.appID"];
|
|
53
37
|
|
|
54
|
-
|
|
38
|
+
if(![options[@"backgroundImage"] isEqual:[NSNull null]] && options[@"backgroundImage"] != nil) {
|
|
39
|
+
NSURL *backgroundImageURL = [RCTConvert NSURL:options[@"backgroundImage"]];
|
|
40
|
+
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:backgroundImageURL]];
|
|
41
|
+
[items setObject: UIImagePNGRepresentation(image) forKey: @"com.facebook.sharedSticker.backgroundImage"];
|
|
42
|
+
}
|
|
55
43
|
|
|
56
|
-
|
|
44
|
+
if(![options[@"stickerImage"] isEqual:[NSNull null]] && options[@"stickerImage"] != nil) {
|
|
45
|
+
NSURL *stickerImageURL = [RCTConvert NSURL:options[@"stickerImage"]];
|
|
46
|
+
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL: stickerImageURL]];
|
|
47
|
+
[items setObject: UIImagePNGRepresentation(image) forKey: @"com.facebook.sharedSticker.stickerImage"];
|
|
48
|
+
}
|
|
57
49
|
|
|
58
|
-
|
|
50
|
+
if(![options[@"backgroundVideo"] isEqual:[NSNull null]] && options[@"backgroundVideo"] != nil) {
|
|
51
|
+
NSURL *backgroundVideoURL = [RCTConvert NSURL:options[@"backgroundVideo"]];
|
|
52
|
+
NSData *video = [NSData dataWithContentsOfURL:backgroundVideoURL];
|
|
53
|
+
[items setObject: video forKey: @"com.facebook.sharedSticker.backgroundVideo"];
|
|
54
|
+
}
|
|
59
55
|
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
if(![options[@"attributionURL"] isEqual:[NSNull null]] && options[@"attributionURL"] != nil) {
|
|
57
|
+
NSString *attrURL = [RCTConvert NSString:options[@"attributionURL"]];
|
|
58
|
+
[items setObject: attrURL forKey: @"com.facebook.sharedSticker.contentURL"];
|
|
59
|
+
}
|
|
62
60
|
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
NSString *backgroundTopColor;
|
|
62
|
+
if(![options[@"backgroundTopColor"] isEqual:[NSNull null]] && options[@"backgroundTopColor"] != nil) {
|
|
63
|
+
backgroundTopColor = [RCTConvert NSString:options[@"backgroundTopColor"]];
|
|
64
|
+
} else {
|
|
65
|
+
backgroundTopColor = @"#906df4";
|
|
65
66
|
}
|
|
66
|
-
|
|
67
|
+
[items setObject: backgroundTopColor forKey: @"com.facebook.sharedSticker.backgroundTopColor"];
|
|
67
68
|
|
|
68
|
-
|
|
69
|
-
{
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
if ([[UIApplication sharedApplication] canOpenURL:urlScheme]) {
|
|
74
|
-
// Assign background and sticker image assets and
|
|
75
|
-
// attribution link URL to pasteboard
|
|
76
|
-
NSArray *pasteboardItems = @[@{@"com.facebook.sharedSticker.backgroundImage" : backgroundImage, @"com.facebook.sharedSticker.stickerImage" : stickerImage, @"com.facebook.sharedSticker.contentURL" : attributionURL, @"com.facebook.sharedSticker.appID" : appId}];
|
|
77
|
-
NSDictionary *pasteboardOptions = @{UIPasteboardOptionExpirationDate : [[NSDate date] dateByAddingTimeInterval:60 * 5]};
|
|
78
|
-
// This call is iOS 10+, can use 'setItems' depending on what versions you support
|
|
79
|
-
[[UIPasteboard generalPasteboard] setItems:pasteboardItems options:pasteboardOptions];
|
|
80
|
-
[[UIApplication sharedApplication] openURL:urlScheme options:@{} completionHandler:nil];
|
|
81
|
-
|
|
82
|
-
} else { // Handle older app versions or app not installed case
|
|
83
|
-
[self fallbackFacebook];
|
|
69
|
+
NSString *backgroundBottomColor;
|
|
70
|
+
if(![options[@"backgroundBottomColor"] isEqual:[NSNull null]] && options[@"backgroundBottomColor"] != nil) {
|
|
71
|
+
backgroundBottomColor = [RCTConvert NSString:options[@"backgroundBottomColor"]];
|
|
72
|
+
} else {
|
|
73
|
+
backgroundBottomColor = @"#837DF4";
|
|
84
74
|
}
|
|
85
|
-
|
|
75
|
+
[items setObject: backgroundBottomColor forKey: @"com.facebook.sharedSticker.backgroundBottomColor"];
|
|
86
76
|
|
|
77
|
+
// Putting dictionary of options inside an array
|
|
78
|
+
NSArray *pasteboardItems = @[items];
|
|
87
79
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
successCallback:(RCTResponseSenderBlock)successCallback {
|
|
80
|
+
// Prepare options to facebook
|
|
81
|
+
NSDictionary *pasteboardOptions = @{UIPasteboardOptionExpirationDate : [[NSDate date] dateByAddingTimeInterval:60 * 5]};
|
|
91
82
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
83
|
+
// This call is iOS 10+, can use 'setItems' depending on what versions you support
|
|
84
|
+
[[UIPasteboard generalPasteboard] setItems:pasteboardItems options:pasteboardOptions];
|
|
85
|
+
[[UIApplication sharedApplication] openURL:urlScheme options:@{} completionHandler:nil];
|
|
96
86
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
NSString *method = [RCTConvert NSString:options[@"method"]];
|
|
100
|
-
if (method) {
|
|
101
|
-
if([method isEqualToString:@"shareBackgroundImage"]) {
|
|
102
|
-
|
|
103
|
-
NSURL *URL = [RCTConvert NSURL:options[@"backgroundImage"]];
|
|
104
|
-
if (URL == nil) {
|
|
105
|
-
RCTLogError(@"key 'backgroundImage' missing in options");
|
|
106
|
-
} else {
|
|
107
|
-
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:URL]];
|
|
108
|
-
|
|
109
|
-
[self backgroundImage:UIImagePNGRepresentation(image) attributionURL:attrURL appId:appId];
|
|
110
|
-
}
|
|
111
|
-
} else if([method isEqualToString:@"shareStickerImage"]) {
|
|
112
|
-
RCTLog(@"method shareStickerImage");
|
|
113
|
-
|
|
114
|
-
NSString *backgroundTopColor = [RCTConvert NSString:options[@"backgroundTopColor"]];
|
|
115
|
-
if (backgroundTopColor == nil) {
|
|
116
|
-
backgroundTopColor = @"#906df4";
|
|
117
|
-
}
|
|
118
|
-
NSString *backgroundBottomColor = [RCTConvert NSString:options[@"backgroundBottomColor"]];
|
|
119
|
-
if (backgroundBottomColor == nil) {
|
|
120
|
-
backgroundBottomColor = @"#837DF4";
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
NSURL *URL = [RCTConvert NSURL:options[@"stickerImage"]];
|
|
124
|
-
if (URL == nil) {
|
|
125
|
-
RCTLogError(@"key 'stickerImage' missing in options");
|
|
126
|
-
} else {
|
|
127
|
-
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:URL]];
|
|
128
|
-
|
|
129
|
-
[self stickerImage:UIImagePNGRepresentation(image) backgroundTopColor:backgroundTopColor backgroundBottomColor:backgroundBottomColor attributionURL:attrURL appId:appId];
|
|
130
|
-
}
|
|
131
|
-
} else if([method isEqualToString:@"shareBackgroundAndStickerImage"]) {
|
|
132
|
-
RCTLog(@"method shareBackgroundAndStickerImage");
|
|
133
|
-
|
|
134
|
-
NSURL *backgroundURL = [RCTConvert NSURL:options[@"backgroundImage"]];
|
|
135
|
-
NSURL *stickerURL = [RCTConvert NSURL:options[@"stickerImage"]];
|
|
136
|
-
|
|
137
|
-
if (backgroundURL == nil || stickerURL == nil) {
|
|
138
|
-
RCTLogError(@"key 'backgroundImage' or 'stickerImage' missing in options");
|
|
139
|
-
} else {
|
|
140
|
-
UIImage *backgroundImage = [UIImage imageWithData: [NSData dataWithContentsOfURL:backgroundURL]];
|
|
141
|
-
UIImage *stickerImage = [UIImage imageWithData: [NSData dataWithContentsOfURL:stickerURL]];
|
|
142
|
-
|
|
143
|
-
[self backgroundImage:UIImagePNGRepresentation(backgroundImage) stickerImage:UIImagePNGRepresentation(stickerImage) attributionURL:attrURL appId:appId];
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
} else {
|
|
147
|
-
RCTLogError(@"key 'method' missing in options");
|
|
148
|
-
}
|
|
87
|
+
successCallback(@[]);
|
|
149
88
|
}
|
|
150
89
|
|
|
151
90
|
- (void)fallbackFacebook {
|
package/lib/commonjs/index.js
CHANGED
|
@@ -76,12 +76,9 @@ const RNShare = {
|
|
|
76
76
|
PINTEREST: _reactNative.NativeModules.RNShare.PINTEREST || _types.Social.Pinterest,
|
|
77
77
|
LINKEDIN: _reactNative.NativeModules.RNShare.LINKEDIN || _types.Social.Linkedin,
|
|
78
78
|
SMS: _reactNative.NativeModules.RNShare.SMS || _types.Social.Sms,
|
|
79
|
-
TELEGRAM: _reactNative.NativeModules.RNShare.TELEGRAM || _types.Social.Telegram
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
SHARE_BACKGROUND_IMAGE: _reactNative.NativeModules.RNShare.SHARE_BACKGROUND_IMAGE || _types.ShareAsset.BackgroundImage,
|
|
83
|
-
SHARE_STICKER_IMAGE: _reactNative.NativeModules.RNShare.SHARE_STICKER_IMAGE || _types.ShareAsset.StickerImage,
|
|
84
|
-
SHARE_BACKGROUND_AND_STICKER_IMAGE: _reactNative.NativeModules.RNShare.SHARE_BACKGROUND_AND_STICKER_IMAGE || _types.ShareAsset.BackgroundAndStickerImage
|
|
79
|
+
TELEGRAM: _reactNative.NativeModules.RNShare.TELEGRAM || _types.Social.Telegram,
|
|
80
|
+
MESSENGER: _reactNative.NativeModules.RNShare.MESSENGER || _types.Social.Messenger,
|
|
81
|
+
SNAPCHAT: _reactNative.NativeModules.RNShare.SNAPCHAT || _types.Social.Snapchat
|
|
85
82
|
},
|
|
86
83
|
|
|
87
84
|
open(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["RNShare","Button","ShareSheet","Overlay","Sheet","Social","FACEBOOK","NativeModules","Facebook","FACEBOOK_STORIES","FACEBOOKSTORIES","FacebookStories","PAGESMANAGER","Pagesmanager","TWITTER","Twitter","WHATSAPP","Whatsapp","WHATSAPPBUSINESS","Whatsappbusiness","INSTAGRAM","Instagram","INSTAGRAM_STORIES","INSTAGRAMSTORIES","InstagramStories","GOOGLEPLUS","Googleplus","EMAIL","Email","PINTEREST","Pinterest","LINKEDIN","Linkedin","SMS","Sms","TELEGRAM","Telegram","
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["RNShare","Button","ShareSheet","Overlay","Sheet","Social","FACEBOOK","NativeModules","Facebook","FACEBOOK_STORIES","FACEBOOKSTORIES","FacebookStories","PAGESMANAGER","Pagesmanager","TWITTER","Twitter","WHATSAPP","Whatsapp","WHATSAPPBUSINESS","Whatsappbusiness","INSTAGRAM","Instagram","INSTAGRAM_STORIES","INSTAGRAMSTORIES","InstagramStories","GOOGLEPLUS","Googleplus","EMAIL","Email","PINTEREST","Pinterest","LINKEDIN","Linkedin","SMS","Sms","TELEGRAM","Telegram","MESSENGER","Messenger","SNAPCHAT","Snapchat","open","options","Promise","resolve","reject","then","Platform","OS","url","urls","filename","filenames","error","success","message","failOnCancel","dismissedAction","Error","catch","e","shareSingle","isPackageInstalled","packageName","isInstalled"],"mappings":"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","sourcesContent":["import { NativeModules, Platform } from 'react-native';\n\nimport Overlay from './components/Overlay';\nimport Sheet from './components/Sheet';\nimport Button from './components/Button';\nimport ShareSheet from './components/ShareSheet';\nimport requireAndAskPermissions from './helpers/requireAndAskPermissions';\nimport {\n Social,\n IsPackageInstalledResult,\n ActivityType,\n ShareOpenResult,\n ShareAsset,\n ShareOptions,\n ShareSingleOptions,\n ShareSingleResult,\n} from './types';\n\nconst RNShare = {\n Button,\n ShareSheet,\n Overlay,\n Sheet,\n\n Social: {\n FACEBOOK: NativeModules.RNShare.FACEBOOK || Social.Facebook,\n FACEBOOK_STORIES: NativeModules.RNShare.FACEBOOKSTORIES || Social.FacebookStories,\n PAGESMANAGER: NativeModules.RNShare.PAGESMANAGER || Social.Pagesmanager,\n TWITTER: NativeModules.RNShare.TWITTER || Social.Twitter,\n WHATSAPP: NativeModules.RNShare.WHATSAPP || Social.Whatsapp,\n WHATSAPPBUSINESS: NativeModules.RNShare.WHATSAPPBUSINESS || Social.Whatsappbusiness,\n INSTAGRAM: NativeModules.RNShare.INSTAGRAM || Social.Instagram,\n INSTAGRAM_STORIES: NativeModules.RNShare.INSTAGRAMSTORIES || Social.InstagramStories,\n GOOGLEPLUS: NativeModules.RNShare.GOOGLEPLUS || Social.Googleplus,\n EMAIL: NativeModules.RNShare.EMAIL || Social.Email,\n PINTEREST: NativeModules.RNShare.PINTEREST || Social.Pinterest,\n LINKEDIN: NativeModules.RNShare.LINKEDIN || Social.Linkedin,\n SMS: NativeModules.RNShare.SMS || Social.Sms,\n TELEGRAM: NativeModules.RNShare.TELEGRAM || Social.Telegram,\n MESSENGER: NativeModules.RNShare.MESSENGER || Social.Messenger,\n SNAPCHAT: NativeModules.RNShare.SNAPCHAT || Social.Snapchat,\n },\n\n open(options: ShareOptions): Promise<ShareOpenResult | never> {\n return new Promise((resolve, reject) => {\n requireAndAskPermissions(options)\n .then(() => {\n if (Platform.OS === 'ios' && options.url && !options.urls) {\n // Backward compatibility with { Share } from react-native\n const url = options.url;\n delete options.url;\n\n options.urls = [url];\n\n if (options.filename && !options.filenames) {\n options.filenames = [options.filename];\n delete options.filename;\n }\n }\n\n NativeModules.RNShare.open(\n options,\n (error) => {\n return reject({ error });\n },\n (success, message) => {\n if (success) {\n return resolve({\n success,\n message,\n });\n } else if (options.failOnCancel === false) {\n return resolve({\n dismissedAction: true,\n success,\n message,\n });\n } else {\n reject(new Error('User did not share'));\n }\n },\n );\n })\n .catch((e: unknown) => reject(e));\n });\n },\n\n shareSingle(options: ShareSingleOptions): Promise<ShareSingleResult | never> {\n if (Platform.OS === 'ios' || Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n requireAndAskPermissions(options)\n .then(() => {\n NativeModules.RNShare.shareSingle(\n options,\n (error) => {\n return reject({ error });\n },\n (success, message) => {\n return resolve({\n success,\n message,\n });\n },\n );\n })\n .catch((e: unknown) => reject(e));\n });\n } else {\n throw new Error('Not implemented');\n }\n },\n\n isPackageInstalled(packageName: string): Promise<IsPackageInstalledResult | never> {\n if (Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n NativeModules.RNShare.isPackageInstalled(\n packageName,\n (error) => {\n return reject({ error });\n },\n (isInstalled) => {\n return resolve({\n isInstalled,\n message: 'Package is Installed',\n });\n },\n );\n });\n } else {\n throw new Error('Not implemented');\n }\n },\n} as const;\n\nexport { Overlay, Sheet, Button, ShareSheet, ShareAsset, Social };\nexport type { ShareSingleOptions, ShareOptions, ActivityType, IsPackageInstalledResult };\nexport type { OverlayProps } from './components/Overlay';\nexport type { SheetProps } from './components/Sheet';\nexport type { ButtonProps } from './components/Button';\nexport type { ShareSheetProps } from './components/ShareSheet';\nexport default RNShare;\n"]}
|
package/lib/commonjs/types.js
CHANGED
|
@@ -22,6 +22,8 @@ exports.Social = Social;
|
|
|
22
22
|
Social["Linkedin"] = "linkedin";
|
|
23
23
|
Social["Sms"] = "sms";
|
|
24
24
|
Social["Telegram"] = "telegram";
|
|
25
|
+
Social["Snapchat"] = "snapchat";
|
|
26
|
+
Social["Messenger"] = "messenger";
|
|
25
27
|
})(Social || (exports.Social = Social = {}));
|
|
26
28
|
|
|
27
29
|
let ShareAsset;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["types.ts"],"names":["Social","ShareAsset"],"mappings":";;;;;;IAAYA,M;;;WAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;GAAAA,M,sBAAAA,M;;
|
|
1
|
+
{"version":3,"sources":["types.ts"],"names":["Social","ShareAsset"],"mappings":";;;;;;IAAYA,M;;;WAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;GAAAA,M,sBAAAA,M;;IAmBAC,U;;;WAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;GAAAA,U,0BAAAA,U","sourcesContent":["export enum Social {\n Facebook = 'facebook',\n FacebookStories = 'facebookstories',\n Pagesmanager = 'pagesmanager',\n Twitter = 'twitter',\n Whatsapp = 'whatsapp',\n Whatsappbusiness = 'whatsappbusiness',\n Instagram = 'instagram',\n InstagramStories = 'instagramstories',\n Googleplus = 'googleplus',\n Email = 'email',\n Pinterest = 'pinterest',\n Linkedin = 'linkedin',\n Sms = 'sms',\n Telegram = 'telegram',\n Snapchat = 'snapchat',\n Messenger = 'messenger',\n}\n\nexport enum ShareAsset {\n BackgroundImage = 'shareBackgroundImage',\n BackgroundVideo = 'shareBackgroundVideo',\n StickerImage = 'shareStickerImage',\n BackgroundAndStickerImage = 'shareBackgroundAndStickerImage',\n}\n\nexport interface LinkMetadata {\n originalUrl?: string;\n url?: string;\n title?: string;\n icon?: string;\n image?: string;\n remoteVideoUrl?: string;\n video?: string;\n}\n\nexport interface ActivityItem {\n type: 'text' | 'url';\n content: string;\n}\n\nexport interface ActivityItemSource {\n placeholderItem: ActivityItem;\n item: { [key in ActivityType]?: ActivityItem | null | undefined };\n subject?: { [key in ActivityType]?: string };\n dataTypeIdentifier?: { [key in ActivityType]?: string };\n thumbnailImage?: { [key in ActivityType]?: string };\n linkMetadata?: LinkMetadata;\n}\n\ninterface BaseShareSingleOptions {\n url?: string;\n type?: string;\n filename?: string;\n message?: string;\n title?: string;\n subject?: string;\n email?: string;\n recipient?: string;\n social: Exclude<Social, Social.FacebookStories | Social.InstagramStories>;\n forceDialog?: boolean;\n}\n\ninterface BaseSocialStoriesShareSingleOptions extends Omit<BaseShareSingleOptions, 'social'> {\n backgroundImage?: string;\n stickerImage?: string;\n backgroundBottomColor?: string;\n backgroundTopColor?: string;\n attributionURL?: string;\n backgroundVideo?: string;\n}\n\nexport interface InstagramStoriesShareSingleOptions extends BaseSocialStoriesShareSingleOptions {\n social: Social.InstagramStories;\n}\n\nexport interface FacebookStoriesShareSingleOptions extends BaseSocialStoriesShareSingleOptions {\n social: Social.FacebookStories;\n method: Exclude<ShareAsset, ShareAsset.BackgroundVideo>;\n appId: string;\n}\n\nexport type ShareSingleOptions =\n | BaseShareSingleOptions\n | InstagramStoriesShareSingleOptions\n | FacebookStoriesShareSingleOptions;\n\nexport interface ShareOptions {\n message?: string;\n title?: string;\n url?: string;\n urls?: string[];\n type?: string;\n subject?: string;\n email?: string;\n recipient?: string;\n excludedActivityTypes?: ActivityType[];\n failOnCancel?: boolean;\n showAppsToView?: boolean;\n filename?: string;\n filenames?: string[];\n saveToFiles?: boolean;\n activityItemSources?: ActivityItemSource[];\n}\n\nexport type ActivityType =\n | 'default'\n | 'addToReadingList'\n | 'airDrop'\n | 'assignToContact'\n | 'copyToPasteBoard'\n | 'mail'\n | 'message'\n | 'openInIBooks' // iOS 9 or later\n | 'postToFacebook'\n | 'postToFlickr'\n | 'postToTencentWeibo'\n | 'postToTwitter'\n | 'postToVimeo'\n | 'postToWeibo'\n | 'print'\n | 'saveToCameraRoll'\n | 'markupAsPDF'; // iOS 11 or late\n\nexport interface ShareSingleResult {\n message: string;\n success: boolean;\n}\n\nexport interface ShareOpenResult extends ShareSingleResult {\n dismissedAction?: boolean;\n}\nexport interface IsPackageInstalledResult {\n message: string;\n isInstalled: boolean;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["react-native.d.ts"],"names":[],"mappings":";;AAAA","sourcesContent":["import 'react-native';\n\nimport { ShareAsset, ShareSingleOptions, ShareOptions, Social } from '../types';\n\ndeclare module 'react-native' {\n export interface RNShare {\n FACEBOOK: Social.Facebook;\n FACEBOOKSTORIES: Social.FacebookStories;\n PAGESMANAGER: Social.Pagesmanager;\n TWITTER: Social.Twitter;\n WHATSAPP: Social.Whatsapp;\n WHATSAPPBUSINESS: Social.Whatsappbusiness;\n INSTAGRAM: Social.Instagram;\n INSTAGRAMSTORIES: Social.InstagramStories;\n GOOGLEPLUS: Social.Googleplus;\n EMAIL: Social.Email;\n PINTEREST: Social.Pinterest;\n LINKEDIN: Social.Linkedin;\n SMS: Social.Sms;\n TELEGRAM: Social.Telegram;\n\n SHARE_BACKGROUND_IMAGE: ShareAsset.BackgroundImage;\n SHARE_BACKGROUND_VIDEO: ShareAsset.BackgroundVideo;\n SHARE_STICKER_IMAGE: ShareAsset.StickerImage;\n SHARE_BACKGROUND_AND_STICKER_IMAGE: ShareAsset.BackgroundAndStickerImage;\n\n open(\n options: ShareOptions,\n errorCallback: (error: string) => void,\n successCallback: (success: boolean, message: string) => void,\n ): Promise<void>;\n\n shareSingle(\n options: ShareSingleOptions,\n errorCallback: (error: string) => void,\n successCallback: (success: boolean, message: string) => void,\n ): Promise<void>;\n\n isPackageInstalled(\n packageName: string,\n errorCallback: (error: string) => void,\n successCallback: (isInstalled: boolean) => void,\n ): Promise<void>;\n\n isBase64File(\n url: string,\n errorCallback: (error: string) => void,\n successCallback: (isBase64: boolean) => void,\n ): Promise<void>;\n }\n\n interface NativeModulesStatic {\n RNShare: RNShare;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["react-native.d.ts"],"names":[],"mappings":";;AAAA","sourcesContent":["import 'react-native';\n\nimport { ShareAsset, ShareSingleOptions, ShareOptions, Social } from '../types';\n\ndeclare module 'react-native' {\n export interface RNShare {\n FACEBOOK: Social.Facebook;\n FACEBOOKSTORIES: Social.FacebookStories;\n PAGESMANAGER: Social.Pagesmanager;\n TWITTER: Social.Twitter;\n WHATSAPP: Social.Whatsapp;\n WHATSAPPBUSINESS: Social.Whatsappbusiness;\n INSTAGRAM: Social.Instagram;\n INSTAGRAMSTORIES: Social.InstagramStories;\n GOOGLEPLUS: Social.Googleplus;\n EMAIL: Social.Email;\n PINTEREST: Social.Pinterest;\n LINKEDIN: Social.Linkedin;\n SMS: Social.Sms;\n TELEGRAM: Social.Telegram;\n SNAPCHAT: Social.Snapchat;\n MESSENGER: Social.Messenger;\n\n SHARE_BACKGROUND_IMAGE: ShareAsset.BackgroundImage;\n SHARE_BACKGROUND_VIDEO: ShareAsset.BackgroundVideo;\n SHARE_STICKER_IMAGE: ShareAsset.StickerImage;\n SHARE_BACKGROUND_AND_STICKER_IMAGE: ShareAsset.BackgroundAndStickerImage;\n\n open(\n options: ShareOptions,\n errorCallback: (error: string) => void,\n successCallback: (success: boolean, message: string) => void,\n ): Promise<void>;\n\n shareSingle(\n options: ShareSingleOptions,\n errorCallback: (error: string) => void,\n successCallback: (success: boolean, message: string) => void,\n ): Promise<void>;\n\n isPackageInstalled(\n packageName: string,\n errorCallback: (error: string) => void,\n successCallback: (isInstalled: boolean) => void,\n ): Promise<void>;\n\n isBase64File(\n url: string,\n errorCallback: (error: string) => void,\n successCallback: (isBase64: boolean) => void,\n ): Promise<void>;\n }\n\n interface NativeModulesStatic {\n RNShare: RNShare;\n }\n}\n"]}
|
package/lib/module/index.js
CHANGED
|
@@ -24,12 +24,9 @@ const RNShare = {
|
|
|
24
24
|
PINTEREST: NativeModules.RNShare.PINTEREST || Social.Pinterest,
|
|
25
25
|
LINKEDIN: NativeModules.RNShare.LINKEDIN || Social.Linkedin,
|
|
26
26
|
SMS: NativeModules.RNShare.SMS || Social.Sms,
|
|
27
|
-
TELEGRAM: NativeModules.RNShare.TELEGRAM || Social.Telegram
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
SHARE_BACKGROUND_IMAGE: NativeModules.RNShare.SHARE_BACKGROUND_IMAGE || ShareAsset.BackgroundImage,
|
|
31
|
-
SHARE_STICKER_IMAGE: NativeModules.RNShare.SHARE_STICKER_IMAGE || ShareAsset.StickerImage,
|
|
32
|
-
SHARE_BACKGROUND_AND_STICKER_IMAGE: NativeModules.RNShare.SHARE_BACKGROUND_AND_STICKER_IMAGE || ShareAsset.BackgroundAndStickerImage
|
|
27
|
+
TELEGRAM: NativeModules.RNShare.TELEGRAM || Social.Telegram,
|
|
28
|
+
MESSENGER: NativeModules.RNShare.MESSENGER || Social.Messenger,
|
|
29
|
+
SNAPCHAT: NativeModules.RNShare.SNAPCHAT || Social.Snapchat
|
|
33
30
|
},
|
|
34
31
|
|
|
35
32
|
open(options) {
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["NativeModules","Platform","Overlay","Sheet","Button","ShareSheet","requireAndAskPermissions","Social","ShareAsset","RNShare","FACEBOOK","Facebook","FACEBOOK_STORIES","FACEBOOKSTORIES","FacebookStories","PAGESMANAGER","Pagesmanager","TWITTER","Twitter","WHATSAPP","Whatsapp","WHATSAPPBUSINESS","Whatsappbusiness","INSTAGRAM","Instagram","INSTAGRAM_STORIES","INSTAGRAMSTORIES","InstagramStories","GOOGLEPLUS","Googleplus","EMAIL","Email","PINTEREST","Pinterest","LINKEDIN","Linkedin","SMS","Sms","TELEGRAM","Telegram","SHARE_BACKGROUND_IMAGE","BackgroundImage","SHARE_STICKER_IMAGE","StickerImage","SHARE_BACKGROUND_AND_STICKER_IMAGE","BackgroundAndStickerImage","open","options","Promise","resolve","reject","then","OS","url","urls","filename","filenames","error","success","message","failOnCancel","dismissedAction","Error","catch","e","shareSingle","isPackageInstalled","packageName","isInstalled"],"mappings":"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","sourcesContent":["import { NativeModules, Platform } from 'react-native';\n\nimport Overlay from './components/Overlay';\nimport Sheet from './components/Sheet';\nimport Button from './components/Button';\nimport ShareSheet from './components/ShareSheet';\nimport requireAndAskPermissions from './helpers/requireAndAskPermissions';\nimport {\n Social,\n IsPackageInstalledResult,\n ActivityType,\n ShareOpenResult,\n ShareAsset,\n ShareOptions,\n ShareSingleOptions,\n ShareSingleResult,\n} from './types';\n\nconst RNShare = {\n Button,\n ShareSheet,\n Overlay,\n Sheet,\n\n Social: {\n FACEBOOK: NativeModules.RNShare.FACEBOOK || Social.Facebook,\n FACEBOOK_STORIES: NativeModules.RNShare.FACEBOOKSTORIES || Social.FacebookStories,\n PAGESMANAGER: NativeModules.RNShare.PAGESMANAGER || Social.Pagesmanager,\n TWITTER: NativeModules.RNShare.TWITTER || Social.Twitter,\n WHATSAPP: NativeModules.RNShare.WHATSAPP || Social.Whatsapp,\n WHATSAPPBUSINESS: NativeModules.RNShare.WHATSAPPBUSINESS || Social.Whatsappbusiness,\n INSTAGRAM: NativeModules.RNShare.INSTAGRAM || Social.Instagram,\n INSTAGRAM_STORIES: NativeModules.RNShare.INSTAGRAMSTORIES || Social.InstagramStories,\n GOOGLEPLUS: NativeModules.RNShare.GOOGLEPLUS || Social.Googleplus,\n EMAIL: NativeModules.RNShare.EMAIL || Social.Email,\n PINTEREST: NativeModules.RNShare.PINTEREST || Social.Pinterest,\n LINKEDIN: NativeModules.RNShare.LINKEDIN || Social.Linkedin,\n SMS: NativeModules.RNShare.SMS || Social.Sms,\n TELEGRAM: NativeModules.RNShare.TELEGRAM || Social.Telegram,\n },\n\n FacebookStories: {\n SHARE_BACKGROUND_IMAGE:\n NativeModules.RNShare.SHARE_BACKGROUND_IMAGE || ShareAsset.BackgroundImage,\n SHARE_STICKER_IMAGE: NativeModules.RNShare.SHARE_STICKER_IMAGE || ShareAsset.StickerImage,\n SHARE_BACKGROUND_AND_STICKER_IMAGE:\n NativeModules.RNShare.SHARE_BACKGROUND_AND_STICKER_IMAGE ||\n ShareAsset.BackgroundAndStickerImage,\n },\n\n open(options: ShareOptions): Promise<ShareOpenResult | never> {\n return new Promise((resolve, reject) => {\n requireAndAskPermissions(options)\n .then(() => {\n if (Platform.OS === 'ios' && options.url && !options.urls) {\n // Backward compatibility with { Share } from react-native\n const url = options.url;\n delete options.url;\n\n options.urls = [url];\n\n if (options.filename && !options.filenames) {\n options.filenames = [options.filename];\n delete options.filename;\n }\n }\n\n NativeModules.RNShare.open(\n options,\n (error) => {\n return reject({ error });\n },\n (success, message) => {\n if (success) {\n return resolve({\n success,\n message,\n });\n } else if (options.failOnCancel === false) {\n return resolve({\n dismissedAction: true,\n success,\n message,\n });\n } else {\n reject(new Error('User did not share'));\n }\n },\n );\n })\n .catch((e: unknown) => reject(e));\n });\n },\n\n shareSingle(options: ShareSingleOptions): Promise<ShareSingleResult | never> {\n if (Platform.OS === 'ios' || Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n requireAndAskPermissions(options)\n .then(() => {\n NativeModules.RNShare.shareSingle(\n options,\n (error) => {\n return reject({ error });\n },\n (success, message) => {\n return resolve({\n success,\n message,\n });\n },\n );\n })\n .catch((e: unknown) => reject(e));\n });\n } else {\n throw new Error('Not implemented');\n }\n },\n\n isPackageInstalled(packageName: string): Promise<IsPackageInstalledResult | never> {\n if (Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n NativeModules.RNShare.isPackageInstalled(\n packageName,\n (error) => {\n return reject({ error });\n },\n (isInstalled) => {\n return resolve({\n isInstalled,\n message: 'Package is Installed',\n });\n },\n );\n });\n } else {\n throw new Error('Not implemented');\n }\n },\n} as const;\n\nexport { Overlay, Sheet, Button, ShareSheet, ShareAsset, Social };\nexport type { ShareSingleOptions, ShareOptions, ActivityType, IsPackageInstalledResult };\nexport type { OverlayProps } from './components/Overlay';\nexport type { SheetProps } from './components/Sheet';\nexport type { ButtonProps } from './components/Button';\nexport type { ShareSheetProps } from './components/ShareSheet';\nexport default RNShare;\n"]}
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["NativeModules","Platform","Overlay","Sheet","Button","ShareSheet","requireAndAskPermissions","Social","ShareAsset","RNShare","FACEBOOK","Facebook","FACEBOOK_STORIES","FACEBOOKSTORIES","FacebookStories","PAGESMANAGER","Pagesmanager","TWITTER","Twitter","WHATSAPP","Whatsapp","WHATSAPPBUSINESS","Whatsappbusiness","INSTAGRAM","Instagram","INSTAGRAM_STORIES","INSTAGRAMSTORIES","InstagramStories","GOOGLEPLUS","Googleplus","EMAIL","Email","PINTEREST","Pinterest","LINKEDIN","Linkedin","SMS","Sms","TELEGRAM","Telegram","MESSENGER","Messenger","SNAPCHAT","Snapchat","open","options","Promise","resolve","reject","then","OS","url","urls","filename","filenames","error","success","message","failOnCancel","dismissedAction","Error","catch","e","shareSingle","isPackageInstalled","packageName","isInstalled"],"mappings":"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","sourcesContent":["import { NativeModules, Platform } from 'react-native';\n\nimport Overlay from './components/Overlay';\nimport Sheet from './components/Sheet';\nimport Button from './components/Button';\nimport ShareSheet from './components/ShareSheet';\nimport requireAndAskPermissions from './helpers/requireAndAskPermissions';\nimport {\n Social,\n IsPackageInstalledResult,\n ActivityType,\n ShareOpenResult,\n ShareAsset,\n ShareOptions,\n ShareSingleOptions,\n ShareSingleResult,\n} from './types';\n\nconst RNShare = {\n Button,\n ShareSheet,\n Overlay,\n Sheet,\n\n Social: {\n FACEBOOK: NativeModules.RNShare.FACEBOOK || Social.Facebook,\n FACEBOOK_STORIES: NativeModules.RNShare.FACEBOOKSTORIES || Social.FacebookStories,\n PAGESMANAGER: NativeModules.RNShare.PAGESMANAGER || Social.Pagesmanager,\n TWITTER: NativeModules.RNShare.TWITTER || Social.Twitter,\n WHATSAPP: NativeModules.RNShare.WHATSAPP || Social.Whatsapp,\n WHATSAPPBUSINESS: NativeModules.RNShare.WHATSAPPBUSINESS || Social.Whatsappbusiness,\n INSTAGRAM: NativeModules.RNShare.INSTAGRAM || Social.Instagram,\n INSTAGRAM_STORIES: NativeModules.RNShare.INSTAGRAMSTORIES || Social.InstagramStories,\n GOOGLEPLUS: NativeModules.RNShare.GOOGLEPLUS || Social.Googleplus,\n EMAIL: NativeModules.RNShare.EMAIL || Social.Email,\n PINTEREST: NativeModules.RNShare.PINTEREST || Social.Pinterest,\n LINKEDIN: NativeModules.RNShare.LINKEDIN || Social.Linkedin,\n SMS: NativeModules.RNShare.SMS || Social.Sms,\n TELEGRAM: NativeModules.RNShare.TELEGRAM || Social.Telegram,\n MESSENGER: NativeModules.RNShare.MESSENGER || Social.Messenger,\n SNAPCHAT: NativeModules.RNShare.SNAPCHAT || Social.Snapchat,\n },\n\n open(options: ShareOptions): Promise<ShareOpenResult | never> {\n return new Promise((resolve, reject) => {\n requireAndAskPermissions(options)\n .then(() => {\n if (Platform.OS === 'ios' && options.url && !options.urls) {\n // Backward compatibility with { Share } from react-native\n const url = options.url;\n delete options.url;\n\n options.urls = [url];\n\n if (options.filename && !options.filenames) {\n options.filenames = [options.filename];\n delete options.filename;\n }\n }\n\n NativeModules.RNShare.open(\n options,\n (error) => {\n return reject({ error });\n },\n (success, message) => {\n if (success) {\n return resolve({\n success,\n message,\n });\n } else if (options.failOnCancel === false) {\n return resolve({\n dismissedAction: true,\n success,\n message,\n });\n } else {\n reject(new Error('User did not share'));\n }\n },\n );\n })\n .catch((e: unknown) => reject(e));\n });\n },\n\n shareSingle(options: ShareSingleOptions): Promise<ShareSingleResult | never> {\n if (Platform.OS === 'ios' || Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n requireAndAskPermissions(options)\n .then(() => {\n NativeModules.RNShare.shareSingle(\n options,\n (error) => {\n return reject({ error });\n },\n (success, message) => {\n return resolve({\n success,\n message,\n });\n },\n );\n })\n .catch((e: unknown) => reject(e));\n });\n } else {\n throw new Error('Not implemented');\n }\n },\n\n isPackageInstalled(packageName: string): Promise<IsPackageInstalledResult | never> {\n if (Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n NativeModules.RNShare.isPackageInstalled(\n packageName,\n (error) => {\n return reject({ error });\n },\n (isInstalled) => {\n return resolve({\n isInstalled,\n message: 'Package is Installed',\n });\n },\n );\n });\n } else {\n throw new Error('Not implemented');\n }\n },\n} as const;\n\nexport { Overlay, Sheet, Button, ShareSheet, ShareAsset, Social };\nexport type { ShareSingleOptions, ShareOptions, ActivityType, IsPackageInstalledResult };\nexport type { OverlayProps } from './components/Overlay';\nexport type { SheetProps } from './components/Sheet';\nexport type { ButtonProps } from './components/Button';\nexport type { ShareSheetProps } from './components/ShareSheet';\nexport default RNShare;\n"]}
|
package/lib/module/types.js
CHANGED
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["types.ts"],"names":["Social","ShareAsset"],"mappings":"AAAA,WAAYA,MAAZ;;WAAYA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;GAAAA,M,KAAAA,M;;
|
|
1
|
+
{"version":3,"sources":["types.ts"],"names":["Social","ShareAsset"],"mappings":"AAAA,WAAYA,MAAZ;;WAAYA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;AAAAA,EAAAA,M;GAAAA,M,KAAAA,M;;AAmBZ,WAAYC,UAAZ;;WAAYA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;GAAAA,U,KAAAA,U","sourcesContent":["export enum Social {\n Facebook = 'facebook',\n FacebookStories = 'facebookstories',\n Pagesmanager = 'pagesmanager',\n Twitter = 'twitter',\n Whatsapp = 'whatsapp',\n Whatsappbusiness = 'whatsappbusiness',\n Instagram = 'instagram',\n InstagramStories = 'instagramstories',\n Googleplus = 'googleplus',\n Email = 'email',\n Pinterest = 'pinterest',\n Linkedin = 'linkedin',\n Sms = 'sms',\n Telegram = 'telegram',\n Snapchat = 'snapchat',\n Messenger = 'messenger',\n}\n\nexport enum ShareAsset {\n BackgroundImage = 'shareBackgroundImage',\n BackgroundVideo = 'shareBackgroundVideo',\n StickerImage = 'shareStickerImage',\n BackgroundAndStickerImage = 'shareBackgroundAndStickerImage',\n}\n\nexport interface LinkMetadata {\n originalUrl?: string;\n url?: string;\n title?: string;\n icon?: string;\n image?: string;\n remoteVideoUrl?: string;\n video?: string;\n}\n\nexport interface ActivityItem {\n type: 'text' | 'url';\n content: string;\n}\n\nexport interface ActivityItemSource {\n placeholderItem: ActivityItem;\n item: { [key in ActivityType]?: ActivityItem | null | undefined };\n subject?: { [key in ActivityType]?: string };\n dataTypeIdentifier?: { [key in ActivityType]?: string };\n thumbnailImage?: { [key in ActivityType]?: string };\n linkMetadata?: LinkMetadata;\n}\n\ninterface BaseShareSingleOptions {\n url?: string;\n type?: string;\n filename?: string;\n message?: string;\n title?: string;\n subject?: string;\n email?: string;\n recipient?: string;\n social: Exclude<Social, Social.FacebookStories | Social.InstagramStories>;\n forceDialog?: boolean;\n}\n\ninterface BaseSocialStoriesShareSingleOptions extends Omit<BaseShareSingleOptions, 'social'> {\n backgroundImage?: string;\n stickerImage?: string;\n backgroundBottomColor?: string;\n backgroundTopColor?: string;\n attributionURL?: string;\n backgroundVideo?: string;\n}\n\nexport interface InstagramStoriesShareSingleOptions extends BaseSocialStoriesShareSingleOptions {\n social: Social.InstagramStories;\n}\n\nexport interface FacebookStoriesShareSingleOptions extends BaseSocialStoriesShareSingleOptions {\n social: Social.FacebookStories;\n method: Exclude<ShareAsset, ShareAsset.BackgroundVideo>;\n appId: string;\n}\n\nexport type ShareSingleOptions =\n | BaseShareSingleOptions\n | InstagramStoriesShareSingleOptions\n | FacebookStoriesShareSingleOptions;\n\nexport interface ShareOptions {\n message?: string;\n title?: string;\n url?: string;\n urls?: string[];\n type?: string;\n subject?: string;\n email?: string;\n recipient?: string;\n excludedActivityTypes?: ActivityType[];\n failOnCancel?: boolean;\n showAppsToView?: boolean;\n filename?: string;\n filenames?: string[];\n saveToFiles?: boolean;\n activityItemSources?: ActivityItemSource[];\n}\n\nexport type ActivityType =\n | 'default'\n | 'addToReadingList'\n | 'airDrop'\n | 'assignToContact'\n | 'copyToPasteBoard'\n | 'mail'\n | 'message'\n | 'openInIBooks' // iOS 9 or later\n | 'postToFacebook'\n | 'postToFlickr'\n | 'postToTencentWeibo'\n | 'postToTwitter'\n | 'postToVimeo'\n | 'postToWeibo'\n | 'print'\n | 'saveToCameraRoll'\n | 'markupAsPDF'; // iOS 11 or late\n\nexport interface ShareSingleResult {\n message: string;\n success: boolean;\n}\n\nexport interface ShareOpenResult extends ShareSingleResult {\n dismissedAction?: boolean;\n}\nexport interface IsPackageInstalledResult {\n message: string;\n isInstalled: boolean;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["react-native.d.ts"],"names":[],"mappings":"AAAA,OAAO,cAAP","sourcesContent":["import 'react-native';\n\nimport { ShareAsset, ShareSingleOptions, ShareOptions, Social } from '../types';\n\ndeclare module 'react-native' {\n export interface RNShare {\n FACEBOOK: Social.Facebook;\n FACEBOOKSTORIES: Social.FacebookStories;\n PAGESMANAGER: Social.Pagesmanager;\n TWITTER: Social.Twitter;\n WHATSAPP: Social.Whatsapp;\n WHATSAPPBUSINESS: Social.Whatsappbusiness;\n INSTAGRAM: Social.Instagram;\n INSTAGRAMSTORIES: Social.InstagramStories;\n GOOGLEPLUS: Social.Googleplus;\n EMAIL: Social.Email;\n PINTEREST: Social.Pinterest;\n LINKEDIN: Social.Linkedin;\n SMS: Social.Sms;\n TELEGRAM: Social.Telegram;\n\n SHARE_BACKGROUND_IMAGE: ShareAsset.BackgroundImage;\n SHARE_BACKGROUND_VIDEO: ShareAsset.BackgroundVideo;\n SHARE_STICKER_IMAGE: ShareAsset.StickerImage;\n SHARE_BACKGROUND_AND_STICKER_IMAGE: ShareAsset.BackgroundAndStickerImage;\n\n open(\n options: ShareOptions,\n errorCallback: (error: string) => void,\n successCallback: (success: boolean, message: string) => void,\n ): Promise<void>;\n\n shareSingle(\n options: ShareSingleOptions,\n errorCallback: (error: string) => void,\n successCallback: (success: boolean, message: string) => void,\n ): Promise<void>;\n\n isPackageInstalled(\n packageName: string,\n errorCallback: (error: string) => void,\n successCallback: (isInstalled: boolean) => void,\n ): Promise<void>;\n\n isBase64File(\n url: string,\n errorCallback: (error: string) => void,\n successCallback: (isBase64: boolean) => void,\n ): Promise<void>;\n }\n\n interface NativeModulesStatic {\n RNShare: RNShare;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["react-native.d.ts"],"names":[],"mappings":"AAAA,OAAO,cAAP","sourcesContent":["import 'react-native';\n\nimport { ShareAsset, ShareSingleOptions, ShareOptions, Social } from '../types';\n\ndeclare module 'react-native' {\n export interface RNShare {\n FACEBOOK: Social.Facebook;\n FACEBOOKSTORIES: Social.FacebookStories;\n PAGESMANAGER: Social.Pagesmanager;\n TWITTER: Social.Twitter;\n WHATSAPP: Social.Whatsapp;\n WHATSAPPBUSINESS: Social.Whatsappbusiness;\n INSTAGRAM: Social.Instagram;\n INSTAGRAMSTORIES: Social.InstagramStories;\n GOOGLEPLUS: Social.Googleplus;\n EMAIL: Social.Email;\n PINTEREST: Social.Pinterest;\n LINKEDIN: Social.Linkedin;\n SMS: Social.Sms;\n TELEGRAM: Social.Telegram;\n SNAPCHAT: Social.Snapchat;\n MESSENGER: Social.Messenger;\n\n SHARE_BACKGROUND_IMAGE: ShareAsset.BackgroundImage;\n SHARE_BACKGROUND_VIDEO: ShareAsset.BackgroundVideo;\n SHARE_STICKER_IMAGE: ShareAsset.StickerImage;\n SHARE_BACKGROUND_AND_STICKER_IMAGE: ShareAsset.BackgroundAndStickerImage;\n\n open(\n options: ShareOptions,\n errorCallback: (error: string) => void,\n successCallback: (success: boolean, message: string) => void,\n ): Promise<void>;\n\n shareSingle(\n options: ShareSingleOptions,\n errorCallback: (error: string) => void,\n successCallback: (success: boolean, message: string) => void,\n ): Promise<void>;\n\n isPackageInstalled(\n packageName: string,\n errorCallback: (error: string) => void,\n successCallback: (isInstalled: boolean) => void,\n ): Promise<void>;\n\n isBase64File(\n url: string,\n errorCallback: (error: string) => void,\n successCallback: (isBase64: boolean) => void,\n ): Promise<void>;\n }\n\n interface NativeModulesStatic {\n RNShare: RNShare;\n }\n}\n"]}
|
|
@@ -23,11 +23,8 @@ declare const RNShare: {
|
|
|
23
23
|
readonly LINKEDIN: Social.Linkedin;
|
|
24
24
|
readonly SMS: Social.Sms;
|
|
25
25
|
readonly TELEGRAM: Social.Telegram;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
readonly SHARE_BACKGROUND_IMAGE: ShareAsset.BackgroundImage;
|
|
29
|
-
readonly SHARE_STICKER_IMAGE: ShareAsset.StickerImage;
|
|
30
|
-
readonly SHARE_BACKGROUND_AND_STICKER_IMAGE: ShareAsset.BackgroundAndStickerImage;
|
|
26
|
+
readonly MESSENGER: Social.Messenger;
|
|
27
|
+
readonly SNAPCHAT: Social.Snapchat;
|
|
31
28
|
};
|
|
32
29
|
readonly open: (options: ShareOptions) => Promise<ShareOpenResult | never>;
|
|
33
30
|
readonly shareSingle: (options: ShareSingleOptions) => Promise<ShareSingleResult | never>;
|
|
@@ -12,7 +12,9 @@ export declare enum Social {
|
|
|
12
12
|
Pinterest = "pinterest",
|
|
13
13
|
Linkedin = "linkedin",
|
|
14
14
|
Sms = "sms",
|
|
15
|
-
Telegram = "telegram"
|
|
15
|
+
Telegram = "telegram",
|
|
16
|
+
Snapchat = "snapchat",
|
|
17
|
+
Messenger = "messenger"
|
|
16
18
|
}
|
|
17
19
|
export declare enum ShareAsset {
|
|
18
20
|
BackgroundImage = "shareBackgroundImage",
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -37,15 +37,8 @@ const RNShare = {
|
|
|
37
37
|
LINKEDIN: NativeModules.RNShare.LINKEDIN || Social.Linkedin,
|
|
38
38
|
SMS: NativeModules.RNShare.SMS || Social.Sms,
|
|
39
39
|
TELEGRAM: NativeModules.RNShare.TELEGRAM || Social.Telegram,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
FacebookStories: {
|
|
43
|
-
SHARE_BACKGROUND_IMAGE:
|
|
44
|
-
NativeModules.RNShare.SHARE_BACKGROUND_IMAGE || ShareAsset.BackgroundImage,
|
|
45
|
-
SHARE_STICKER_IMAGE: NativeModules.RNShare.SHARE_STICKER_IMAGE || ShareAsset.StickerImage,
|
|
46
|
-
SHARE_BACKGROUND_AND_STICKER_IMAGE:
|
|
47
|
-
NativeModules.RNShare.SHARE_BACKGROUND_AND_STICKER_IMAGE ||
|
|
48
|
-
ShareAsset.BackgroundAndStickerImage,
|
|
40
|
+
MESSENGER: NativeModules.RNShare.MESSENGER || Social.Messenger,
|
|
41
|
+
SNAPCHAT: NativeModules.RNShare.SNAPCHAT || Social.Snapchat,
|
|
49
42
|
},
|
|
50
43
|
|
|
51
44
|
open(options: ShareOptions): Promise<ShareOpenResult | never> {
|
package/src/types.ts
CHANGED
|
@@ -18,6 +18,8 @@ declare module 'react-native' {
|
|
|
18
18
|
LINKEDIN: Social.Linkedin;
|
|
19
19
|
SMS: Social.Sms;
|
|
20
20
|
TELEGRAM: Social.Telegram;
|
|
21
|
+
SNAPCHAT: Social.Snapchat;
|
|
22
|
+
MESSENGER: Social.Messenger;
|
|
21
23
|
|
|
22
24
|
SHARE_BACKGROUND_IMAGE: ShareAsset.BackgroundImage;
|
|
23
25
|
SHARE_BACKGROUND_VIDEO: ShareAsset.BackgroundVideo;
|