react-native-share 12.0.0 → 12.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/app.plugin.js +2 -0
- package/package.json +4 -2
- package/plugin/build/index.d.ts +1 -0
- package/plugin/build/index.js +77 -0
- package/plugin/src/index.ts +94 -0
- package/plugin/tsconfig.json +9 -0
package/app.plugin.js
ADDED
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.1",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/react-native-community/react-native-share.git"
|
|
@@ -22,7 +22,9 @@
|
|
|
22
22
|
"RNShare.podspec",
|
|
23
23
|
"!**/__tests__",
|
|
24
24
|
"!**/__fixtures__",
|
|
25
|
-
"!**/__mocks__"
|
|
25
|
+
"!**/__mocks__",
|
|
26
|
+
"app.plugin.js",
|
|
27
|
+
"plugin"
|
|
26
28
|
],
|
|
27
29
|
"devDependencies": {
|
|
28
30
|
"@babel/core": "^7.23.3",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { withAndroidManifest, createRunOncePlugin, } from '@expo/config-plugins';
|
|
2
|
+
// eslint-disable-next-line import/no-commonjs, @typescript-eslint/no-var-requires
|
|
3
|
+
const pkg = require('../../package.json');
|
|
4
|
+
/**
|
|
5
|
+
* @type {import('./types').ManifestQueries}
|
|
6
|
+
* what we are trying to add:
|
|
7
|
+
* <queries>
|
|
8
|
+
<package android:name="com.facebook.katana"/>
|
|
9
|
+
<package android:name="com.instagram.android"/>
|
|
10
|
+
<package android:name="com.twitter.android"/>
|
|
11
|
+
<package android:name="com.zhiliaoapp.musically"/>
|
|
12
|
+
<intent></intent>
|
|
13
|
+
<action android:name="android.intent.action.VIEW"/>
|
|
14
|
+
<category android:name="android.intent.category.BROWSABLE"/>
|
|
15
|
+
<data android:scheme="https"/>
|
|
16
|
+
</intent>
|
|
17
|
+
</queries>
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* @param {import('@expo/config-plugins').ExportedConfig} config
|
|
21
|
+
*/
|
|
22
|
+
const withAndroidManifestService = (config, props) => {
|
|
23
|
+
return withAndroidManifest(config, (config) => {
|
|
24
|
+
config.modResults.manifest = {
|
|
25
|
+
...config.modResults.manifest,
|
|
26
|
+
queries: {
|
|
27
|
+
package: props?.android?.map((social) => ({
|
|
28
|
+
$: {
|
|
29
|
+
'android:name': social,
|
|
30
|
+
},
|
|
31
|
+
})),
|
|
32
|
+
intent: [
|
|
33
|
+
{
|
|
34
|
+
action: {
|
|
35
|
+
$: {
|
|
36
|
+
'android:name': 'android.intent.action.VIEW',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
category: {
|
|
40
|
+
$: {
|
|
41
|
+
'android:name': 'android.intent.category.BROWSABLE',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
data: {
|
|
45
|
+
$: {
|
|
46
|
+
'android:scheme': 'https',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
return config;
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
const withInfoPlist = (config, props) => {
|
|
57
|
+
return {
|
|
58
|
+
...config,
|
|
59
|
+
ios: {
|
|
60
|
+
...config.ios,
|
|
61
|
+
infoPlist: {
|
|
62
|
+
...config.ios?.infoPlist,
|
|
63
|
+
LSApplicationQueriesSchemes: {
|
|
64
|
+
...config.ios?.infoPlist?.LSApplicationQueriesSchemes,
|
|
65
|
+
...props?.ios,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
function withSocialShare(config, props) {
|
|
72
|
+
config = withAndroidManifestService(config, props); // Android
|
|
73
|
+
config = withInfoPlist(config, props); // iOS
|
|
74
|
+
return config;
|
|
75
|
+
}
|
|
76
|
+
// eslint-disable-next-line import/no-commonjs
|
|
77
|
+
module.exports = createRunOncePlugin(withSocialShare, pkg.name, pkg.version);
|
|
@@ -0,0 +1,94 @@
|
|
|
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');
|
|
10
|
+
|
|
11
|
+
/**
|
|
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>
|
|
25
|
+
*/
|
|
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
|
+
const withInfoPlist = (config: ExportedConfig, props: WithSocialShareProps) => {
|
|
67
|
+
return {
|
|
68
|
+
...config,
|
|
69
|
+
ios: {
|
|
70
|
+
...config.ios,
|
|
71
|
+
infoPlist: {
|
|
72
|
+
...config.ios?.infoPlist,
|
|
73
|
+
LSApplicationQueriesSchemes: {
|
|
74
|
+
...config.ios?.infoPlist?.LSApplicationQueriesSchemes,
|
|
75
|
+
...props?.ios,
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
type WithSocialShareProps = {
|
|
83
|
+
ios: string[];
|
|
84
|
+
android: string[];
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
function withSocialShare(config: ExportedConfig, props: WithSocialShareProps) {
|
|
88
|
+
config = withAndroidManifestService(config, props); // Android
|
|
89
|
+
config = withInfoPlist(config, props); // iOS
|
|
90
|
+
return config;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// eslint-disable-next-line import/no-commonjs
|
|
94
|
+
module.exports = createRunOncePlugin(withSocialShare, pkg.name, pkg.version);
|