react-native-share 11.0.4 → 12.0.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.
- package/README.md +63 -0
- package/android/src/main/java/cl/json/social/InstagramStoriesShare.java +8 -0
- package/ios/InstagramStories.m +70 -15
- package/ios/RNShareActivityItemSource.m +56 -3
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/helpers/options.d.ts +4 -0
- package/lib/typescript/helpers/options.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +2 -0
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +8 -3
- package/src/types.ts +2 -0
package/README.md
CHANGED
|
@@ -6,6 +6,67 @@ React Native Share, is a simple tool for sharing messages and files with other a
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## Expo Managed Workflow
|
|
10
|
+
|
|
11
|
+
For Expo projects, you will need to be on a managed workflow and use the following command:
|
|
12
|
+
|
|
13
|
+
```shell
|
|
14
|
+
npx expo install react-native-share
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Configure you `app.config.ts` or `app.json` to use the permissions needed by the library:
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
{
|
|
21
|
+
"plugins": [
|
|
22
|
+
[
|
|
23
|
+
"react-native-share",
|
|
24
|
+
{
|
|
25
|
+
"ios": [
|
|
26
|
+
"fb",
|
|
27
|
+
"instagram",
|
|
28
|
+
"twitter",
|
|
29
|
+
"tiktoksharesdk",
|
|
30
|
+
],
|
|
31
|
+
"android": [
|
|
32
|
+
"com.facebook.katana",
|
|
33
|
+
"com.instagram.android",
|
|
34
|
+
"com.twitter.android",
|
|
35
|
+
"com.zhiliaoapp.musically",
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`ios` parameter will take care of adding queries (LSApplicationQueriesSchemes) to the Info.plist.
|
|
44
|
+
|
|
45
|
+
```xml
|
|
46
|
+
<key>LSApplicationQueriesSchemes</key>
|
|
47
|
+
<array>
|
|
48
|
+
<string>fb</string>
|
|
49
|
+
<string>instagram</string>
|
|
50
|
+
<string>twitter</string>
|
|
51
|
+
<string>tiktoksharesdk</string>
|
|
52
|
+
</array>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`android` parameter will take care of adding queries to the AndroidManifest.xml.
|
|
56
|
+
|
|
57
|
+
```xml
|
|
58
|
+
<queries>
|
|
59
|
+
<package android:name="com.facebook.katana" />
|
|
60
|
+
<package android:name="com.instagram.android" />
|
|
61
|
+
<package android:name="com.twitter.android" />
|
|
62
|
+
<package android:name="com.zhiliaoapp.musically" />
|
|
63
|
+
</queries>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
And prebuild the project with `expo prebuild`.
|
|
67
|
+
|
|
68
|
+
## Bare React Native
|
|
69
|
+
|
|
9
70
|
If you are using `react-native >= 0.7X` and/or the new arch you just need to do a simple:
|
|
10
71
|
|
|
11
72
|
```shell
|
|
@@ -22,6 +83,8 @@ After that, we need to install the dependencies to use the project on iOS(you ca
|
|
|
22
83
|
|
|
23
84
|
Now run a simple: `npx pod-install` or `cd ios && pod install`. After that, you should be able to use the library on both Platforms, iOS and Android.
|
|
24
85
|
|
|
86
|
+
# Usage
|
|
87
|
+
|
|
25
88
|
Then simply import:
|
|
26
89
|
|
|
27
90
|
```js
|
|
@@ -83,6 +83,14 @@ public class InstagramStoriesShare extends SingleShareIntent {
|
|
|
83
83
|
useInternalStorage = options.getBoolean("useInternalStorage");
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
if (this.hasValidKey("linkUrl", options)) {
|
|
87
|
+
this.intent.putExtra("link_url", options.getString("linkUrl"));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (this.hasValidKey("linkText", options)) {
|
|
91
|
+
this.intent.putExtra("link_text", options.getString("linkText"));
|
|
92
|
+
}
|
|
93
|
+
|
|
86
94
|
Boolean hasBackgroundAsset = this.hasValidKey("backgroundImage", options)
|
|
87
95
|
|| this.hasValidKey("backgroundVideo", options);
|
|
88
96
|
|
package/ios/InstagramStories.m
CHANGED
|
@@ -8,12 +8,24 @@
|
|
|
8
8
|
|
|
9
9
|
// import RCTLog
|
|
10
10
|
#import <React/RCTLog.h>
|
|
11
|
+
#import <Photos/Photos.h>
|
|
11
12
|
|
|
12
13
|
#import "InstagramStories.h"
|
|
13
14
|
|
|
14
15
|
@implementation InstagramStories
|
|
15
16
|
RCT_EXPORT_MODULE();
|
|
16
17
|
|
|
18
|
+
- (void)openInstagramWithItems:(NSDictionary *)items urlScheme:(NSURL *)urlScheme resolve:(RCTPromiseResolveBlock)resolve {
|
|
19
|
+
// Putting dictionary of options inside an array
|
|
20
|
+
NSArray *pasteboardItems = @[items];
|
|
21
|
+
NSDictionary *pasteboardOptions = @{UIPasteboardOptionExpirationDate : [[NSDate date] dateByAddingTimeInterval:60 * 5]};
|
|
22
|
+
|
|
23
|
+
[[UIPasteboard generalPasteboard] setItems:pasteboardItems options:pasteboardOptions];
|
|
24
|
+
[[UIApplication sharedApplication] openURL:urlScheme options:@{} completionHandler:nil];
|
|
25
|
+
|
|
26
|
+
resolve(@[@true, @""]);
|
|
27
|
+
}
|
|
28
|
+
|
|
17
29
|
- (void)shareSingle:(NSDictionary *)options
|
|
18
30
|
reject:(RCTPromiseRejectBlock)reject
|
|
19
31
|
resolve:(RCTPromiseResolveBlock)resolve {
|
|
@@ -40,12 +52,6 @@ RCT_EXPORT_MODULE();
|
|
|
40
52
|
[items setObject: UIImagePNGRepresentation(image) forKey: @"com.instagram.sharedSticker.stickerImage"];
|
|
41
53
|
}
|
|
42
54
|
|
|
43
|
-
if(![options[@"backgroundVideo"] isEqual:[NSNull null]] && options[@"backgroundVideo"] != nil) {
|
|
44
|
-
NSURL *backgroundVideoURL = [RCTConvert NSURL:options[@"backgroundVideo"]];
|
|
45
|
-
NSData *video = [NSData dataWithContentsOfURL:backgroundVideoURL];
|
|
46
|
-
[items setObject: video forKey: @"com.instagram.sharedSticker.backgroundVideo"];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
55
|
if(![options[@"attributionURL"] isEqual:[NSNull null]] && options[@"attributionURL"] != nil) {
|
|
50
56
|
NSString *attrURL = [RCTConvert NSString:options[@"attributionURL"]];
|
|
51
57
|
[items setObject: attrURL forKey: @"com.instagram.sharedSticker.contentURL"];
|
|
@@ -67,17 +73,66 @@ RCT_EXPORT_MODULE();
|
|
|
67
73
|
}
|
|
68
74
|
[items setObject: backgroundBottomColor forKey: @"com.instagram.sharedSticker.backgroundBottomColor"];
|
|
69
75
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
NSDictionary *pasteboardOptions = @{UIPasteboardOptionExpirationDate : [[NSDate date] dateByAddingTimeInterval:60 * 5]};
|
|
76
|
+
if(![options[@"linkUrl"] isEqual:[NSNull null]] && options[@"linkUrl"] != nil) {
|
|
77
|
+
NSString *linkURL = [RCTConvert NSString:options[@"linkUrl"]];
|
|
78
|
+
[items setObject: linkURL forKey: @"com.instagram.sharedSticker.linkURL"];
|
|
79
|
+
}
|
|
75
80
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
81
|
+
if(![options[@"linkText"] isEqual:[NSNull null]] && options[@"linkText"] != nil) {
|
|
82
|
+
NSString *linkText = [RCTConvert NSString:options[@"linkText"]];
|
|
83
|
+
[items setObject: linkText forKey: @"com.instagram.sharedSticker.linkText"];
|
|
84
|
+
}
|
|
79
85
|
|
|
80
|
-
|
|
86
|
+
if(![options[@"backgroundVideo"] isEqual:[NSNull null]] && options[@"backgroundVideo"] != nil) {
|
|
87
|
+
NSURL *backgroundVideoURL = [RCTConvert NSURL:options[@"backgroundVideo"]];
|
|
88
|
+
NSString *urlString = backgroundVideoURL.absoluteString;
|
|
89
|
+
NSURLComponents *components = [[NSURLComponents alloc] initWithString:urlString];
|
|
90
|
+
NSString *assetId = nil;
|
|
91
|
+
|
|
92
|
+
// Get asset ID from URL
|
|
93
|
+
for (NSURLQueryItem *item in components.queryItems) {
|
|
94
|
+
if ([item.name isEqualToString:@"id"]) {
|
|
95
|
+
assetId = item.value;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (assetId) {
|
|
101
|
+
// Fetch the asset
|
|
102
|
+
PHFetchResult *fetchResult = [PHAsset fetchAssetsWithLocalIdentifiers:@[assetId] options:nil];
|
|
103
|
+
PHAsset *asset = fetchResult.firstObject;
|
|
104
|
+
|
|
105
|
+
if (asset) {
|
|
106
|
+
PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init];
|
|
107
|
+
options.networkAccessAllowed = YES;
|
|
108
|
+
options.deliveryMode = PHVideoRequestOptionsDeliveryModeHighQualityFormat;
|
|
109
|
+
|
|
110
|
+
[[PHImageManager defaultManager] requestAVAssetForVideo:asset
|
|
111
|
+
options:options
|
|
112
|
+
resultHandler:^(AVAsset * _Nullable avAsset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) {
|
|
113
|
+
if ([avAsset isKindOfClass:[AVURLAsset class]]) {
|
|
114
|
+
AVURLAsset *urlAsset = (AVURLAsset *)avAsset;
|
|
115
|
+
NSData *video = [NSData dataWithContentsOfURL:urlAsset.URL];
|
|
116
|
+
|
|
117
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
118
|
+
if (video) {
|
|
119
|
+
[items setObject:video forKey:@"com.instagram.sharedSticker.backgroundVideo"];
|
|
120
|
+
[self openInstagramWithItems:items urlScheme:urlScheme resolve:resolve];
|
|
121
|
+
} else {
|
|
122
|
+
NSLog(@"Failed to convert video asset to NSData");
|
|
123
|
+
[self openInstagramWithItems:items urlScheme:urlScheme resolve:resolve];
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}];
|
|
128
|
+
} else {
|
|
129
|
+
NSLog(@"Could not find asset with ID: %@", assetId);
|
|
130
|
+
[self openInstagramWithItems:items urlScheme:urlScheme resolve:resolve];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
} else {
|
|
134
|
+
[self openInstagramWithItems:items urlScheme:urlScheme resolve:resolve];
|
|
135
|
+
}
|
|
81
136
|
}
|
|
82
137
|
|
|
83
138
|
- (NSError*)fallbackInstagram {
|
|
@@ -102,6 +102,39 @@
|
|
|
102
102
|
return nil;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
+
+ (UIImage *)adjustedForShareSheetPreviewIconProvider:(UIImage *)image {
|
|
106
|
+
UIColor *replaceTransparencyWithColor = [UIColor whiteColor]; // Change as required
|
|
107
|
+
CGFloat minimumSize = 40.0; // Points
|
|
108
|
+
|
|
109
|
+
UIGraphicsImageRendererFormat *format = [[UIGraphicsImageRendererFormat alloc] init];
|
|
110
|
+
format.opaque = YES;
|
|
111
|
+
format.scale = image.scale;
|
|
112
|
+
|
|
113
|
+
CGFloat imageWidth = image.size.width;
|
|
114
|
+
CGFloat imageHeight = image.size.height;
|
|
115
|
+
CGFloat imageLargestDimension = MAX(imageWidth, imageHeight);
|
|
116
|
+
CGFloat deviceScale = [UIScreen mainScreen].scale;
|
|
117
|
+
CGFloat resizeFactor = (minimumSize * deviceScale) / (imageLargestDimension * image.scale);
|
|
118
|
+
|
|
119
|
+
CGSize size;
|
|
120
|
+
if (resizeFactor > 1.0) {
|
|
121
|
+
size = CGSizeMake(imageWidth * resizeFactor, imageHeight * resizeFactor);
|
|
122
|
+
} else {
|
|
123
|
+
size = image.size;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
UIGraphicsImageRenderer *renderer = [[UIGraphicsImageRenderer alloc] initWithSize:size format:format];
|
|
127
|
+
|
|
128
|
+
UIImage *modifiedImage = [renderer imageWithActions:^(UIGraphicsImageRendererContext *context) {
|
|
129
|
+
CGSize contextSize = context.format.bounds.size;
|
|
130
|
+
[replaceTransparencyWithColor setFill];
|
|
131
|
+
[context fillRect:CGRectMake(0, 0, contextSize.width, contextSize.height)];
|
|
132
|
+
[image drawInRect:CGRectMake(0, 0, contextSize.width, contextSize.height)];
|
|
133
|
+
}];
|
|
134
|
+
|
|
135
|
+
return modifiedImage;
|
|
136
|
+
}
|
|
137
|
+
|
|
105
138
|
#ifdef __IPHONE_13_0
|
|
106
139
|
+ (nullable LPLinkMetadata *)linkMetadataFromDictionary:(NSDictionary *)dictionary API_AVAILABLE(ios(13.0)) {
|
|
107
140
|
if (dictionary) {
|
|
@@ -109,10 +142,30 @@
|
|
|
109
142
|
linkMetadata.originalURL = [RCTConvert NSURL:dictionary[@"originalUrl"]];
|
|
110
143
|
linkMetadata.URL = [RCTConvert NSURL:dictionary[@"url"]];
|
|
111
144
|
linkMetadata.title = [RCTConvert NSString:dictionary[@"title"]];
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
145
|
+
|
|
146
|
+
// Handle base64Icon
|
|
147
|
+
NSString *base64Icon = [RCTConvert NSString:dictionary[@"base64Icon"]];
|
|
148
|
+
if (base64Icon) {
|
|
149
|
+
// Remove data URI prefix if present
|
|
150
|
+
if ([base64Icon containsString:@"base64,"]) {
|
|
151
|
+
base64Icon = [[base64Icon componentsSeparatedByString:@"base64,"] lastObject];
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
NSData *imageData = [[NSData alloc] initWithBase64EncodedString:base64Icon options:NSDataBase64DecodingIgnoreUnknownCharacters];
|
|
155
|
+
UIImage *image = [UIImage imageWithData:imageData];
|
|
156
|
+
|
|
157
|
+
if (image) {
|
|
158
|
+
// Assign to iconProvider
|
|
159
|
+
linkMetadata.iconProvider = [[NSItemProvider alloc] initWithObject:[self adjustedForShareSheetPreviewIconProvider:image]];
|
|
160
|
+
}
|
|
161
|
+
} else {
|
|
162
|
+
// Existing icon handling
|
|
163
|
+
NSURL *iconURL = [RCTConvert NSURL:dictionary[@"icon"]];
|
|
164
|
+
if (iconURL) {
|
|
165
|
+
linkMetadata.iconProvider = [[NSItemProvider alloc] initWithContentsOfURL:iconURL];
|
|
166
|
+
}
|
|
115
167
|
}
|
|
168
|
+
|
|
116
169
|
NSURL *imageURL = [RCTConvert NSURL:dictionary[@"image"]];
|
|
117
170
|
if (imageURL) {
|
|
118
171
|
linkMetadata.imageProvider = [[NSItemProvider alloc] initWithContentsOfURL:imageURL];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Social","exports","ShareAsset"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;IAAYA,MAAM,GAAAC,OAAA,CAAAD,MAAA,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA;AAAA,IAqBNE,UAAU,GAAAD,OAAA,CAAAC,UAAA,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,
|
|
1
|
+
{"version":3,"names":["Social","exports","ShareAsset"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;IAAYA,MAAM,GAAAC,OAAA,CAAAD,MAAA,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA;AAAA,IAqBNE,UAAU,GAAAD,OAAA,CAAAC,UAAA,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,OA4GH"}
|
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Social","ShareAsset"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"AAAA,WAAYA,MAAM,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA;AAqBlB,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;;
|
|
1
|
+
{"version":3,"names":["Social","ShareAsset"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"AAAA,WAAYA,MAAM,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA;AAqBlB,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;;AA4GH"}
|
|
@@ -39,6 +39,8 @@ export declare function normalizeSingleShareOptions({ ...options }: ShareSingleO
|
|
|
39
39
|
backgroundTopColor?: string | undefined;
|
|
40
40
|
attributionURL?: string | undefined;
|
|
41
41
|
backgroundVideo?: string | undefined;
|
|
42
|
+
linkUrl?: string | undefined;
|
|
43
|
+
linkText?: string | undefined;
|
|
42
44
|
title?: string | undefined;
|
|
43
45
|
type?: string | undefined;
|
|
44
46
|
email?: string | undefined;
|
|
@@ -58,6 +60,8 @@ export declare function normalizeSingleShareOptions({ ...options }: ShareSingleO
|
|
|
58
60
|
backgroundTopColor?: string | undefined;
|
|
59
61
|
attributionURL?: string | undefined;
|
|
60
62
|
backgroundVideo?: string | undefined;
|
|
63
|
+
linkUrl?: string | undefined;
|
|
64
|
+
linkText?: string | undefined;
|
|
61
65
|
title?: string | undefined;
|
|
62
66
|
type?: string | undefined;
|
|
63
67
|
email?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/helpers/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG5D,wBAAgB,yBAAyB,CAAC,EAAE,GAAG,OAAO,EAAE,EAAE,YAAY;;;;;;;;;;;;;;;;;EAiBrE;AAED,wBAAgB,2BAA2B,CAAC,EAAE,GAAG,OAAO,EAAE,EAAE,kBAAkB
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/helpers/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG5D,wBAAgB,yBAAyB,CAAC,EAAE,GAAG,OAAO,EAAE,EAAE,YAAY;;;;;;;;;;;;;;;;;EAiBrE;AAED,wBAAgB,2BAA2B,CAAC,EAAE,GAAG,OAAO,EAAE,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG7E"}
|
|
@@ -74,6 +74,8 @@ interface BaseSocialStoriesShareSingleOptions extends Omit<BaseShareSingleOption
|
|
|
74
74
|
backgroundTopColor?: string;
|
|
75
75
|
attributionURL?: string;
|
|
76
76
|
backgroundVideo?: string;
|
|
77
|
+
linkUrl?: string;
|
|
78
|
+
linkText?: string;
|
|
77
79
|
}
|
|
78
80
|
export interface InstagramStoriesShareSingleOptions extends BaseSocialStoriesShareSingleOptions {
|
|
79
81
|
social: Social.InstagramStories;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM;IAChB,QAAQ,aAAa;IACrB,eAAe,oBAAoB;IACnC,YAAY,iBAAiB;IAC7B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,gBAAgB,qBAAqB;IACrC,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,oBAAY,UAAU;IACpB,eAAe,yBAAyB;IACxC,eAAe,yBAAyB;IACxC,YAAY,sBAAsB;IAClC,yBAAyB,mCAAmC;CAC7D;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,YAAY,CAAC;IAC9B,IAAI,EAAE;SAAG,GAAG,IAAI,sBAAsB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS;KAAE,CAAC;IAC5E,OAAO,CAAC,EAAE;SAAG,GAAG,IAAI,sBAAsB,CAAC,CAAC,EAAE,MAAM;KAAE,CAAC;IACvD,kBAAkB,CAAC,EAAE;SAAG,GAAG,IAAI,sBAAsB,CAAC,CAAC,EAAE,MAAM;KAAE,CAAC;IAClE,cAAc,CAAC,EAAE;SAAG,GAAG,IAAI,sBAAsB,CAAC,CAAC,EAAE,MAAM;KAAE,CAAC;IAC9D,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,UAAU,sBAAsB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC1E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,mCAAoC,SAAQ,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC;IAC1F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
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": "
|
|
4
|
+
"version": "12.0.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/react-native-community/react-native-share.git"
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"@babel/runtime": "^7.23.2",
|
|
31
31
|
"@commitlint/cli": "^11.0.0",
|
|
32
32
|
"@commitlint/config-conventional": "^11.0.0",
|
|
33
|
+
"@expo/config-plugins": "^9.0.10",
|
|
33
34
|
"@react-native/eslint-config": "^0.74.0",
|
|
34
35
|
"@react-native/metro-config": "^0.73.2",
|
|
35
36
|
"@semantic-release/commit-analyzer": "^11.1.0",
|
|
@@ -37,6 +38,7 @@
|
|
|
37
38
|
"@semantic-release/github": "^9.2.1",
|
|
38
39
|
"@semantic-release/npm": "^11.0.1",
|
|
39
40
|
"@semantic-release/release-notes-generator": "^12.1.0",
|
|
41
|
+
"@tsconfig/node-lts": "^22.0.0",
|
|
40
42
|
"@tsconfig/react-native": "^3.0.2",
|
|
41
43
|
"@types/react": "^18.2.37",
|
|
42
44
|
"@types/react-native": "^0.72.6",
|
|
@@ -60,7 +62,9 @@
|
|
|
60
62
|
"typescript": "^5.2.2"
|
|
61
63
|
},
|
|
62
64
|
"resolutions": {
|
|
63
|
-
"eslint-plugin-prettier": "5.0.1"
|
|
65
|
+
"eslint-plugin-prettier": "5.0.1",
|
|
66
|
+
"wrap-ansi": "7.0.0",
|
|
67
|
+
"string-width": "4.1.0"
|
|
64
68
|
},
|
|
65
69
|
"keywords": [
|
|
66
70
|
"react-native",
|
|
@@ -90,9 +94,10 @@
|
|
|
90
94
|
"start:ios": "react-native run-ios",
|
|
91
95
|
"lint": "eslint \"src/**/*.{js,ts,tsx}\" --max-warnings=0",
|
|
92
96
|
"typescript": "tsc --noEmit",
|
|
97
|
+
"build:expo-plugin": "tsc --project ./plugin/tsconfig.json",
|
|
93
98
|
"validate": "yarn lint && yarn typescript",
|
|
94
99
|
"ci:publish": "npx semantic-release",
|
|
95
|
-
"prepare": "bob build",
|
|
100
|
+
"prepare": "bob build && yarn build:expo-plugin",
|
|
96
101
|
"windows": "react-native run-windows"
|
|
97
102
|
},
|
|
98
103
|
"husky": {
|
package/src/types.ts
CHANGED
|
@@ -72,6 +72,8 @@ interface BaseSocialStoriesShareSingleOptions extends Omit<BaseShareSingleOption
|
|
|
72
72
|
backgroundTopColor?: string;
|
|
73
73
|
attributionURL?: string;
|
|
74
74
|
backgroundVideo?: string;
|
|
75
|
+
linkUrl?: string;
|
|
76
|
+
linkText?: string;
|
|
75
77
|
}
|
|
76
78
|
|
|
77
79
|
export interface InstagramStoriesShareSingleOptions extends BaseSocialStoriesShareSingleOptions {
|