react-native-share 12.0.4 → 12.0.6

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 CHANGED
@@ -33,7 +33,8 @@ Configure you `app.config.ts` or `app.json` to use the permissions needed by the
33
33
  "com.instagram.android",
34
34
  "com.twitter.android",
35
35
  "com.zhiliaoapp.musically",
36
- ]
36
+ ],
37
+ "enableBase64ShareAndroid": true
37
38
  }
38
39
  ]
39
40
  ]
@@ -63,6 +64,12 @@ Configure you `app.config.ts` or `app.json` to use the permissions needed by the
63
64
  </queries>
64
65
  ```
65
66
 
67
+ `enableBase64ShareAndroid` will take care of adding the permission to the AndroidManifest.xml.
68
+
69
+ ```xml
70
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
71
+ ```
72
+
66
73
  And prebuild the project with `expo prebuild`.
67
74
 
68
75
  ## Bare React Native
@@ -26,9 +26,9 @@ const ShareSheet = ({
26
26
  return false;
27
27
  }, [visible, onCancel]);
28
28
  React.useEffect(() => {
29
- _reactNative.BackHandler.addEventListener('hardwareBackPress', backButtonHandler);
29
+ const subscription = _reactNative.BackHandler.addEventListener('hardwareBackPress', backButtonHandler);
30
30
  return () => {
31
- _reactNative.BackHandler.removeEventListener('hardwareBackPress', backButtonHandler);
31
+ subscription.remove();
32
32
  };
33
33
  }, [backButtonHandler]);
34
34
  return /*#__PURE__*/React.createElement(_Overlay.default, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_Overlay","_interopRequireDefault","_Sheet","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ShareSheet","style","overlayStyle","visible","onCancel","children","backButtonHandler","useCallback","useEffect","BackHandler","addEventListener","removeEventListener","createElement","View","styles","actionSheetContainer","TouchableOpacity","button","onPress","buttonContainer","StyleSheet","create","backgroundColor","flex","justifyContent","paddingBottom","paddingTop","overflow","_default","exports"],"sourceRoot":"../../../src","sources":["components/ShareSheet.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_Overlay","_interopRequireDefault","_Sheet","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ShareSheet","style","overlayStyle","visible","onCancel","children","backButtonHandler","useCallback","useEffect","subscription","BackHandler","addEventListener","remove","createElement","View","styles","actionSheetContainer","TouchableOpacity","button","onPress","buttonContainer","StyleSheet","create","backgroundColor","flex","justifyContent","paddingBottom","paddingTop","overflow","_default","exports"],"sourceRoot":"../../../src","sources":["components/ShareSheet.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AASA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAD,sBAAA,CAAAH,OAAA;AAA4B,SAAAG,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAS5B,MAAMY,UAA8D,GAAGA,CAAC;EACtEC,KAAK,GAAG,CAAC,CAAC;EACVC,YAAY,GAAG,CAAC,CAAC;EACjBC,OAAO;EACPC,QAAQ;EACRC;AACF,CAAC,KAAK;EACJ,MAAMC,iBAAiB,GAAGnC,KAAK,CAACoC,WAAW,CAAC,MAAM;IAChD,IAAIJ,OAAO,EAAE;MACXC,QAAQ,CAAC,CAAC;MACV,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd,CAAC,EAAE,CAACD,OAAO,EAAEC,QAAQ,CAAC,CAAC;EAEvBjC,KAAK,CAACqC,SAAS,CAAC,MAAM;IACpB,MAAMC,YAAY,GAAGC,wBAAW,CAACC,gBAAgB,CAAC,mBAAmB,EAAEL,iBAAiB,CAAC;IACzF,OAAO,MAAM;MACXG,YAAY,CAACG,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,CAACN,iBAAiB,CAAC,CAAC;EAEvB,oBACEnC,KAAA,CAAA0C,aAAA,CAACtC,QAAA,CAAAK,OAAO;IAACuB,OAAO,EAAEA;EAAQ,gBACxBhC,KAAA,CAAA0C,aAAA,CAACvC,YAAA,CAAAwC,IAAI;IAACb,KAAK,EAAE,CAACc,MAAM,CAACC,oBAAoB,EAAEd,YAAY;EAAE,gBACvD/B,KAAA,CAAA0C,aAAA,CAACvC,YAAA,CAAA2C,gBAAgB;IAAChB,KAAK,EAAEc,MAAM,CAACG,MAAO;IAACC,OAAO,EAAEf;EAAS,CAAE,CAAC,eAC7DjC,KAAA,CAAA0C,aAAA,CAACpC,MAAA,CAAAG,OAAK;IAACuB,OAAO,EAAEA;EAAQ,gBACtBhC,KAAA,CAAA0C,aAAA,CAACvC,YAAA,CAAAwC,IAAI;IAACb,KAAK,EAAE,CAACc,MAAM,CAACK,eAAe,EAAEnB,KAAK;EAAE,GAAEI,QAAe,CACzD,CACH,CACC,CAAC;AAEd,CAAC;AAED,MAAMU,MAAM,GAAGM,uBAAU,CAACC,MAAM,CAAC;EAC/BN,oBAAoB,EAAE;IACpBO,eAAe,EAAE,oBAAoB;IACrCC,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,UAAU;IAC1BC,aAAa,EAAE,CAAC;IAChBC,UAAU,EAAE;EACd,CAAC;EACDP,eAAe,EAAE;IACfG,eAAe,EAAE,OAAO;IACxBK,QAAQ,EAAE,QAAQ;IAClBF,aAAa,EAAE,CAAC;IAChBC,UAAU,EAAE;EACd,CAAC;EACDT,MAAM,EAAE;IACNM,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAAlD,OAAA,GAEYoB,UAAU"}
@@ -17,9 +17,9 @@ const ShareSheet = ({
17
17
  return false;
18
18
  }, [visible, onCancel]);
19
19
  React.useEffect(() => {
20
- BackHandler.addEventListener('hardwareBackPress', backButtonHandler);
20
+ const subscription = BackHandler.addEventListener('hardwareBackPress', backButtonHandler);
21
21
  return () => {
22
- BackHandler.removeEventListener('hardwareBackPress', backButtonHandler);
22
+ subscription.remove();
23
23
  };
24
24
  }, [backButtonHandler]);
25
25
  return /*#__PURE__*/React.createElement(Overlay, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","TouchableOpacity","BackHandler","StyleSheet","Overlay","Sheet","ShareSheet","style","overlayStyle","visible","onCancel","children","backButtonHandler","useCallback","useEffect","addEventListener","removeEventListener","createElement","styles","actionSheetContainer","button","onPress","buttonContainer","create","backgroundColor","flex","justifyContent","paddingBottom","paddingTop","overflow"],"sourceRoot":"../../../src","sources":["components/ShareSheet.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SACEC,IAAI,EACJC,gBAAgB,EAChBC,WAAW,EAGXC,UAAU,QACL,cAAc;AAErB,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,KAAK,MAAM,SAAS;AAS3B,MAAMC,UAA8D,GAAGA,CAAC;EACtEC,KAAK,GAAG,CAAC,CAAC;EACVC,YAAY,GAAG,CAAC,CAAC;EACjBC,OAAO;EACPC,QAAQ;EACRC;AACF,CAAC,KAAK;EACJ,MAAMC,iBAAiB,GAAGb,KAAK,CAACc,WAAW,CAAC,MAAM;IAChD,IAAIJ,OAAO,EAAE;MACXC,QAAQ,CAAC,CAAC;MACV,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd,CAAC,EAAE,CAACD,OAAO,EAAEC,QAAQ,CAAC,CAAC;EAEvBX,KAAK,CAACe,SAAS,CAAC,MAAM;IACpBZ,WAAW,CAACa,gBAAgB,CAAC,mBAAmB,EAAEH,iBAAiB,CAAC;IACpE,OAAO,MAAM;MACXV,WAAW,CAACc,mBAAmB,CAAC,mBAAmB,EAAEJ,iBAAiB,CAAC;IACzE,CAAC;EACH,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,oBACEb,KAAA,CAAAkB,aAAA,CAACb,OAAO;IAACK,OAAO,EAAEA;EAAQ,gBACxBV,KAAA,CAAAkB,aAAA,CAACjB,IAAI;IAACO,KAAK,EAAE,CAACW,MAAM,CAACC,oBAAoB,EAAEX,YAAY;EAAE,gBACvDT,KAAA,CAAAkB,aAAA,CAAChB,gBAAgB;IAACM,KAAK,EAAEW,MAAM,CAACE,MAAO;IAACC,OAAO,EAAEX;EAAS,CAAE,CAAC,eAC7DX,KAAA,CAAAkB,aAAA,CAACZ,KAAK;IAACI,OAAO,EAAEA;EAAQ,gBACtBV,KAAA,CAAAkB,aAAA,CAACjB,IAAI;IAACO,KAAK,EAAE,CAACW,MAAM,CAACI,eAAe,EAAEf,KAAK;EAAE,GAAEI,QAAe,CACzD,CACH,CACC,CAAC;AAEd,CAAC;AAED,MAAMO,MAAM,GAAGf,UAAU,CAACoB,MAAM,CAAC;EAC/BJ,oBAAoB,EAAE;IACpBK,eAAe,EAAE,oBAAoB;IACrCC,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,UAAU;IAC1BC,aAAa,EAAE,CAAC;IAChBC,UAAU,EAAE;EACd,CAAC;EACDN,eAAe,EAAE;IACfE,eAAe,EAAE,OAAO;IACxBK,QAAQ,EAAE,QAAQ;IAClBF,aAAa,EAAE,CAAC;IAChBC,UAAU,EAAE;EACd,CAAC;EACDR,MAAM,EAAE;IACNK,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,eAAenB,UAAU"}
1
+ {"version":3,"names":["React","View","TouchableOpacity","BackHandler","StyleSheet","Overlay","Sheet","ShareSheet","style","overlayStyle","visible","onCancel","children","backButtonHandler","useCallback","useEffect","subscription","addEventListener","remove","createElement","styles","actionSheetContainer","button","onPress","buttonContainer","create","backgroundColor","flex","justifyContent","paddingBottom","paddingTop","overflow"],"sourceRoot":"../../../src","sources":["components/ShareSheet.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SACEC,IAAI,EACJC,gBAAgB,EAChBC,WAAW,EAGXC,UAAU,QACL,cAAc;AAErB,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,KAAK,MAAM,SAAS;AAS3B,MAAMC,UAA8D,GAAGA,CAAC;EACtEC,KAAK,GAAG,CAAC,CAAC;EACVC,YAAY,GAAG,CAAC,CAAC;EACjBC,OAAO;EACPC,QAAQ;EACRC;AACF,CAAC,KAAK;EACJ,MAAMC,iBAAiB,GAAGb,KAAK,CAACc,WAAW,CAAC,MAAM;IAChD,IAAIJ,OAAO,EAAE;MACXC,QAAQ,CAAC,CAAC;MACV,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd,CAAC,EAAE,CAACD,OAAO,EAAEC,QAAQ,CAAC,CAAC;EAEvBX,KAAK,CAACe,SAAS,CAAC,MAAM;IACpB,MAAMC,YAAY,GAAGb,WAAW,CAACc,gBAAgB,CAAC,mBAAmB,EAAEJ,iBAAiB,CAAC;IACzF,OAAO,MAAM;MACXG,YAAY,CAACE,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,CAACL,iBAAiB,CAAC,CAAC;EAEvB,oBACEb,KAAA,CAAAmB,aAAA,CAACd,OAAO;IAACK,OAAO,EAAEA;EAAQ,gBACxBV,KAAA,CAAAmB,aAAA,CAAClB,IAAI;IAACO,KAAK,EAAE,CAACY,MAAM,CAACC,oBAAoB,EAAEZ,YAAY;EAAE,gBACvDT,KAAA,CAAAmB,aAAA,CAACjB,gBAAgB;IAACM,KAAK,EAAEY,MAAM,CAACE,MAAO;IAACC,OAAO,EAAEZ;EAAS,CAAE,CAAC,eAC7DX,KAAA,CAAAmB,aAAA,CAACb,KAAK;IAACI,OAAO,EAAEA;EAAQ,gBACtBV,KAAA,CAAAmB,aAAA,CAAClB,IAAI;IAACO,KAAK,EAAE,CAACY,MAAM,CAACI,eAAe,EAAEhB,KAAK;EAAE,GAAEI,QAAe,CACzD,CACH,CACC,CAAC;AAEd,CAAC;AAED,MAAMQ,MAAM,GAAGhB,UAAU,CAACqB,MAAM,CAAC;EAC/BJ,oBAAoB,EAAE;IACpBK,eAAe,EAAE,oBAAoB;IACrCC,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,UAAU;IAC1BC,aAAa,EAAE,CAAC;IAChBC,UAAU,EAAE;EACd,CAAC;EACDN,eAAe,EAAE;IACfE,eAAe,EAAE,OAAO;IACxBK,QAAQ,EAAE,QAAQ;IAClBF,aAAa,EAAE,CAAC;IAChBC,UAAU,EAAE;EACd,CAAC;EACDR,MAAM,EAAE;IACNK,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,eAAepB,UAAU"}
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": "12.0.4",
4
+ "version": "12.0.6",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/react-native-community/react-native-share.git"
@@ -48,6 +48,7 @@
48
48
  "babel-jest": "^29.7.0",
49
49
  "eslint": "^8.53.0",
50
50
  "eslint-config-satya164": "^3.2.0",
51
+ "expo-build-properties": "^0.13.1",
51
52
  "husky": "^4.3.0",
52
53
  "jest": "^29.7.0",
53
54
  "lint-staged": "^15.0.2",
@@ -1 +1,7 @@
1
- export {};
1
+ import { ExportedConfig } from '@expo/config-plugins';
2
+ declare const _default: (config: ExportedConfig, props: {
3
+ enableBase64ShareAndroid?: boolean;
4
+ android?: string[];
5
+ ios?: string[];
6
+ }) => any;
7
+ export default _default;
@@ -1,84 +1,42 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const config_plugins_1 = require("@expo/config-plugins");
4
- // eslint-disable-next-line import/no-commonjs, @typescript-eslint/no-var-requires
5
- const pkg = require('../../package.json');
3
+ const expo_build_properties_1 = require("expo-build-properties");
6
4
  /**
7
- * @type {import('./types').ManifestQueries}
8
- * what we are trying to add:
9
- * <queries>
10
- <package android:name="com.facebook.katana"/>
11
- <package android:name="com.instagram.android"/>
12
- <package android:name="com.twitter.android"/>
13
- <package android:name="com.zhiliaoapp.musically"/>
14
- <intent></intent>
15
- <action android:name="android.intent.action.VIEW"/>
16
- <category android:name="android.intent.category.BROWSABLE"/>
17
- <data android:scheme="https"/>
18
- </intent>
19
- </queries>
5
+ * Handles for edge case when LSApplicationQueriesSchemes is an object or undefined.
20
6
  */
21
- /**
22
- * @param {import('@expo/config-plugins').ExportedConfig} config
23
- */
24
- const withAndroidManifestService = (config, props) => {
25
- return (0, config_plugins_1.withAndroidManifest)(config, (config) => {
26
- config.modResults.manifest = {
27
- ...config.modResults.manifest,
28
- queries: {
29
- package: props?.android?.map((social) => ({
30
- $: {
31
- 'android:name': social,
32
- },
33
- })),
34
- intent: [
35
- {
36
- action: {
37
- $: {
38
- 'android:name': 'android.intent.action.VIEW',
39
- },
40
- },
41
- category: {
42
- $: {
43
- 'android:name': 'android.intent.category.BROWSABLE',
44
- },
45
- },
46
- data: {
47
- $: {
48
- 'android:scheme': 'https',
49
- },
50
- },
51
- },
52
- ],
53
- },
54
- };
55
- return config;
56
- });
57
- };
58
- /**
59
- * Handles for edge case when LSApplicationQueriesSchemes is an object or undefined.
60
- */
61
7
  const getIOSQuerySchemes = (config) => {
62
8
  return Array.isArray(config.ios?.infoPlist?.LSApplicationQueriesSchemes)
63
9
  ? config.ios?.infoPlist?.LSApplicationQueriesSchemes ?? []
64
10
  : [];
65
11
  };
66
- const withInfoPlist = (config, props) => {
67
- return {
12
+ exports.default = (config, props) => {
13
+ return (0, expo_build_properties_1.withBuildProperties)({
68
14
  ...config,
15
+ android: {
16
+ ...config.android,
17
+ ...(props.enableBase64ShareAndroid
18
+ ? {
19
+ permissions: [
20
+ ...new Set([
21
+ ...(config.android?.permissions ?? []),
22
+ 'android.permission.WRITE_EXTERNAL_STORAGE',
23
+ ]),
24
+ ],
25
+ }
26
+ : {}),
27
+ },
69
28
  ios: {
70
29
  ...config.ios,
71
30
  infoPlist: {
72
31
  ...config.ios?.infoPlist,
73
- LSApplicationQueriesSchemes: [...getIOSQuerySchemes(config), ...props?.ios ?? []]
32
+ LSApplicationQueriesSchemes: [...getIOSQuerySchemes(config), ...(props?.ios ?? [])],
74
33
  },
75
34
  },
76
- };
35
+ }, {
36
+ android: {
37
+ manifestQueries: {
38
+ package: props.android ?? [],
39
+ },
40
+ },
41
+ });
77
42
  };
78
- function withSocialShare(config, props) {
79
- config = withAndroidManifestService(config, props); // Android
80
- config = withInfoPlist(config, props); // iOS
81
- return config;
82
- }
83
- // eslint-disable-next-line import/no-commonjs
84
- module.exports = (0, config_plugins_1.createRunOncePlugin)(withSocialShare, pkg.name, pkg.version);
@@ -1,100 +1,53 @@
1
- import {
2
- withAndroidManifest,
3
- createRunOncePlugin,
4
- ExportedConfigWithProps,
5
- ExportedConfig,
6
- } from '@expo/config-plugins';
7
-
8
- // eslint-disable-next-line import/no-commonjs, @typescript-eslint/no-var-requires
9
- const pkg = require('../../package.json');
1
+ import { ExportedConfig } from '@expo/config-plugins';
2
+ import { withBuildProperties } from 'expo-build-properties';
10
3
 
11
4
  /**
12
- * @type {import('./types').ManifestQueries}
13
- * what we are trying to add:
14
- * <queries>
15
- <package android:name="com.facebook.katana"/>
16
- <package android:name="com.instagram.android"/>
17
- <package android:name="com.twitter.android"/>
18
- <package android:name="com.zhiliaoapp.musically"/>
19
- <intent></intent>
20
- <action android:name="android.intent.action.VIEW"/>
21
- <category android:name="android.intent.category.BROWSABLE"/>
22
- <data android:scheme="https"/>
23
- </intent>
24
- </queries>
5
+ * Handles for edge case when LSApplicationQueriesSchemes is an object or undefined.
25
6
  */
26
-
27
- /**
28
- * @param {import('@expo/config-plugins').ExportedConfig} config
29
- */
30
- const withAndroidManifestService = (config: ExportedConfig, props: WithSocialShareProps) => {
31
- return withAndroidManifest(config, (config: ExportedConfigWithProps) => {
32
- config.modResults.manifest = {
33
- ...config.modResults.manifest,
34
- queries: {
35
- package: props?.android?.map((social) => ({
36
- $: {
37
- 'android:name': social,
38
- },
39
- })),
40
- intent: [
41
- {
42
- action: {
43
- $: {
44
- 'android:name': 'android.intent.action.VIEW',
45
- },
46
- },
47
- category: {
48
- $: {
49
- 'android:name': 'android.intent.category.BROWSABLE',
50
- },
51
- },
52
- data: {
53
- $: {
54
- 'android:scheme': 'https',
55
- },
56
- },
57
- },
58
- ],
59
- },
60
- };
61
-
62
- return config;
63
- });
64
- };
65
-
66
- /**
67
- * Handles for edge case when LSApplicationQueriesSchemes is an object or undefined.
68
- */
69
- const getIOSQuerySchemes = (config: ExportedConfig): Array<string> => {
7
+ const getIOSQuerySchemes = (config: ExportedConfig): string[] => {
70
8
  return Array.isArray(config.ios?.infoPlist?.LSApplicationQueriesSchemes)
71
9
  ? config.ios?.infoPlist?.LSApplicationQueriesSchemes ?? []
72
10
  : [];
73
- }
11
+ };
74
12
 
75
- const withInfoPlist = (config: ExportedConfig, props: WithSocialShareProps) => {
76
- return {
77
- ...config,
78
- ios: {
79
- ...config.ios,
80
- infoPlist: {
81
- ...config.ios?.infoPlist,
82
- LSApplicationQueriesSchemes: [...getIOSQuerySchemes(config), ...props?.ios ?? []]
13
+ export default (
14
+ config: ExportedConfig,
15
+ props: {
16
+ enableBase64ShareAndroid?: boolean;
17
+ android?: string[];
18
+ ios?: string[];
19
+ },
20
+ ) => {
21
+ return withBuildProperties(
22
+ {
23
+ ...config,
24
+ android: {
25
+ ...config.android,
26
+ ...(props.enableBase64ShareAndroid
27
+ ? {
28
+ permissions: [
29
+ ...new Set([
30
+ ...(config.android?.permissions ?? []),
31
+ 'android.permission.WRITE_EXTERNAL_STORAGE',
32
+ ]),
33
+ ],
34
+ }
35
+ : {}),
36
+ },
37
+ ios: {
38
+ ...config.ios,
39
+ infoPlist: {
40
+ ...config.ios?.infoPlist,
41
+ LSApplicationQueriesSchemes: [...getIOSQuerySchemes(config), ...(props?.ios ?? [])],
42
+ },
83
43
  },
84
44
  },
85
- };
86
- };
87
-
88
- type WithSocialShareProps = {
89
- ios: string[];
90
- android: string[];
45
+ {
46
+ android: {
47
+ manifestQueries: {
48
+ package: props.android ?? [],
49
+ },
50
+ },
51
+ },
52
+ );
91
53
  };
92
-
93
- function withSocialShare(config: ExportedConfig, props: WithSocialShareProps) {
94
- config = withAndroidManifestService(config, props); // Android
95
- config = withInfoPlist(config, props); // iOS
96
- return config;
97
- }
98
-
99
- // eslint-disable-next-line import/no-commonjs
100
- module.exports = createRunOncePlugin(withSocialShare, pkg.name, pkg.version);
@@ -34,9 +34,9 @@ const ShareSheet: React.FC<React.PropsWithChildren<ShareSheetProps>> = ({
34
34
  }, [visible, onCancel]);
35
35
 
36
36
  React.useEffect(() => {
37
- BackHandler.addEventListener('hardwareBackPress', backButtonHandler);
37
+ const subscription = BackHandler.addEventListener('hardwareBackPress', backButtonHandler);
38
38
  return () => {
39
- BackHandler.removeEventListener('hardwareBackPress', backButtonHandler);
39
+ subscription.remove();
40
40
  };
41
41
  }, [backButtonHandler]);
42
42