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 ADDED
@@ -0,0 +1,2 @@
1
+ // eslint-disable-next-line no-undef, import/no-commonjs
2
+ module.exports = require('./plugin/build');
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.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);
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "build",
5
+ "rootDir": "src",
6
+ "declaration": true
7
+ },
8
+ "include": ["./src"]
9
+ }