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 +8 -1
- package/lib/commonjs/components/ShareSheet.js +2 -2
- package/lib/commonjs/components/ShareSheet.js.map +1 -1
- package/lib/module/components/ShareSheet.js +2 -2
- package/lib/module/components/ShareSheet.js.map +1 -1
- package/package.json +2 -1
- package/plugin/build/index.d.ts +7 -1
- package/plugin/build/index.js +25 -67
- package/plugin/src/index.ts +43 -90
- package/src/components/ShareSheet.tsx +2 -2
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
|
-
|
|
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","
|
|
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":"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"}
|
|
@@ -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
|
-
|
|
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","
|
|
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
|
+
"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",
|
package/plugin/build/index.d.ts
CHANGED
package/plugin/build/index.js
CHANGED
|
@@ -1,84 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
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
|
-
*
|
|
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
|
-
|
|
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);
|
package/plugin/src/index.ts
CHANGED
|
@@ -1,100 +1,53 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
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
|
-
*
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
39
|
+
subscription.remove();
|
|
40
40
|
};
|
|
41
41
|
}, [backButtonHandler]);
|
|
42
42
|
|