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.
Files changed (83) hide show
  1. package/README.md +4 -4
  2. package/RNShare.podspec +18 -1
  3. package/android/build.gradle +16 -0
  4. package/android/src/main/java/cl/json/{RNShareModule.java → RNShareImpl.java} +52 -60
  5. package/android/src/main/java/cl/json/RNSharePackage.java +34 -17
  6. package/android/src/main/java/cl/json/social/FacebookStoriesShare.java +1 -1
  7. package/android/src/main/java/cl/json/social/InstagramShare.java +7 -1
  8. package/android/src/main/java/cl/json/social/InstagramStoriesShare.java +1 -1
  9. package/android/src/main/java/cl/json/social/ShareIntent.java +11 -6
  10. package/android/src/main/java/cl/json/social/SingleShareIntent.java +15 -6
  11. package/android/src/main/java/cl/json/social/TargetChosenReceiver.java +23 -17
  12. package/android/src/newarch/cl/json/RNShare.java +55 -0
  13. package/android/src/oldarch/cl/json/RNShare.java +52 -0
  14. package/codegenSpec/NativeRNShare.ts +35 -0
  15. package/ios/EmailShare.h +1 -1
  16. package/ios/EmailShare.m +5 -5
  17. package/ios/FacebookStories.h +1 -1
  18. package/ios/FacebookStories.m +4 -4
  19. package/ios/GenericShare.h +1 -1
  20. package/ios/GenericShare.m +5 -5
  21. package/ios/GooglePlusShare.h +1 -1
  22. package/ios/GooglePlusShare.m +4 -4
  23. package/ios/InstagramShare.h +3 -3
  24. package/ios/InstagramShare.m +16 -16
  25. package/ios/InstagramStories.h +1 -1
  26. package/ios/InstagramStories.m +4 -4
  27. package/ios/MessengerShare.h +1 -1
  28. package/ios/MessengerShare.m +3 -3
  29. package/ios/RNShare.h +16 -2
  30. package/ios/{RNShare.m → RNShare.mm} +71 -25
  31. package/ios/TelegramShare.h +1 -1
  32. package/ios/TelegramShare.m +4 -4
  33. package/ios/ViberShare.h +1 -1
  34. package/ios/ViberShare.m +4 -4
  35. package/ios/WhatsAppShare.h +1 -1
  36. package/ios/WhatsAppShare.m +8 -8
  37. package/lib/commonjs/components/Button.js +21 -25
  38. package/lib/commonjs/components/Button.js.map +1 -1
  39. package/lib/commonjs/components/Overlay.js +7 -15
  40. package/lib/commonjs/components/Overlay.js.map +1 -1
  41. package/lib/commonjs/components/ShareSheet.js +10 -21
  42. package/lib/commonjs/components/ShareSheet.js.map +1 -1
  43. package/lib/commonjs/components/Sheet.js +7 -13
  44. package/lib/commonjs/components/Sheet.js.map +1 -1
  45. package/lib/commonjs/helpers/requireAndAskPermissions.js +6 -16
  46. package/lib/commonjs/helpers/requireAndAskPermissions.js.map +1 -1
  47. package/lib/commonjs/index.js +40 -68
  48. package/lib/commonjs/index.js.map +1 -1
  49. package/lib/commonjs/types.js +9 -12
  50. package/lib/commonjs/types.js.map +1 -1
  51. package/lib/module/components/Button.js +19 -18
  52. package/lib/module/components/Button.js.map +1 -1
  53. package/lib/module/components/Overlay.js +5 -7
  54. package/lib/module/components/Overlay.js.map +1 -1
  55. package/lib/module/components/ShareSheet.js +8 -10
  56. package/lib/module/components/ShareSheet.js.map +1 -1
  57. package/lib/module/components/Sheet.js +5 -6
  58. package/lib/module/components/Sheet.js.map +1 -1
  59. package/lib/module/helpers/requireAndAskPermissions.js +6 -15
  60. package/lib/module/helpers/requireAndAskPermissions.js.map +1 -1
  61. package/lib/module/index.js +31 -50
  62. package/lib/module/index.js.map +1 -1
  63. package/lib/module/types.js +8 -9
  64. package/lib/module/types.js.map +1 -1
  65. package/lib/typescript/codegenSpec/NativeRNShare.d.ts +39 -0
  66. package/lib/typescript/{index.d.ts → src/index.d.ts} +17 -17
  67. package/lib/typescript/{types.d.ts → src/types.d.ts} +1 -0
  68. package/package.json +16 -7
  69. package/src/helpers/requireAndAskPermissions.ts +9 -9
  70. package/src/index.tsx +46 -60
  71. package/src/types.ts +1 -0
  72. package/CHANGELOG.md +0 -133
  73. package/lib/commonjs/typings/react-native.d.js +0 -4
  74. package/lib/commonjs/typings/react-native.d.js.map +0 -1
  75. package/lib/module/typings/react-native.d.js +0 -2
  76. package/lib/module/typings/react-native.d.js.map +0 -1
  77. package/src/typings/react-native.d.ts +0 -58
  78. package/windows/.gitignore +0 -92
  79. /package/lib/typescript/{components → src/components}/Button.d.ts +0 -0
  80. /package/lib/typescript/{components → src/components}/Overlay.d.ts +0 -0
  81. /package/lib/typescript/{components → src/components}/ShareSheet.d.ts +0 -0
  82. /package/lib/typescript/{components → src/components}/Sheet.d.ts +0 -0
  83. /package/lib/typescript/{helpers → src/helpers}/requireAndAskPermissions.d.ts +0 -0
@@ -1,4 +1,5 @@
1
- import { NativeModules, Platform } from 'react-native';
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: NativeModules.RNShare.FACEBOOK || Social.Facebook,
15
- FACEBOOK_STORIES: NativeModules.RNShare.FACEBOOKSTORIES || Social.FacebookStories,
16
- PAGESMANAGER: NativeModules.RNShare.PAGESMANAGER || Social.Pagesmanager,
17
- TWITTER: NativeModules.RNShare.TWITTER || Social.Twitter,
18
- WHATSAPP: NativeModules.RNShare.WHATSAPP || Social.Whatsapp,
19
- WHATSAPPBUSINESS: NativeModules.RNShare.WHATSAPPBUSINESS || Social.Whatsappbusiness,
20
- INSTAGRAM: NativeModules.RNShare.INSTAGRAM || Social.Instagram,
21
- INSTAGRAM_STORIES: NativeModules.RNShare.INSTAGRAMSTORIES || Social.InstagramStories,
22
- GOOGLEPLUS: NativeModules.RNShare.GOOGLEPLUS || Social.Googleplus,
23
- EMAIL: NativeModules.RNShare.EMAIL || Social.Email,
24
- PINTEREST: NativeModules.RNShare.PINTEREST || Social.Pinterest,
25
- LINKEDIN: NativeModules.RNShare.LINKEDIN || Social.Linkedin,
26
- SMS: NativeModules.RNShare.SMS || Social.Sms,
27
- TELEGRAM: NativeModules.RNShare.TELEGRAM || Social.Telegram,
28
- MESSENGER: NativeModules.RNShare.MESSENGER || Social.Messenger,
29
- SNAPCHAT: NativeModules.RNShare.SNAPCHAT || Social.Snapchat,
30
- VIBER: NativeModules.RNShare.VIBER || Social.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
- NativeModules.RNShare.open(options, error => {
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
- NativeModules.RNShare.isPackageInstalled(packageName, error => {
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;
@@ -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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"}
@@ -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
- })(Social || (Social = {}));
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
- })(ShareAsset || (ShareAsset = {}));
26
+ return ShareAsset;
27
+ }({});
28
+
29
+ // iOS 11 or late
31
30
  //# sourceMappingURL=types.js.map
@@ -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;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 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 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"]}
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: Social.Facebook;
14
- readonly FACEBOOK_STORIES: Social.FacebookStories;
15
- readonly PAGESMANAGER: Social.Pagesmanager;
16
- readonly TWITTER: Social.Twitter;
17
- readonly WHATSAPP: Social.Whatsapp;
18
- readonly WHATSAPPBUSINESS: Social.Whatsappbusiness;
19
- readonly INSTAGRAM: Social.Instagram;
20
- readonly INSTAGRAM_STORIES: Social.InstagramStories;
21
- readonly GOOGLEPLUS: Social.Googleplus;
22
- readonly EMAIL: Social.Email;
23
- readonly PINTEREST: Social.Pinterest;
24
- readonly LINKEDIN: Social.Linkedin;
25
- readonly SMS: Social.Sms;
26
- readonly TELEGRAM: Social.Telegram;
27
- readonly MESSENGER: Social.Messenger;
28
- readonly SNAPCHAT: Social.Snapchat;
29
- readonly VIBER: Social.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>;
@@ -53,6 +53,7 @@ export interface ActivityItemSource {
53
53
  linkMetadata?: LinkMetadata;
54
54
  }
55
55
  interface BaseShareSingleOptions {
56
+ appId?: string;
56
57
  urls?: string[];
57
58
  url?: string;
58
59
  type?: 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": "8.2.2",
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
- "RNShare.podspec"
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.63.2",
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 { NativeModules, Platform, PermissionsAndroid } from 'react-native';
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
- NativeModules.RNShare.isBase64File(
21
- url,
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 { NativeModules, Platform } from 'react-native';
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: NativeModules.RNShare.FACEBOOK || Social.Facebook,
27
- FACEBOOK_STORIES: NativeModules.RNShare.FACEBOOKSTORIES || Social.FacebookStories,
28
- PAGESMANAGER: NativeModules.RNShare.PAGESMANAGER || Social.Pagesmanager,
29
- TWITTER: NativeModules.RNShare.TWITTER || Social.Twitter,
30
- WHATSAPP: NativeModules.RNShare.WHATSAPP || Social.Whatsapp,
31
- WHATSAPPBUSINESS: NativeModules.RNShare.WHATSAPPBUSINESS || Social.Whatsappbusiness,
32
- INSTAGRAM: NativeModules.RNShare.INSTAGRAM || Social.Instagram,
33
- INSTAGRAM_STORIES: NativeModules.RNShare.INSTAGRAMSTORIES || Social.InstagramStories,
34
- GOOGLEPLUS: NativeModules.RNShare.GOOGLEPLUS || Social.Googleplus,
35
- EMAIL: NativeModules.RNShare.EMAIL || Social.Email,
36
- PINTEREST: NativeModules.RNShare.PINTEREST || Social.Pinterest,
37
- LINKEDIN: NativeModules.RNShare.LINKEDIN || Social.Linkedin,
38
- SMS: NativeModules.RNShare.SMS || Social.Sms,
39
- TELEGRAM: NativeModules.RNShare.TELEGRAM || Social.Telegram,
40
- MESSENGER: NativeModules.RNShare.MESSENGER || Social.Messenger,
41
- SNAPCHAT: NativeModules.RNShare.SNAPCHAT || Social.Snapchat,
42
- VIBER: NativeModules.RNShare.VIBER || Social.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
- NativeModules.RNShare.open(
62
- options,
63
- (error) => {
64
- return reject({ error });
65
- },
66
- (success, message) => {
67
- if (success) {
68
- return resolve({
69
- success,
70
- message,
71
- });
72
- } else if (options.failOnCancel === false) {
73
- return resolve({
74
- dismissedAction: true,
75
- success,
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
- NativeModules.RNShare.shareSingle(
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
- NativeModules.RNShare.isPackageInstalled(
128
- packageName,
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');
package/src/types.ts CHANGED
@@ -50,6 +50,7 @@ export interface ActivityItemSource {
50
50
  }
51
51
 
52
52
  interface BaseShareSingleOptions {
53
+ appId?: string;
53
54
  urls?: string[];
54
55
  url?: string;
55
56
  type?: string;