react-native-share 7.4.0 → 7.6.0

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.
@@ -36,6 +36,7 @@ import cl.json.social.SnapChatShare;
36
36
  import cl.json.social.SMSShare;
37
37
  import cl.json.social.MessengerShare;
38
38
  import cl.json.social.LinkedinShare;
39
+ import cl.json.social.ViberShare;
39
40
 
40
41
  public class RNShareModule extends ReactContextBaseJavaModule implements ActivityEventListener {
41
42
 
@@ -80,7 +81,8 @@ public class RNShareModule extends ReactContextBaseJavaModule implements Activit
80
81
  snapchat,
81
82
  sms,
82
83
  linkedin,
83
- telegram;
84
+ telegram,
85
+ viber;
84
86
 
85
87
 
86
88
  public static ShareIntent getShareClass(String social, ReactApplicationContext reactContext) {
@@ -120,6 +122,8 @@ public class RNShareModule extends ReactContextBaseJavaModule implements Activit
120
122
  return new LinkedinShare(reactContext);
121
123
  case telegram:
122
124
  return new TelegramShare(reactContext);
125
+ case viber:
126
+ return new ViberShare(reactContext);
123
127
  default:
124
128
  return null;
125
129
  }
@@ -0,0 +1,41 @@
1
+ package cl.json.social;
2
+
3
+ import android.content.ActivityNotFoundException;
4
+
5
+ import com.facebook.react.bridge.ReactApplicationContext;
6
+ import com.facebook.react.bridge.ReadableMap;
7
+
8
+ /**
9
+ * Created by Jacob on 06-06-2022.
10
+ */
11
+ public class ViberShare extends SingleShareIntent {
12
+
13
+ private static final String PACKAGE = "com.viber.voip";
14
+
15
+ private static final String PLAY_STORE_LINK = "market://details?id=com.viber.voip";
16
+
17
+ public ViberShare(ReactApplicationContext reactContext) {
18
+ super(reactContext);
19
+ }
20
+
21
+ @Override
22
+ public void open(ReadableMap options) throws ActivityNotFoundException {
23
+ super.open(options);
24
+ // extra params here
25
+ this.openIntentChooser();
26
+ }
27
+ @Override
28
+ protected String getPackage() {
29
+ return PACKAGE;
30
+ }
31
+
32
+ @Override
33
+ protected String getDefaultWebLink() {
34
+ return null;
35
+ }
36
+
37
+ @Override
38
+ protected String getPlayStoreLink() {
39
+ return PLAY_STORE_LINK;
40
+ }
41
+ }
package/ios/EmailShare.h CHANGED
@@ -8,46 +8,16 @@
8
8
 
9
9
 
10
10
  #import <UIKit/UIKit.h>
11
- // import RCTConvert
12
- #if __has_include(<React/RCTConvert.h>)
11
+ // import RCTConvertttt
13
12
  #import <React/RCTConvert.h>
14
- #elif __has_include("RCTConvert.h")
15
- #import "RCTConvert.h"
16
- #else
17
- #import "React/RCTConvert.h" // Required when used as a Pod in a Swift project
18
- #endif
19
13
  // import RCTBridge
20
- #if __has_include(<React/RCTBridge.h>)
21
14
  #import <React/RCTBridge.h>
22
- #elif __has_include("RCTBridge.h")
23
- #import "RCTBridge.h"
24
- #else
25
- #import "React/RCTBridge.h" // Required when used as a Pod in a Swift project
26
- #endif
27
15
  // import RCTUIManager
28
- #if __has_include(<React/RCTUIManager.h>)
29
16
  #import <React/RCTUIManager.h>
30
- #elif __has_include("RCTUIManager.h")
31
- #import "RCTUIManager.h"
32
- #else
33
- #import "React/RCTUIManager.h" // Required when used as a Pod in a Swift project
34
- #endif
35
17
  // import RCTLog
36
- #if __has_include(<React/RCTLog.h>)
37
18
  #import <React/RCTLog.h>
38
- #elif __has_include("RCTLog.h")
39
- #import "RCTLog.h"
40
- #else
41
- #import "React/RCTLog.h" // Required when used as a Pod in a Swift project
42
- #endif
43
19
  // import RCTUtils
44
- #if __has_include(<React/RCTUtils.h>)
45
20
  #import <React/RCTUtils.h>
46
- #elif __has_include("RCTUtils.h")
47
- #import "RCTUtils.h"
48
- #else
49
- #import "React/RCTUtils.h" // Required when used as a Pod in a Swift project
50
- #endif
51
21
  #import <MessageUI/MessageUI.h>
52
22
  @interface EmailShare : NSObject <MFMailComposeViewControllerDelegate>
53
23
 
package/ios/EmailShare.m CHANGED
@@ -52,63 +52,73 @@
52
52
  [mc setSubject:subject];
53
53
  [mc setMessageBody:message isHTML:NO];
54
54
 
55
- if ([options objectForKey:@"url"] && [options objectForKey:@"url"] != [NSNull null]) {
56
-
57
- NSURL *URL = [RCTConvert NSURL:options[@"url"]];
58
-
59
- if (URL) {
60
- BOOL isDataScheme = [URL.scheme.lowercaseString isEqualToString:@"data"];
61
-
62
- if (URL.fileURL || isDataScheme) {
63
- NSError *error;
64
- NSData *data = [NSData dataWithContentsOfURL:URL
65
- options:(NSDataReadingOptions)0
66
- error:&error];
67
- if (!data) {
68
- failureCallback(error);
69
- return;
70
- }
71
-
72
- NSString *mime = @"application/octet-stream";
73
- NSString *filename = @"file";
74
-
75
- if([options objectForKey:@"type"]){
76
- mime = [RCTConvert NSString:options[@"type"]];
77
- }
78
-
79
- if([options objectForKey:@"filename"]){
80
- filename = [RCTConvert NSString:options[@"filename"]];
81
-
82
-
83
- // add extension just like Android for consistency
84
- // file name should not include extension
85
- if(URL.isFileURL){
86
- NSString *ext = [[URL.absoluteString componentsSeparatedByString:@"."] lastObject];
87
-
88
- filename = [filename stringByAppendingString: [@"." stringByAppendingString:ext]];
55
+ if ([options objectForKey:@"urls"] && [options objectForKey:@"urls"] != [NSNull null]) {
56
+ NSArray *urlsArray = options[@"urls"];
57
+
58
+ for (int i=0; i<urlsArray.count; i++) {
59
+ NSURL *URL = [RCTConvert NSURL:urlsArray[i]];
60
+
61
+ if (URL) {
62
+ BOOL isDataScheme = [URL.scheme.lowercaseString isEqualToString:@"data"];
63
+
64
+ if (URL.fileURL || isDataScheme) {
65
+ NSError *error;
66
+ NSData *data = [NSData dataWithContentsOfURL:URL
67
+ options:(NSDataReadingOptions)0
68
+ error:&error];
69
+ if (!data) {
70
+ failureCallback(error);
71
+ return;
89
72
  }
90
- else if (isDataScheme){
91
- NSString *ext = [RNShareUtils getExtensionFromBase64: URL.absoluteString];
92
-
93
- if(ext){
94
- filename = [filename stringByAppendingString: [@"." stringByAppendingString:ext]];
73
+
74
+ NSString *mime = @"application/octet-stream";
75
+ NSString *filename = @"file";
76
+
77
+ if([options objectForKey:@"type"]){
78
+ if(urlsArray.count == 1){
79
+ mime = [RCTConvert NSString:options[@"type"]];
80
+ } else {
81
+ RCTLogWarn(@"key 'type' is ignored when it has more than one url");
95
82
  }
96
83
  }
97
- }
98
- else if(URL.fileURL){
99
- NSArray *parts = [URL.absoluteString componentsSeparatedByString:@"/"];
100
- filename = [parts lastObject];
101
- }
102
-
103
- [mc addAttachmentData:data mimeType:mime fileName:filename];
104
84
 
105
- } else {
106
- // if not a file, just append it to message
107
- message = [message stringByAppendingString: [@" " stringByAppendingString: [RCTConvert NSString:options[@"url"]]] ];
108
- [mc setMessageBody:message isHTML:NO];
85
+ if([options objectForKey:@"filename"]){
86
+ if(urlsArray.count == 1){
87
+ filename = [RCTConvert NSString:options[@"filename"]];
88
+
89
+
90
+ // add extension just like Android for consistency
91
+ // file name should not include extension
92
+ if(URL.isFileURL){
93
+ NSString *ext = [[URL.absoluteString componentsSeparatedByString:@"."] lastObject];
94
+
95
+ filename = [filename stringByAppendingString: [@"." stringByAppendingString:ext]];
96
+ }
97
+ else if (isDataScheme){
98
+ NSString *ext = [RNShareUtils getExtensionFromBase64: URL.absoluteString];
99
+
100
+ if(ext){
101
+ filename = [filename stringByAppendingString: [@"." stringByAppendingString:ext]];
102
+ }
103
+ }
104
+ } else {
105
+ RCTLogWarn(@"key 'filename' is ignored when it has more than one url");
106
+ }
107
+ }
108
+ else if(URL.fileURL){
109
+ NSArray *parts = [URL.absoluteString componentsSeparatedByString:@"/"];
110
+ filename = [parts lastObject];
111
+ }
112
+
113
+ [mc addAttachmentData:data mimeType:mime fileName:filename];
114
+
115
+ } else {
116
+ // if not a file, just append it to message
117
+ message = [message stringByAppendingString: [@" " stringByAppendingString: [RCTConvert NSString:urlsArray[i]]] ];
118
+ [mc setMessageBody:message isHTML:NO];
119
+ }
109
120
  }
110
121
  }
111
-
112
122
  }
113
123
 
114
124
  dispatch_async(dispatch_get_main_queue(), ^{
@@ -9,45 +9,15 @@
9
9
 
10
10
  #import <UIKit/UIKit.h>
11
11
  // import RCTConvert
12
- #if __has_include(<React/RCTConvert.h>)
13
12
  #import <React/RCTConvert.h>
14
- #elif __has_include("RCTConvert.h")
15
- #import "RCTConvert.h"
16
- #else
17
- #import "React/RCTConvert.h" // Required when used as a Pod in a Swift project
18
- #endif
19
13
  // import RCTBridge
20
- #if __has_include(<React/RCTBridge.h>)
21
14
  #import <React/RCTBridge.h>
22
- #elif __has_include("RCTBridge.h")
23
- #import "RCTBridge.h"
24
- #else
25
- #import "React/RCTBridge.h" // Required when used as a Pod in a Swift project
26
- #endif
27
15
  // import RCTUIManager
28
- #if __has_include(<React/RCTUIManager.h>)
29
16
  #import <React/RCTUIManager.h>
30
- #elif __has_include("RCTUIManager.h")
31
- #import "RCTUIManager.h"
32
- #else
33
- #import "React/RCTUIManager.h" // Required when used as a Pod in a Swift project
34
- #endif
35
17
  // import RCTLog
36
- #if __has_include(<React/RCTLog.h>)
37
18
  #import <React/RCTLog.h>
38
- #elif __has_include("RCTLog.h")
39
- #import "RCTLog.h"
40
- #else
41
- #import "React/RCTLog.h" // Required when used as a Pod in a Swift project
42
- #endif
43
19
  // import RCTUtils
44
- #if __has_include(<React/RCTUtils.h>)
45
20
  #import <React/RCTUtils.h>
46
- #elif __has_include("RCTUtils.h")
47
- #import "RCTUtils.h"
48
- #else
49
- #import "React/RCTUtils.h" // Required when used as a Pod in a Swift project
50
- #endif
51
21
  @interface FacebookStories : NSObject <RCTBridgeModule>
52
22
 
53
23
  - (void *) shareSingle:(NSDictionary *)options failureCallback:(RCTResponseErrorBlock)failureCallback successCallback:(RCTResponseSenderBlock)successCallback;
@@ -8,13 +8,7 @@
8
8
  //
9
9
 
10
10
  // import RCTLog
11
- #if __has_include(<React/RCTLog.h>)
12
11
  #import <React/RCTLog.h>
13
- #elif __has_include("RCTLog.h")
14
- #import "RCTLog.h"
15
- #else
16
- #import "React/RCTLog.h" // Required when used as a Pod in a Swift project
17
- #endif
18
12
 
19
13
  #import "FacebookStories.h"
20
14
 
@@ -10,45 +10,15 @@
10
10
  #import <Social/Social.h>
11
11
  #import <UIKit/UIKit.h>
12
12
  // import RCTConvert
13
- #if __has_include(<React/RCTConvert.h>)
14
13
  #import <React/RCTConvert.h>
15
- #elif __has_include("RCTConvert.h")
16
- #import "RCTConvert.h"
17
- #else
18
- #import "React/RCTConvert.h" // Required when used as a Pod in a Swift project
19
- #endif
20
14
  // import RCTBridge
21
- #if __has_include(<React/RCTBridge.h>)
22
15
  #import <React/RCTBridge.h>
23
- #elif __has_include("RCTBridge.h")
24
- #import "RCTBridge.h"
25
- #else
26
- #import "React/RCTBridge.h" // Required when used as a Pod in a Swift project
27
- #endif
28
16
  // import RCTUIManager
29
- #if __has_include(<React/RCTUIManager.h>)
30
17
  #import <React/RCTUIManager.h>
31
- #elif __has_include("RCTUIManager.h")
32
- #import "RCTUIManager.h"
33
- #else
34
- #import "React/RCTUIManager.h" // Required when used as a Pod in a Swift project
35
- #endif
36
18
  // import RCTLog
37
- #if __has_include(<React/RCTLog.h>)
38
19
  #import <React/RCTLog.h>
39
- #elif __has_include("RCTLog.h")
40
- #import "RCTLog.h"
41
- #else
42
- #import "React/RCTLog.h" // Required when used as a Pod in a Swift project
43
- #endif
44
20
  // import RCTUtils
45
- #if __has_include(<React/RCTUtils.h>)
46
21
  #import <React/RCTUtils.h>
47
- #elif __has_include("RCTUtils.h")
48
- #import "RCTUtils.h"
49
- #else
50
- #import "React/RCTUtils.h" // Required when used as a Pod in a Swift project
51
- #endif
52
22
  @interface GenericShare : NSObject <RCTBridgeModule>
53
23
 
54
24
  - (void) shareSingle:(NSDictionary *)options failureCallback:(RCTResponseErrorBlock)failureCallback successCallback:(RCTResponseSenderBlock)successCallback serviceType:(NSString*)serviceType
@@ -7,45 +7,15 @@
7
7
  //
8
8
  #import <UIKit/UIKit.h>
9
9
  // import RCTConvert
10
- #if __has_include(<React/RCTConvert.h>)
11
10
  #import <React/RCTConvert.h>
12
- #elif __has_include("RCTConvert.h")
13
- #import "RCTConvert.h"
14
- #else
15
- #import "React/RCTConvert.h" // Required when used as a Pod in a Swift project
16
- #endif
17
11
  // import RCTBridge
18
- #if __has_include(<React/RCTBridge.h>)
19
12
  #import <React/RCTBridge.h>
20
- #elif __has_include("RCTBridge.h")
21
- #import "RCTBridge.h"
22
- #else
23
- #import "React/RCTBridge.h" // Required when used as a Pod in a Swift project
24
- #endif
25
13
  // import RCTUIManager
26
- #if __has_include(<React/RCTUIManager.h>)
27
14
  #import <React/RCTUIManager.h>
28
- #elif __has_include("RCTUIManager.h")
29
- #import "RCTUIManager.h"
30
- #else
31
- #import "React/RCTUIManager.h" // Required when used as a Pod in a Swift project
32
- #endif
33
15
  // import RCTLog
34
- #if __has_include(<React/RCTLog.h>)
35
16
  #import <React/RCTLog.h>
36
- #elif __has_include("RCTLog.h")
37
- #import "RCTLog.h"
38
- #else
39
- #import "React/RCTLog.h" // Required when used as a Pod in a Swift project
40
- #endif
41
17
  // import RCTUtils
42
- #if __has_include(<React/RCTUtils.h>)
43
18
  #import <React/RCTUtils.h>
44
- #elif __has_include("RCTUtils.h")
45
- #import "RCTUtils.h"
46
- #else
47
- #import "React/RCTUtils.h" // Required when used as a Pod in a Swift project
48
- #endif
49
19
  @interface GooglePlusShare : NSObject <RCTBridgeModule>
50
20
 
51
21
  - (void) shareSingle:(NSDictionary *)options failureCallback:(RCTResponseErrorBlock)failureCallback successCallback:(RCTResponseSenderBlock)successCallback;
@@ -7,45 +7,15 @@
7
7
 
8
8
  #import <UIKit/UIKit.h>
9
9
  // import RCTConvert
10
- #if __has_include(<React/RCTConvert.h>)
11
10
  #import <React/RCTConvert.h>
12
- #elif __has_include("RCTConvert.h")
13
- #import "RCTConvert.h"
14
- #else
15
- #import "React/RCTConvert.h" // Required when used as a Pod in a Swift project
16
- #endif
17
11
  // import RCTBridge
18
- #if __has_include(<React/RCTBridge.h>)
19
12
  #import <React/RCTBridge.h>
20
- #elif __has_include("RCTBridge.h")
21
- #import "RCTBridge.h"
22
- #else
23
- #import "React/RCTBridge.h" // Required when used as a Pod in a Swift project
24
- #endif
25
13
  // import RCTUIManager
26
- #if __has_include(<React/RCTUIManager.h>)
27
14
  #import <React/RCTUIManager.h>
28
- #elif __has_include("RCTUIManager.h")
29
- #import "RCTUIManager.h"
30
- #else
31
- #import "React/RCTUIManager.h" // Required when used as a Pod in a Swift project
32
- #endif
33
15
  // import RCTLog
34
- #if __has_include(<React/RCTLog.h>)
35
16
  #import <React/RCTLog.h>
36
- #elif __has_include("RCTLog.h")
37
- #import "RCTLog.h"
38
- #else
39
- #import "React/RCTLog.h" // Required when used as a Pod in a Swift project
40
- #endif
41
17
  // import RCTUtils
42
- #if __has_include(<React/RCTUtils.h>)
43
18
  #import <React/RCTUtils.h>
44
- #elif __has_include("RCTUtils.h")
45
- #import "RCTUtils.h"
46
- #else
47
- #import "React/RCTUtils.h" // Required when used as a Pod in a Swift project
48
- #endif
49
19
  @interface InstagramShare : NSObject <RCTBridgeModule>
50
20
 
51
21
  - (void) shareSingle:(NSDictionary *)options failureCallback:(RCTResponseErrorBlock)failureCallback successCallback:(RCTResponseSenderBlock)successCallback;
@@ -8,45 +8,15 @@
8
8
 
9
9
  #import <UIKit/UIKit.h>
10
10
  // import RCTConvert
11
- #if __has_include(<React/RCTConvert.h>)
12
11
  #import <React/RCTConvert.h>
13
- #elif __has_include("RCTConvert.h")
14
- #import "RCTConvert.h"
15
- #else
16
- #import "React/RCTConvert.h" // Required when used as a Pod in a Swift project
17
- #endif
18
12
  // import RCTBridge
19
- #if __has_include(<React/RCTBridge.h>)
20
13
  #import <React/RCTBridge.h>
21
- #elif __has_include("RCTBridge.h")
22
- #import "RCTBridge.h"
23
- #else
24
- #import "React/RCTBridge.h" // Required when used as a Pod in a Swift project
25
- #endif
26
14
  // import RCTUIManager
27
- #if __has_include(<React/RCTUIManager.h>)
28
15
  #import <React/RCTUIManager.h>
29
- #elif __has_include("RCTUIManager.h")
30
- #import "RCTUIManager.h"
31
- #else
32
- #import "React/RCTUIManager.h" // Required when used as a Pod in a Swift project
33
- #endif
34
16
  // import RCTLog
35
- #if __has_include(<React/RCTLog.h>)
36
17
  #import <React/RCTLog.h>
37
- #elif __has_include("RCTLog.h")
38
- #import "RCTLog.h"
39
- #else
40
- #import "React/RCTLog.h" // Required when used as a Pod in a Swift project
41
- #endif
42
18
  // import RCTUtils
43
- #if __has_include(<React/RCTUtils.h>)
44
19
  #import <React/RCTUtils.h>
45
- #elif __has_include("RCTUtils.h")
46
- #import "RCTUtils.h"
47
- #else
48
- #import "React/RCTUtils.h" // Required when used as a Pod in a Swift project
49
- #endif
50
20
  @interface InstagramStories : NSObject <RCTBridgeModule>
51
21
 
52
22
  - (void *) shareSingle:(NSDictionary *)options failureCallback:(RCTResponseErrorBlock)failureCallback successCallback:(RCTResponseSenderBlock)successCallback;
@@ -7,13 +7,7 @@
7
7
  //
8
8
 
9
9
  // import RCTLog
10
- #if __has_include(<React/RCTLog.h>)
11
10
  #import <React/RCTLog.h>
12
- #elif __has_include("RCTLog.h")
13
- #import "RCTLog.h"
14
- #else
15
- #import "React/RCTLog.h" // Required when used as a Pod in a Swift project
16
- #endif
17
11
 
18
12
  #import "InstagramStories.h"
19
13
 
package/ios/RNShare.h CHANGED
@@ -1,12 +1,6 @@
1
1
  @import UIKit;
2
2
  // import RCTBridgeModule
3
- #if __has_include(<React/RCTBridgeModule.h>)
4
3
  #import <React/RCTBridgeModule.h>
5
- #elif __has_include("RCTBridgeModule.h")
6
- #import "RCTBridgeModule.h"
7
- #else
8
- #import "React/RCTBridgeModule.h" // Required when used as a Pod in a Swift project
9
- #endif
10
4
 
11
5
  @interface RNShare : NSObject <RCTBridgeModule, UIDocumentPickerDelegate>
12
6
 
package/ios/RNShare.m CHANGED
@@ -1,45 +1,15 @@
1
1
  #import <MessageUI/MessageUI.h>
2
2
  #import "RNShare.h"
3
3
  // import RCTConvert
4
- #if __has_include(<React/RCTConvert.h>)
5
4
  #import <React/RCTConvert.h>
6
- #elif __has_include("RCTConvert.h")
7
- #import "RCTConvert.h"
8
- #else
9
- #import "React/RCTConvert.h" // Required when used as a Pod in a Swift project
10
- #endif
11
5
  // import RCTLog
12
- #if __has_include(<React/RCTLog.h>)
13
6
  #import <React/RCTLog.h>
14
- #elif __has_include("RCTLog.h")
15
- #import "RCTLog.h"
16
- #else
17
- #import "React/RCTLog.h" // Required when used as a Pod in a Swift project
18
- #endif
19
7
  // import RCTUtils
20
- #if __has_include(<React/RCTUtils.h>)
21
8
  #import <React/RCTUtils.h>
22
- #elif __has_include("RCTUtils.h")
23
- #import "RCTUtils.h"
24
- #else
25
- #import "React/RCTUtils.h" // Required when used as a Pod in a Swift project
26
- #endif
27
9
  // import RCTBridge
28
- #if __has_include(<React/RCTBridge.h>)
29
10
  #import <React/RCTBridge.h>
30
- #elif __has_include("RCTBridge.h")
31
- #import "RCTBridge.h"
32
- #else
33
- #import "React/RCTBridge.h" // Required when used as a Pod in a Swift project
34
- #endif
35
11
  // import RCTBridge
36
- #if __has_include(<React/RCTUIManager.h>)
37
12
  #import <React/RCTUIManager.h>
38
- #elif __has_include("RCTUIManager.h")
39
- #import "RCTUIManager.h"
40
- #else
41
- #import "React/RCTUIManager.h" // Required when used as a Pod in a Swift project
42
- #endif
43
13
  #import "GenericShare.h"
44
14
  #import "WhatsAppShare.h"
45
15
  #import "InstagramShare.h"
@@ -48,6 +18,7 @@
48
18
  #import "GooglePlusShare.h"
49
19
  #import "EmailShare.h"
50
20
  #import "TelegramShare.h"
21
+ #import "ViberShare.h"
51
22
  #import "RNShareActivityItemSource.h"
52
23
  #import "RNShareUtils.h"
53
24
 
@@ -113,6 +84,7 @@ RCT_EXPORT_MODULE()
113
84
  @"INSTAGRAMSTORIES": @"instagramstories",
114
85
  @"TELEGRAM": @"telegram",
115
86
  @"EMAIL": @"email",
87
+ @"VIBER": @"viber",
116
88
 
117
89
  @"SHARE_BACKGROUND_IMAGE": @"shareBackgroundImage",
118
90
  @"SHARE_BACKGROUND_VIDEO": @"shareBackgroundVideo",
@@ -173,7 +145,11 @@ RCT_EXPORT_METHOD(shareSingle:(NSDictionary *)options
173
145
  } else if([social isEqualToString:@"email"]) {
174
146
  NSLog(@"TRY OPEN email");
175
147
  [shareCtl shareSingle:options failureCallback: failureCallback successCallback: successCallback];
176
- }
148
+ } else if([social isEqualToString:@"viber"]) {
149
+ NSLog(@"TRY OPEN viber");
150
+ ViberShare *shareCtl = [[ViberShare alloc] init];
151
+ [shareCtl shareSingle:options failureCallback: failureCallback successCallback: successCallback];
152
+ }
177
153
  } else {
178
154
  RCTLogError(@"key 'social' missing in options");
179
155
  return;
@@ -5,22 +5,10 @@
5
5
  #endif
6
6
 
7
7
  // import RCTBridgeModule
8
- #if __has_include(<React/RCTBridgeModule.h>)
9
8
  #import <React/RCTBridgeModule.h>
10
- #elif __has_include("RCTBridgeModule.h")
11
- #import "RCTBridgeModule.h"
12
- #else
13
- #import "React/RCTBridgeModule.h" // Required when used as a Pod in a Swift project
14
- #endif
15
9
 
16
10
  // import RCTConvert
17
- #if __has_include(<React/RCTConvert.h>)
18
11
  #import <React/RCTConvert.h>
19
- #elif __has_include("RCTConvert.h")
20
- #import "RCTConvert.h"
21
- #else
22
- #import "React/RCTConvert.h" // Required when used as a Pod in a Swift project
23
- #endif
24
12
 
25
13
  @implementation RNShareActivityItemSource {
26
14
  id placeholderItem;
@@ -7,45 +7,15 @@
7
7
 
8
8
  #import <UIKit/UIKit.h>
9
9
  // import RCTConvert
10
- #if __has_include(<React/RCTConvert.h>)
11
10
  #import <React/RCTConvert.h>
12
- #elif __has_include("RCTConvert.h")
13
- #import "RCTConvert.h"
14
- #else
15
- #import "React/RCTConvert.h" // Required when used as a Pod in a Swift project
16
- #endif
17
11
  // import RCTBridge
18
- #if __has_include(<React/RCTBridge.h>)
19
12
  #import <React/RCTBridge.h>
20
- #elif __has_include("RCTBridge.h")
21
- #import "RCTBridge.h"
22
- #else
23
- #import "React/RCTBridge.h" // Required when used as a Pod in a Swift project
24
- #endif
25
13
  // import RCTUIManager
26
- #if __has_include(<React/RCTUIManager.h>)
27
14
  #import <React/RCTUIManager.h>
28
- #elif __has_include("RCTUIManager.h")
29
- #import "RCTUIManager.h"
30
- #else
31
- #import "React/RCTUIManager.h" // Required when used as a Pod in a Swift project
32
- #endif
33
15
  // import RCTLog
34
- #if __has_include(<React/RCTLog.h>)
35
16
  #import <React/RCTLog.h>
36
- #elif __has_include("RCTLog.h")
37
- #import "RCTLog.h"
38
- #else
39
- #import "React/RCTLog.h" // Required when used as a Pod in a Swift project
40
- #endif
41
17
  // import RCTUtils
42
- #if __has_include(<React/RCTUtils.h>)
43
18
  #import <React/RCTUtils.h>
44
- #elif __has_include("RCTUtils.h")
45
- #import "RCTUtils.h"
46
- #else
47
- #import "React/RCTUtils.h" // Required when used as a Pod in a Swift project
48
- #endif
49
19
  @interface TelegramShare : NSObject <RCTBridgeModule>
50
20
 
51
21
  - (void) shareSingle:(NSDictionary *)options failureCallback:(RCTResponseErrorBlock)failureCallback successCallback:(RCTResponseSenderBlock)successCallback;
@@ -0,0 +1,21 @@
1
+ //
2
+ // TelegranShare.h
3
+ // RNShare
4
+ //
5
+
6
+ #import <UIKit/UIKit.h>
7
+ // import RCTConvert
8
+ #import <React/RCTConvert.h>
9
+ // import RCTBridge
10
+ #import <React/RCTBridge.h>
11
+ // import RCTUIManager
12
+ #import <React/RCTUIManager.h>
13
+ // import RCTLog
14
+ #import <React/RCTLog.h>
15
+ // import RCTUtils
16
+ #import <React/RCTUtils.h>
17
+ @interface ViberShare : NSObject <RCTBridgeModule>
18
+
19
+ - (void) shareSingle:(NSDictionary *)options failureCallback:(RCTResponseErrorBlock)failureCallback successCallback:(RCTResponseSenderBlock)successCallback;
20
+
21
+ @end
@@ -0,0 +1,46 @@
1
+ //
2
+ // ViberShare.m.m
3
+ // RNShare
4
+ //
5
+
6
+ #import "ViberShare.h"
7
+ #import <AVFoundation/AVFoundation.h>
8
+ @import Photos;
9
+
10
+ @implementation ViberShare
11
+ RCT_EXPORT_MODULE();
12
+ - (void)shareSingle:(NSDictionary *)options
13
+ failureCallback:(RCTResponseErrorBlock)failureCallback
14
+ successCallback:(RCTResponseSenderBlock)successCallback {
15
+
16
+ NSString *text = [RCTConvert NSString:options[@"message"]];
17
+ text = (NSString*)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,(CFStringRef) text, NULL,CFSTR("!*'();:@&=+$,/?%#[]"),kCFStringEncodingUTF8));
18
+
19
+ NSString *url = [RCTConvert NSString:options[@"url"]];
20
+
21
+ NSString *viberMsg = [NSString stringWithFormat:@"viber://forward?text=%@", text];
22
+ NSString *viberMsgUrl = [NSString stringWithFormat:@"viber://forward?text=%@ %@", text, url];
23
+
24
+ NSString * urlViber = url ? viberMsgUrl : viberMsg;
25
+ NSURL * shareURL = [NSURL URLWithString:urlViber];
26
+
27
+ if ([[UIApplication sharedApplication] canOpenURL: shareURL]) {
28
+ [[UIApplication sharedApplication] openURL: shareURL];
29
+ successCallback(@[]);
30
+ } else {
31
+ // Cannot open viber
32
+ NSString *stringURL = @"https://apps.apple.com/app/viber-messenger-chats-calls/id382617920";
33
+ NSURL *url = [NSURL URLWithString:stringURL];
34
+
35
+ [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {}];
36
+
37
+ NSString *errorMessage = @"Not installed";
38
+ NSDictionary *userInfo = @{NSLocalizedFailureReasonErrorKey: NSLocalizedString(errorMessage, nil)};
39
+ NSError *error = [NSError errorWithDomain:@"com.rnshare" code:1 userInfo:userInfo];
40
+
41
+ NSLog(@"%@", errorMessage);
42
+ failureCallback(error);
43
+ }
44
+ }
45
+
46
+ @end
@@ -8,45 +8,15 @@
8
8
 
9
9
  #import <UIKit/UIKit.h>
10
10
  // import RCTConvert
11
- #if __has_include(<React/RCTConvert.h>)
12
11
  #import <React/RCTConvert.h>
13
- #elif __has_include("RCTConvert.h")
14
- #import "RCTConvert.h"
15
- #else
16
- #import "React/RCTConvert.h" // Required when used as a Pod in a Swift project
17
- #endif
18
12
  // import RCTBridge
19
- #if __has_include(<React/RCTBridge.h>)
20
13
  #import <React/RCTBridge.h>
21
- #elif __has_include("RCTBridge.h")
22
- #import "RCTBridge.h"
23
- #else
24
- #import "React/RCTBridge.h" // Required when used as a Pod in a Swift project
25
- #endif
26
14
  // import RCTUIManager
27
- #if __has_include(<React/RCTUIManager.h>)
28
15
  #import <React/RCTUIManager.h>
29
- #elif __has_include("RCTUIManager.h")
30
- #import "RCTUIManager.h"
31
- #else
32
- #import "React/RCTUIManager.h" // Required when used as a Pod in a Swift project
33
- #endif
34
16
  // import RCTLog
35
- #if __has_include(<React/RCTLog.h>)
36
17
  #import <React/RCTLog.h>
37
- #elif __has_include("RCTLog.h")
38
- #import "RCTLog.h"
39
- #else
40
- #import "React/RCTLog.h" // Required when used as a Pod in a Swift project
41
- #endif
42
18
  // import RCTUtils
43
- #if __has_include(<React/RCTUtils.h>)
44
19
  #import <React/RCTUtils.h>
45
- #elif __has_include("RCTUtils.h")
46
- #import "RCTUtils.h"
47
- #else
48
- #import "React/RCTUtils.h" // Required when used as a Pod in a Swift project
49
- #endif
50
20
  @interface WhatsAppShare : NSObject <RCTBridgeModule,UIDocumentInteractionControllerDelegate>
51
21
 
52
22
  - (void) shareSingle:(NSDictionary *)options failureCallback:(RCTResponseErrorBlock)failureCallback successCallback:(RCTResponseSenderBlock)successCallback;
@@ -78,7 +78,8 @@ const RNShare = {
78
78
  SMS: _reactNative.NativeModules.RNShare.SMS || _types.Social.Sms,
79
79
  TELEGRAM: _reactNative.NativeModules.RNShare.TELEGRAM || _types.Social.Telegram,
80
80
  MESSENGER: _reactNative.NativeModules.RNShare.MESSENGER || _types.Social.Messenger,
81
- SNAPCHAT: _reactNative.NativeModules.RNShare.SNAPCHAT || _types.Social.Snapchat
81
+ SNAPCHAT: _reactNative.NativeModules.RNShare.SNAPCHAT || _types.Social.Snapchat,
82
+ VIBER: _reactNative.NativeModules.RNShare.VIBER || _types.Social.Viber
82
83
  },
83
84
 
84
85
  open(options) {
@@ -124,6 +125,10 @@ const RNShare = {
124
125
  if (_reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'android') {
125
126
  return new Promise((resolve, reject) => {
126
127
  (0, _requireAndAskPermissions.default)(options).then(() => {
128
+ if (options.url) {
129
+ options.urls = [options.url];
130
+ }
131
+
127
132
  _reactNative.NativeModules.RNShare.shareSingle(options, error => {
128
133
  return reject({
129
134
  error
@@ -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","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"]}
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","VIBER","Viber","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 VIBER: NativeModules.RNShare.VIBER || Social.Viber,\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 if (options.url) {\n options.urls = [options.url];\n }\n\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"]}
@@ -24,6 +24,7 @@ exports.Social = Social;
24
24
  Social["Telegram"] = "telegram";
25
25
  Social["Snapchat"] = "snapchat";
26
26
  Social["Messenger"] = "messenger";
27
+ Social["Viber"] = "viber";
27
28
  })(Social || (exports.Social = Social = {}));
28
29
 
29
30
  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;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 isNewTask?: boolean;\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
+ {"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;AAAAA,EAAAA,M;GAAAA,M,sBAAAA,M;;IAoBAC,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 Viber = 'viber',\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 urls?: string[];\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 isNewTask?: boolean;\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 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"]}
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 VIBER: Social.Viber;\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"]}
@@ -26,7 +26,8 @@ const RNShare = {
26
26
  SMS: NativeModules.RNShare.SMS || Social.Sms,
27
27
  TELEGRAM: NativeModules.RNShare.TELEGRAM || Social.Telegram,
28
28
  MESSENGER: NativeModules.RNShare.MESSENGER || Social.Messenger,
29
- SNAPCHAT: NativeModules.RNShare.SNAPCHAT || Social.Snapchat
29
+ SNAPCHAT: NativeModules.RNShare.SNAPCHAT || Social.Snapchat,
30
+ VIBER: NativeModules.RNShare.VIBER || Social.Viber
30
31
  },
31
32
 
32
33
  open(options) {
@@ -72,6 +73,10 @@ const RNShare = {
72
73
  if (Platform.OS === 'ios' || Platform.OS === 'android') {
73
74
  return new Promise((resolve, reject) => {
74
75
  requireAndAskPermissions(options).then(() => {
76
+ if (options.url) {
77
+ options.urls = [options.url];
78
+ }
79
+
75
80
  NativeModules.RNShare.shareSingle(options, error => {
76
81
  return reject({
77
82
  error
@@ -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","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"]}
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","VIBER","Viber","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 VIBER: NativeModules.RNShare.VIBER || Social.Viber,\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 if (options.url) {\n options.urls = [options.url];\n }\n\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"]}
@@ -17,6 +17,7 @@ export let Social;
17
17
  Social["Telegram"] = "telegram";
18
18
  Social["Snapchat"] = "snapchat";
19
19
  Social["Messenger"] = "messenger";
20
+ Social["Viber"] = "viber";
20
21
  })(Social || (Social = {}));
21
22
 
22
23
  export let ShareAsset;
@@ -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;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 isNewTask?: boolean;\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
+ {"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;AAAAA,EAAAA,M;GAAAA,M,KAAAA,M;;AAoBZ,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 Viber = 'viber',\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 urls?: string[];\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 isNewTask?: boolean;\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 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"]}
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 VIBER: Social.Viber;\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"]}
@@ -25,6 +25,7 @@ declare const RNShare: {
25
25
  readonly TELEGRAM: Social.Telegram;
26
26
  readonly MESSENGER: Social.Messenger;
27
27
  readonly SNAPCHAT: Social.Snapchat;
28
+ readonly VIBER: Social.Viber;
28
29
  };
29
30
  readonly open: (options: ShareOptions) => Promise<ShareOpenResult | never>;
30
31
  readonly shareSingle: (options: ShareSingleOptions) => Promise<ShareSingleResult | never>;
@@ -14,7 +14,8 @@ export declare enum Social {
14
14
  Sms = "sms",
15
15
  Telegram = "telegram",
16
16
  Snapchat = "snapchat",
17
- Messenger = "messenger"
17
+ Messenger = "messenger",
18
+ Viber = "viber"
18
19
  }
19
20
  export declare enum ShareAsset {
20
21
  BackgroundImage = "shareBackgroundImage",
@@ -52,6 +53,7 @@ export interface ActivityItemSource {
52
53
  linkMetadata?: LinkMetadata;
53
54
  }
54
55
  interface BaseShareSingleOptions {
56
+ urls?: string[];
55
57
  url?: string;
56
58
  type?: string;
57
59
  filename?: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-share",
3
3
  "description": "Social share, sending simple data to other apps.",
4
- "version": "7.4.0",
4
+ "version": "7.6.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/react-native-community/react-native-share.git"
package/src/index.tsx CHANGED
@@ -39,6 +39,7 @@ const RNShare = {
39
39
  TELEGRAM: NativeModules.RNShare.TELEGRAM || Social.Telegram,
40
40
  MESSENGER: NativeModules.RNShare.MESSENGER || Social.Messenger,
41
41
  SNAPCHAT: NativeModules.RNShare.SNAPCHAT || Social.Snapchat,
42
+ VIBER: NativeModules.RNShare.VIBER || Social.Viber,
42
43
  },
43
44
 
44
45
  open(options: ShareOptions): Promise<ShareOpenResult | never> {
@@ -90,6 +91,10 @@ const RNShare = {
90
91
  return new Promise((resolve, reject) => {
91
92
  requireAndAskPermissions(options)
92
93
  .then(() => {
94
+ if (options.url) {
95
+ options.urls = [options.url];
96
+ }
97
+
93
98
  NativeModules.RNShare.shareSingle(
94
99
  options,
95
100
  (error) => {
package/src/types.ts CHANGED
@@ -15,6 +15,7 @@ export enum Social {
15
15
  Telegram = 'telegram',
16
16
  Snapchat = 'snapchat',
17
17
  Messenger = 'messenger',
18
+ Viber = 'viber',
18
19
  }
19
20
 
20
21
  export enum ShareAsset {
@@ -49,6 +50,7 @@ export interface ActivityItemSource {
49
50
  }
50
51
 
51
52
  interface BaseShareSingleOptions {
53
+ urls?: string[];
52
54
  url?: string;
53
55
  type?: string;
54
56
  filename?: string;
@@ -20,6 +20,7 @@ declare module 'react-native' {
20
20
  TELEGRAM: Social.Telegram;
21
21
  SNAPCHAT: Social.Snapchat;
22
22
  MESSENGER: Social.Messenger;
23
+ VIBER: Social.Viber;
23
24
 
24
25
  SHARE_BACKGROUND_IMAGE: ShareAsset.BackgroundImage;
25
26
  SHARE_BACKGROUND_VIDEO: ShareAsset.BackgroundVideo;