react-native-share 8.2.2 → 9.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/RNShare.podspec +18 -1
- package/android/build.gradle +16 -0
- package/android/src/main/java/cl/json/{RNShareModule.java → RNShareImpl.java} +52 -60
- package/android/src/main/java/cl/json/RNSharePackage.java +34 -17
- package/android/src/main/java/cl/json/social/FacebookStoriesShare.java +1 -1
- package/android/src/main/java/cl/json/social/InstagramShare.java +7 -1
- package/android/src/main/java/cl/json/social/InstagramStoriesShare.java +1 -1
- package/android/src/main/java/cl/json/social/ShareIntent.java +11 -6
- package/android/src/main/java/cl/json/social/SingleShareIntent.java +15 -6
- package/android/src/main/java/cl/json/social/TargetChosenReceiver.java +23 -17
- package/android/src/newarch/cl/json/RNShare.java +55 -0
- package/android/src/oldarch/cl/json/RNShare.java +52 -0
- package/codegenSpec/NativeRNShare.ts +35 -0
- package/ios/EmailShare.h +1 -1
- package/ios/EmailShare.m +5 -5
- package/ios/FacebookStories.h +1 -1
- package/ios/FacebookStories.m +4 -4
- package/ios/GenericShare.h +1 -1
- package/ios/GenericShare.m +5 -5
- package/ios/GooglePlusShare.h +1 -1
- package/ios/GooglePlusShare.m +4 -4
- package/ios/InstagramShare.h +3 -3
- package/ios/InstagramShare.m +16 -16
- package/ios/InstagramStories.h +1 -1
- package/ios/InstagramStories.m +4 -4
- package/ios/MessengerShare.h +1 -1
- package/ios/MessengerShare.m +3 -3
- package/ios/RNShare.h +16 -2
- package/ios/{RNShare.m → RNShare.mm} +71 -25
- package/ios/TelegramShare.h +1 -1
- package/ios/TelegramShare.m +4 -4
- package/ios/ViberShare.h +1 -1
- package/ios/ViberShare.m +4 -4
- package/ios/WhatsAppShare.h +1 -1
- package/ios/WhatsAppShare.m +8 -8
- package/lib/commonjs/components/Button.js +21 -25
- package/lib/commonjs/components/Button.js.map +1 -1
- package/lib/commonjs/components/Overlay.js +7 -15
- package/lib/commonjs/components/Overlay.js.map +1 -1
- package/lib/commonjs/components/ShareSheet.js +10 -21
- package/lib/commonjs/components/ShareSheet.js.map +1 -1
- package/lib/commonjs/components/Sheet.js +7 -13
- package/lib/commonjs/components/Sheet.js.map +1 -1
- package/lib/commonjs/helpers/requireAndAskPermissions.js +6 -16
- package/lib/commonjs/helpers/requireAndAskPermissions.js.map +1 -1
- package/lib/commonjs/index.js +40 -68
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js +9 -12
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/components/Button.js +19 -18
- package/lib/module/components/Button.js.map +1 -1
- package/lib/module/components/Overlay.js +5 -7
- package/lib/module/components/Overlay.js.map +1 -1
- package/lib/module/components/ShareSheet.js +8 -10
- package/lib/module/components/ShareSheet.js.map +1 -1
- package/lib/module/components/Sheet.js +5 -6
- package/lib/module/components/Sheet.js.map +1 -1
- package/lib/module/helpers/requireAndAskPermissions.js +6 -15
- package/lib/module/helpers/requireAndAskPermissions.js.map +1 -1
- package/lib/module/index.js +31 -50
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +8 -9
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/codegenSpec/NativeRNShare.d.ts +39 -0
- package/lib/typescript/{index.d.ts → src/index.d.ts} +17 -17
- package/lib/typescript/{types.d.ts → src/types.d.ts} +1 -0
- package/package.json +16 -7
- package/src/helpers/requireAndAskPermissions.ts +9 -9
- package/src/index.tsx +46 -60
- package/src/types.ts +1 -0
- package/CHANGELOG.md +0 -133
- package/lib/commonjs/typings/react-native.d.js +0 -4
- package/lib/commonjs/typings/react-native.d.js.map +0 -1
- package/lib/module/typings/react-native.d.js +0 -2
- package/lib/module/typings/react-native.d.js.map +0 -1
- package/src/typings/react-native.d.ts +0 -58
- package/windows/.gitignore +0 -92
- /package/lib/typescript/{components → src/components}/Button.d.ts +0 -0
- /package/lib/typescript/{components → src/components}/Overlay.d.ts +0 -0
- /package/lib/typescript/{components → src/components}/ShareSheet.d.ts +0 -0
- /package/lib/typescript/{components → src/components}/Sheet.d.ts +0 -0
- /package/lib/typescript/{helpers → src/helpers}/requireAndAskPermissions.d.ts +0 -0
package/lib/module/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Platform } from 'react-native';
|
|
2
|
+
import NativeRNShare from '../codegenSpec/NativeRNShare';
|
|
2
3
|
import Overlay from './components/Overlay';
|
|
3
4
|
import Sheet from './components/Sheet';
|
|
4
5
|
import Button from './components/Button';
|
|
@@ -11,25 +12,24 @@ const RNShare = {
|
|
|
11
12
|
Overlay,
|
|
12
13
|
Sheet,
|
|
13
14
|
Social: {
|
|
14
|
-
FACEBOOK:
|
|
15
|
-
FACEBOOK_STORIES:
|
|
16
|
-
PAGESMANAGER:
|
|
17
|
-
TWITTER:
|
|
18
|
-
WHATSAPP:
|
|
19
|
-
WHATSAPPBUSINESS:
|
|
20
|
-
INSTAGRAM:
|
|
21
|
-
INSTAGRAM_STORIES:
|
|
22
|
-
GOOGLEPLUS:
|
|
23
|
-
EMAIL:
|
|
24
|
-
PINTEREST:
|
|
25
|
-
LINKEDIN:
|
|
26
|
-
SMS:
|
|
27
|
-
TELEGRAM:
|
|
28
|
-
MESSENGER:
|
|
29
|
-
SNAPCHAT:
|
|
30
|
-
VIBER:
|
|
15
|
+
FACEBOOK: NativeRNShare.getConstants().FACEBOOK || Social.Facebook,
|
|
16
|
+
FACEBOOK_STORIES: NativeRNShare.getConstants().FACEBOOKSTORIES || Social.FacebookStories,
|
|
17
|
+
PAGESMANAGER: NativeRNShare.getConstants().PAGESMANAGER || Social.Pagesmanager,
|
|
18
|
+
TWITTER: NativeRNShare.getConstants().TWITTER || Social.Twitter,
|
|
19
|
+
WHATSAPP: NativeRNShare.getConstants().WHATSAPP || Social.Whatsapp,
|
|
20
|
+
WHATSAPPBUSINESS: NativeRNShare.getConstants().WHATSAPPBUSINESS || Social.Whatsappbusiness,
|
|
21
|
+
INSTAGRAM: NativeRNShare.getConstants().INSTAGRAM || Social.Instagram,
|
|
22
|
+
INSTAGRAM_STORIES: NativeRNShare.getConstants().INSTAGRAMSTORIES || Social.InstagramStories,
|
|
23
|
+
GOOGLEPLUS: NativeRNShare.getConstants().GOOGLEPLUS || Social.Googleplus,
|
|
24
|
+
EMAIL: NativeRNShare.getConstants().EMAIL || Social.Email,
|
|
25
|
+
PINTEREST: NativeRNShare.getConstants().PINTEREST || Social.Pinterest,
|
|
26
|
+
LINKEDIN: NativeRNShare.getConstants().LINKEDIN || Social.Linkedin,
|
|
27
|
+
SMS: NativeRNShare.getConstants().SMS || Social.Sms,
|
|
28
|
+
TELEGRAM: NativeRNShare.getConstants().TELEGRAM || Social.Telegram,
|
|
29
|
+
MESSENGER: NativeRNShare.getConstants().MESSENGER || Social.Messenger,
|
|
30
|
+
SNAPCHAT: NativeRNShare.getConstants().SNAPCHAT || Social.Snapchat,
|
|
31
|
+
VIBER: NativeRNShare.getConstants().VIBER || Social.Viber
|
|
31
32
|
},
|
|
32
|
-
|
|
33
33
|
open(options) {
|
|
34
34
|
return new Promise((resolve, reject) => {
|
|
35
35
|
requireAndAskPermissions(options).then(() => {
|
|
@@ -38,27 +38,21 @@ const RNShare = {
|
|
|
38
38
|
const url = options.url;
|
|
39
39
|
delete options.url;
|
|
40
40
|
options.urls = [url];
|
|
41
|
-
|
|
42
41
|
if (options.filename && !options.filenames) {
|
|
43
42
|
options.filenames = [options.filename];
|
|
44
43
|
}
|
|
45
44
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return reject({
|
|
49
|
-
error
|
|
50
|
-
});
|
|
51
|
-
}, (success, message) => {
|
|
52
|
-
if (success) {
|
|
45
|
+
NativeRNShare.open(options).then(ret => {
|
|
46
|
+
if (ret.success) {
|
|
53
47
|
return resolve({
|
|
54
|
-
success,
|
|
55
|
-
message
|
|
48
|
+
success: ret.success,
|
|
49
|
+
message: ret.message
|
|
56
50
|
});
|
|
57
51
|
} else if (options.failOnCancel === false) {
|
|
58
52
|
return resolve({
|
|
59
53
|
dismissedAction: true,
|
|
60
|
-
success,
|
|
61
|
-
message
|
|
54
|
+
success: ret.success,
|
|
55
|
+
message: ret.message
|
|
62
56
|
});
|
|
63
57
|
} else {
|
|
64
58
|
reject(new Error('User did not share'));
|
|
@@ -67,7 +61,6 @@ const RNShare = {
|
|
|
67
61
|
}).catch(e => reject(e));
|
|
68
62
|
});
|
|
69
63
|
},
|
|
70
|
-
|
|
71
64
|
shareSingle(options) {
|
|
72
65
|
if (Platform.OS === 'ios' || Platform.OS === 'android') {
|
|
73
66
|
return new Promise((resolve, reject) => {
|
|
@@ -75,50 +68,38 @@ const RNShare = {
|
|
|
75
68
|
if (options.url) {
|
|
76
69
|
options.urls = [options.url];
|
|
77
70
|
}
|
|
78
|
-
|
|
79
71
|
if (options.social === RNShare.Social.INSTAGRAM_STORIES && !options.appId) {
|
|
80
72
|
return reject({
|
|
81
73
|
success: false,
|
|
82
74
|
message: 'Instagram Story share requires an appId based on Meta policy.'
|
|
83
75
|
});
|
|
84
76
|
}
|
|
85
|
-
|
|
86
|
-
NativeModules.RNShare.shareSingle(options, error => {
|
|
87
|
-
return reject({
|
|
88
|
-
error
|
|
89
|
-
});
|
|
90
|
-
}, (success, message) => {
|
|
77
|
+
NativeRNShare.shareSingle(options).then(ret => {
|
|
91
78
|
return resolve({
|
|
92
|
-
success: Boolean(success),
|
|
93
|
-
message
|
|
79
|
+
success: Boolean(ret.success),
|
|
80
|
+
message: ret.message
|
|
94
81
|
});
|
|
95
|
-
});
|
|
82
|
+
}).catch(e => reject(e));
|
|
96
83
|
}).catch(e => reject(e));
|
|
97
84
|
});
|
|
98
85
|
} else {
|
|
99
86
|
throw new Error('Not implemented');
|
|
100
87
|
}
|
|
101
88
|
},
|
|
102
|
-
|
|
103
89
|
isPackageInstalled(packageName) {
|
|
104
90
|
if (Platform.OS === 'android') {
|
|
105
91
|
return new Promise((resolve, reject) => {
|
|
106
|
-
|
|
107
|
-
return reject({
|
|
108
|
-
error
|
|
109
|
-
});
|
|
110
|
-
}, isInstalled => {
|
|
92
|
+
NativeRNShare.isPackageInstalled(packageName).then(isInstalled => {
|
|
111
93
|
return resolve({
|
|
112
94
|
isInstalled,
|
|
113
95
|
message: 'Package is Installed'
|
|
114
96
|
});
|
|
115
|
-
});
|
|
97
|
+
}).catch(e => reject(e));
|
|
116
98
|
});
|
|
117
99
|
} else {
|
|
118
100
|
throw new Error('Not implemented');
|
|
119
101
|
}
|
|
120
102
|
}
|
|
121
|
-
|
|
122
103
|
};
|
|
123
104
|
export { Overlay, Sheet, Button, ShareSheet, ShareAsset, Social };
|
|
124
105
|
export default RNShare;
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["NativeModules","Platform","Overlay","Sheet","Button","ShareSheet","requireAndAskPermissions","Social","ShareAsset","RNShare","FACEBOOK","Facebook","FACEBOOK_STORIES","FACEBOOKSTORIES","FacebookStories","PAGESMANAGER","Pagesmanager","TWITTER","Twitter","WHATSAPP","Whatsapp","WHATSAPPBUSINESS","Whatsappbusiness","INSTAGRAM","Instagram","INSTAGRAM_STORIES","INSTAGRAMSTORIES","InstagramStories","GOOGLEPLUS","Googleplus","EMAIL","Email","PINTEREST","Pinterest","LINKEDIN","Linkedin","SMS","Sms","TELEGRAM","Telegram","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","social","appId","Boolean","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 }\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 if (options.social === RNShare.Social.INSTAGRAM_STORIES && !options.appId) {\n return reject({\n success: false,\n message: 'Instagram Story share requires an appId based on Meta policy.',\n });\n }\n\n NativeModules.RNShare.shareSingle(\n options,\n (error) => {\n return reject({ error });\n },\n (success, message) => {\n return resolve({\n success: Boolean(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,"names":["Platform","NativeRNShare","Overlay","Sheet","Button","ShareSheet","requireAndAskPermissions","Social","ShareAsset","RNShare","FACEBOOK","getConstants","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","ret","success","message","failOnCancel","dismissedAction","Error","catch","e","shareSingle","social","appId","Boolean","isPackageInstalled","packageName","isInstalled"],"sources":["index.tsx"],"sourcesContent":["import { Platform } from 'react-native';\n\nimport NativeRNShare from '../codegenSpec/NativeRNShare';\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: NativeRNShare.getConstants().FACEBOOK || Social.Facebook,\n FACEBOOK_STORIES: NativeRNShare.getConstants().FACEBOOKSTORIES || Social.FacebookStories,\n PAGESMANAGER: NativeRNShare.getConstants().PAGESMANAGER || Social.Pagesmanager,\n TWITTER: NativeRNShare.getConstants().TWITTER || Social.Twitter,\n WHATSAPP: NativeRNShare.getConstants().WHATSAPP || Social.Whatsapp,\n WHATSAPPBUSINESS: NativeRNShare.getConstants().WHATSAPPBUSINESS || Social.Whatsappbusiness,\n INSTAGRAM: NativeRNShare.getConstants().INSTAGRAM || Social.Instagram,\n INSTAGRAM_STORIES: NativeRNShare.getConstants().INSTAGRAMSTORIES || Social.InstagramStories,\n GOOGLEPLUS: NativeRNShare.getConstants().GOOGLEPLUS || Social.Googleplus,\n EMAIL: NativeRNShare.getConstants().EMAIL || Social.Email,\n PINTEREST: NativeRNShare.getConstants().PINTEREST || Social.Pinterest,\n LINKEDIN: NativeRNShare.getConstants().LINKEDIN || Social.Linkedin,\n SMS: NativeRNShare.getConstants().SMS || Social.Sms,\n TELEGRAM: NativeRNShare.getConstants().TELEGRAM || Social.Telegram,\n MESSENGER: NativeRNShare.getConstants().MESSENGER || Social.Messenger,\n SNAPCHAT: NativeRNShare.getConstants().SNAPCHAT || Social.Snapchat,\n VIBER: NativeRNShare.getConstants().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 }\n }\n NativeRNShare.open(options).then((ret: { success: boolean; message: string }) => {\n if (ret.success) {\n return resolve({\n success: ret.success,\n message: ret.message,\n });\n } else if (options.failOnCancel === false) {\n return resolve({\n dismissedAction: true,\n success: ret.success,\n message: ret.message,\n });\n } else {\n reject(new Error('User did not share'));\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 if (options.social === RNShare.Social.INSTAGRAM_STORIES && !options.appId) {\n return reject({\n success: false,\n message: 'Instagram Story share requires an appId based on Meta policy.',\n });\n }\n NativeRNShare.shareSingle(options)\n .then((ret: { success: boolean; message: string }) => {\n return resolve({\n success: Boolean(ret.success),\n message: ret.message,\n });\n })\n .catch((e: unknown) => reject(e));\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 NativeRNShare.isPackageInstalled(packageName)\n .then((isInstalled: boolean) => {\n return resolve({\n isInstalled,\n message: 'Package is Installed',\n });\n })\n .catch((e: unknown) => reject(e));\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"],"mappings":"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"}
|
package/lib/module/types.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
export let Social
|
|
2
|
-
|
|
3
|
-
(function (Social) {
|
|
1
|
+
export let Social = /*#__PURE__*/function (Social) {
|
|
4
2
|
Social["Facebook"] = "facebook";
|
|
5
3
|
Social["FacebookStories"] = "facebookstories";
|
|
6
4
|
Social["Pagesmanager"] = "pagesmanager";
|
|
@@ -18,14 +16,15 @@ export let Social;
|
|
|
18
16
|
Social["Snapchat"] = "snapchat";
|
|
19
17
|
Social["Messenger"] = "messenger";
|
|
20
18
|
Social["Viber"] = "viber";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
export let ShareAsset
|
|
24
|
-
|
|
25
|
-
(function (ShareAsset) {
|
|
19
|
+
return Social;
|
|
20
|
+
}({});
|
|
21
|
+
export let ShareAsset = /*#__PURE__*/function (ShareAsset) {
|
|
26
22
|
ShareAsset["BackgroundImage"] = "shareBackgroundImage";
|
|
27
23
|
ShareAsset["BackgroundVideo"] = "shareBackgroundVideo";
|
|
28
24
|
ShareAsset["StickerImage"] = "shareStickerImage";
|
|
29
25
|
ShareAsset["BackgroundAndStickerImage"] = "shareBackgroundAndStickerImage";
|
|
30
|
-
|
|
26
|
+
return ShareAsset;
|
|
27
|
+
}({});
|
|
28
|
+
|
|
29
|
+
// iOS 11 or late
|
|
31
30
|
//# sourceMappingURL=types.js.map
|
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["Social","ShareAsset"],"sources":["types.ts"],"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 ActivityTypeItemSource]?: ActivityItem | null | undefined };\n subject?: { [key in ActivityTypeItemSource]?: string };\n dataTypeIdentifier?: { [key in ActivityTypeItemSource]?: string };\n thumbnailImage?: { [key in ActivityTypeItemSource]?: string };\n linkMetadata?: LinkMetadata;\n}\n\ninterface BaseShareSingleOptions {\n appId?: string;\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 appId: string;\n}\n\nexport interface FacebookStoriesShareSingleOptions extends BaseSocialStoriesShareSingleOptions {\n social: Social.FacebookStories;\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[] | string[];\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 type ActivityTypeItemSource = ActivityType | string;\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"],"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;EAAA,OAANA,MAAM;AAAA;AAoBlB,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;;AA0GH"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
export interface Spec extends TurboModule {
|
|
3
|
+
readonly getConstants: () => {
|
|
4
|
+
FACEBOOK?: string;
|
|
5
|
+
FACEBOOKSTORIES?: string;
|
|
6
|
+
TWITTER?: string;
|
|
7
|
+
GOOGLEPLUS?: string;
|
|
8
|
+
WHATSAPP?: string;
|
|
9
|
+
INSTAGRAM?: string;
|
|
10
|
+
INSTAGRAMSTORIES?: string;
|
|
11
|
+
TELEGRAM?: string;
|
|
12
|
+
EMAIL?: string;
|
|
13
|
+
MESSENGER?: string;
|
|
14
|
+
VIBER?: string;
|
|
15
|
+
PAGESMANAGER?: string;
|
|
16
|
+
WHATSAPPBUSINESS?: string;
|
|
17
|
+
PINTEREST?: string;
|
|
18
|
+
LINKEDIN?: string;
|
|
19
|
+
SNAPCHAT?: string;
|
|
20
|
+
SHARE_BACKGROUND_IMAGE?: string;
|
|
21
|
+
SHARE_BACKGROUND_VIDEO?: string;
|
|
22
|
+
SHARE_STICKER_IMAGE?: string;
|
|
23
|
+
SHARE_BACKGROUND_AND_STICKER_IMAGE?: string;
|
|
24
|
+
SMS?: string;
|
|
25
|
+
GENERIC?: string;
|
|
26
|
+
};
|
|
27
|
+
open: (options: Object) => Promise<{
|
|
28
|
+
success: boolean;
|
|
29
|
+
message: string;
|
|
30
|
+
}>;
|
|
31
|
+
shareSingle: (options: Object) => Promise<{
|
|
32
|
+
success: boolean;
|
|
33
|
+
message: string;
|
|
34
|
+
}>;
|
|
35
|
+
isPackageInstalled: (packagename: string) => Promise<boolean>;
|
|
36
|
+
isBase64File: (url: string) => Promise<boolean>;
|
|
37
|
+
}
|
|
38
|
+
declare const _default: Spec;
|
|
39
|
+
export default _default;
|
|
@@ -10,23 +10,23 @@ declare const RNShare: {
|
|
|
10
10
|
readonly Overlay: import("react").FC<import("react").PropsWithChildren<import("./components/Overlay").OverlayProps>>;
|
|
11
11
|
readonly Sheet: import("react").FC<import("react").PropsWithChildren<import("./components/Sheet").SheetProps>>;
|
|
12
12
|
readonly Social: {
|
|
13
|
-
readonly FACEBOOK:
|
|
14
|
-
readonly FACEBOOK_STORIES:
|
|
15
|
-
readonly PAGESMANAGER:
|
|
16
|
-
readonly TWITTER:
|
|
17
|
-
readonly WHATSAPP:
|
|
18
|
-
readonly WHATSAPPBUSINESS:
|
|
19
|
-
readonly INSTAGRAM:
|
|
20
|
-
readonly INSTAGRAM_STORIES:
|
|
21
|
-
readonly GOOGLEPLUS:
|
|
22
|
-
readonly EMAIL:
|
|
23
|
-
readonly PINTEREST:
|
|
24
|
-
readonly LINKEDIN:
|
|
25
|
-
readonly SMS:
|
|
26
|
-
readonly TELEGRAM:
|
|
27
|
-
readonly MESSENGER:
|
|
28
|
-
readonly SNAPCHAT:
|
|
29
|
-
readonly VIBER:
|
|
13
|
+
readonly FACEBOOK: string;
|
|
14
|
+
readonly FACEBOOK_STORIES: string;
|
|
15
|
+
readonly PAGESMANAGER: string;
|
|
16
|
+
readonly TWITTER: string;
|
|
17
|
+
readonly WHATSAPP: string;
|
|
18
|
+
readonly WHATSAPPBUSINESS: string;
|
|
19
|
+
readonly INSTAGRAM: string;
|
|
20
|
+
readonly INSTAGRAM_STORIES: string;
|
|
21
|
+
readonly GOOGLEPLUS: string;
|
|
22
|
+
readonly EMAIL: string;
|
|
23
|
+
readonly PINTEREST: string;
|
|
24
|
+
readonly LINKEDIN: string;
|
|
25
|
+
readonly SMS: string;
|
|
26
|
+
readonly TELEGRAM: string;
|
|
27
|
+
readonly MESSENGER: string;
|
|
28
|
+
readonly SNAPCHAT: string;
|
|
29
|
+
readonly VIBER: string;
|
|
30
30
|
};
|
|
31
31
|
readonly open: (options: ShareOptions) => Promise<ShareOpenResult | never>;
|
|
32
32
|
readonly shareSingle: (options: ShareSingleOptions) => Promise<ShareSingleResult | never>;
|
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": "9.0.1",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/react-native-community/react-native-share.git"
|
|
@@ -16,13 +16,14 @@
|
|
|
16
16
|
"files": [
|
|
17
17
|
"src",
|
|
18
18
|
"lib",
|
|
19
|
-
"!**/__tests__",
|
|
20
|
-
"!**/__fixtures__",
|
|
21
|
-
"!**/__mocks__",
|
|
22
19
|
"android",
|
|
23
20
|
"ios",
|
|
24
21
|
"windows",
|
|
25
|
-
"
|
|
22
|
+
"codegenSpec",
|
|
23
|
+
"RNShare.podspec",
|
|
24
|
+
"!**/__tests__",
|
|
25
|
+
"!**/__fixtures__",
|
|
26
|
+
"!**/__mocks__"
|
|
26
27
|
],
|
|
27
28
|
"devDependencies": {
|
|
28
29
|
"@babel/core": "^7.12.9",
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
"@semantic-release/npm": "^7.0.6",
|
|
37
38
|
"@semantic-release/release-notes-generator": "^9.0.1",
|
|
38
39
|
"@types/react": "16.14.5",
|
|
39
|
-
"@types/react-native": "0.
|
|
40
|
+
"@types/react-native": "0.68.15",
|
|
40
41
|
"eslint": "^7.24.0",
|
|
41
42
|
"eslint-config-satya164": "3.1.10",
|
|
42
43
|
"husky": "4.3.0",
|
|
@@ -78,7 +79,7 @@
|
|
|
78
79
|
"start": "react-native start",
|
|
79
80
|
"start:android": "react-native run-android",
|
|
80
81
|
"start:ios": "react-native run-ios --project-path example/ios",
|
|
81
|
-
"lint": "eslint \"src/**/*.{js,ts,tsx}\" --max-warnings=0",
|
|
82
|
+
"lint": "eslint \"src/**/*.{js,ts,tsx}\" \"codegenSpec/**/*.{js,ts,tsx}\" --max-warnings=0",
|
|
82
83
|
"typescript": "tsc --noEmit",
|
|
83
84
|
"validate": "yarn lint && yarn typescript",
|
|
84
85
|
"ci:publish": "npx semantic-release",
|
|
@@ -125,5 +126,13 @@
|
|
|
125
126
|
"module",
|
|
126
127
|
"typescript"
|
|
127
128
|
]
|
|
129
|
+
},
|
|
130
|
+
"codegenConfig": {
|
|
131
|
+
"name": "RNShareSpec",
|
|
132
|
+
"type": "modules",
|
|
133
|
+
"jsSrcsDir": "./codegenSpec",
|
|
134
|
+
"android": {
|
|
135
|
+
"javaPackageName": "cl.json"
|
|
136
|
+
}
|
|
128
137
|
}
|
|
129
138
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Platform, PermissionsAndroid } from 'react-native';
|
|
2
|
+
|
|
3
|
+
import NativeRNShare from '../../codegenSpec/NativeRNShare';
|
|
2
4
|
|
|
3
5
|
import { ShareOptions } from '../types';
|
|
4
6
|
|
|
@@ -17,15 +19,13 @@ const requireAndAskPermissions = async (
|
|
|
17
19
|
urls.map(
|
|
18
20
|
(url) =>
|
|
19
21
|
new Promise((resolve, reject) => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
(error) => {
|
|
23
|
-
reject(error);
|
|
24
|
-
},
|
|
25
|
-
(isBase64) => {
|
|
22
|
+
NativeRNShare.isBase64File(url)
|
|
23
|
+
.then((isBase64: boolean) => {
|
|
26
24
|
resolve(isBase64);
|
|
27
|
-
}
|
|
28
|
-
|
|
25
|
+
})
|
|
26
|
+
.catch((error: Error) => {
|
|
27
|
+
reject(error);
|
|
28
|
+
});
|
|
29
29
|
}),
|
|
30
30
|
),
|
|
31
31
|
);
|
package/src/index.tsx
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Platform } from 'react-native';
|
|
2
|
+
|
|
3
|
+
import NativeRNShare from '../codegenSpec/NativeRNShare';
|
|
2
4
|
|
|
3
5
|
import Overlay from './components/Overlay';
|
|
4
6
|
import Sheet from './components/Sheet';
|
|
@@ -23,23 +25,23 @@ const RNShare = {
|
|
|
23
25
|
Sheet,
|
|
24
26
|
|
|
25
27
|
Social: {
|
|
26
|
-
FACEBOOK:
|
|
27
|
-
FACEBOOK_STORIES:
|
|
28
|
-
PAGESMANAGER:
|
|
29
|
-
TWITTER:
|
|
30
|
-
WHATSAPP:
|
|
31
|
-
WHATSAPPBUSINESS:
|
|
32
|
-
INSTAGRAM:
|
|
33
|
-
INSTAGRAM_STORIES:
|
|
34
|
-
GOOGLEPLUS:
|
|
35
|
-
EMAIL:
|
|
36
|
-
PINTEREST:
|
|
37
|
-
LINKEDIN:
|
|
38
|
-
SMS:
|
|
39
|
-
TELEGRAM:
|
|
40
|
-
MESSENGER:
|
|
41
|
-
SNAPCHAT:
|
|
42
|
-
VIBER:
|
|
28
|
+
FACEBOOK: NativeRNShare.getConstants().FACEBOOK || Social.Facebook,
|
|
29
|
+
FACEBOOK_STORIES: NativeRNShare.getConstants().FACEBOOKSTORIES || Social.FacebookStories,
|
|
30
|
+
PAGESMANAGER: NativeRNShare.getConstants().PAGESMANAGER || Social.Pagesmanager,
|
|
31
|
+
TWITTER: NativeRNShare.getConstants().TWITTER || Social.Twitter,
|
|
32
|
+
WHATSAPP: NativeRNShare.getConstants().WHATSAPP || Social.Whatsapp,
|
|
33
|
+
WHATSAPPBUSINESS: NativeRNShare.getConstants().WHATSAPPBUSINESS || Social.Whatsappbusiness,
|
|
34
|
+
INSTAGRAM: NativeRNShare.getConstants().INSTAGRAM || Social.Instagram,
|
|
35
|
+
INSTAGRAM_STORIES: NativeRNShare.getConstants().INSTAGRAMSTORIES || Social.InstagramStories,
|
|
36
|
+
GOOGLEPLUS: NativeRNShare.getConstants().GOOGLEPLUS || Social.Googleplus,
|
|
37
|
+
EMAIL: NativeRNShare.getConstants().EMAIL || Social.Email,
|
|
38
|
+
PINTEREST: NativeRNShare.getConstants().PINTEREST || Social.Pinterest,
|
|
39
|
+
LINKEDIN: NativeRNShare.getConstants().LINKEDIN || Social.Linkedin,
|
|
40
|
+
SMS: NativeRNShare.getConstants().SMS || Social.Sms,
|
|
41
|
+
TELEGRAM: NativeRNShare.getConstants().TELEGRAM || Social.Telegram,
|
|
42
|
+
MESSENGER: NativeRNShare.getConstants().MESSENGER || Social.Messenger,
|
|
43
|
+
SNAPCHAT: NativeRNShare.getConstants().SNAPCHAT || Social.Snapchat,
|
|
44
|
+
VIBER: NativeRNShare.getConstants().VIBER || Social.Viber,
|
|
43
45
|
},
|
|
44
46
|
|
|
45
47
|
open(options: ShareOptions): Promise<ShareOpenResult | never> {
|
|
@@ -57,29 +59,22 @@ const RNShare = {
|
|
|
57
59
|
options.filenames = [options.filename];
|
|
58
60
|
}
|
|
59
61
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
(
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
message,
|
|
77
|
-
});
|
|
78
|
-
} else {
|
|
79
|
-
reject(new Error('User did not share'));
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
);
|
|
62
|
+
NativeRNShare.open(options).then((ret: { success: boolean; message: string }) => {
|
|
63
|
+
if (ret.success) {
|
|
64
|
+
return resolve({
|
|
65
|
+
success: ret.success,
|
|
66
|
+
message: ret.message,
|
|
67
|
+
});
|
|
68
|
+
} else if (options.failOnCancel === false) {
|
|
69
|
+
return resolve({
|
|
70
|
+
dismissedAction: true,
|
|
71
|
+
success: ret.success,
|
|
72
|
+
message: ret.message,
|
|
73
|
+
});
|
|
74
|
+
} else {
|
|
75
|
+
reject(new Error('User did not share'));
|
|
76
|
+
}
|
|
77
|
+
});
|
|
83
78
|
})
|
|
84
79
|
.catch((e: unknown) => reject(e));
|
|
85
80
|
});
|
|
@@ -100,19 +95,14 @@ const RNShare = {
|
|
|
100
95
|
message: 'Instagram Story share requires an appId based on Meta policy.',
|
|
101
96
|
});
|
|
102
97
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
options,
|
|
106
|
-
(error) => {
|
|
107
|
-
return reject({ error });
|
|
108
|
-
},
|
|
109
|
-
(success, message) => {
|
|
98
|
+
NativeRNShare.shareSingle(options)
|
|
99
|
+
.then((ret: { success: boolean; message: string }) => {
|
|
110
100
|
return resolve({
|
|
111
|
-
success: Boolean(success),
|
|
112
|
-
message,
|
|
101
|
+
success: Boolean(ret.success),
|
|
102
|
+
message: ret.message,
|
|
113
103
|
});
|
|
114
|
-
}
|
|
115
|
-
|
|
104
|
+
})
|
|
105
|
+
.catch((e: unknown) => reject(e));
|
|
116
106
|
})
|
|
117
107
|
.catch((e: unknown) => reject(e));
|
|
118
108
|
});
|
|
@@ -124,18 +114,14 @@ const RNShare = {
|
|
|
124
114
|
isPackageInstalled(packageName: string): Promise<IsPackageInstalledResult | never> {
|
|
125
115
|
if (Platform.OS === 'android') {
|
|
126
116
|
return new Promise((resolve, reject) => {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
(error) => {
|
|
130
|
-
return reject({ error });
|
|
131
|
-
},
|
|
132
|
-
(isInstalled) => {
|
|
117
|
+
NativeRNShare.isPackageInstalled(packageName)
|
|
118
|
+
.then((isInstalled: boolean) => {
|
|
133
119
|
return resolve({
|
|
134
120
|
isInstalled,
|
|
135
121
|
message: 'Package is Installed',
|
|
136
122
|
});
|
|
137
|
-
}
|
|
138
|
-
|
|
123
|
+
})
|
|
124
|
+
.catch((e: unknown) => reject(e));
|
|
139
125
|
});
|
|
140
126
|
} else {
|
|
141
127
|
throw new Error('Not implemented');
|