react-native-share 8.0.0 → 8.1.0
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/ios/GenericShare.m +1 -1
- package/ios/RNShareActivityItemSource.m +1 -1
- package/lib/commonjs/components/Button.js.map +1 -1
- package/lib/commonjs/components/Overlay.js +24 -39
- package/lib/commonjs/components/Overlay.js.map +1 -1
- package/lib/commonjs/components/ShareSheet.js +34 -38
- package/lib/commonjs/components/ShareSheet.js.map +1 -1
- package/lib/commonjs/components/Sheet.js +15 -25
- package/lib/commonjs/components/Sheet.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/components/Button.js.map +1 -1
- package/lib/module/components/Overlay.js +24 -39
- package/lib/module/components/Overlay.js.map +1 -1
- package/lib/module/components/ShareSheet.js +32 -36
- package/lib/module/components/ShareSheet.js.map +1 -1
- package/lib/module/components/Sheet.js +15 -25
- package/lib/module/components/Sheet.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/components/Button.d.ts +1 -1
- package/lib/typescript/components/Overlay.d.ts +1 -19
- package/lib/typescript/components/ShareSheet.d.ts +2 -8
- package/lib/typescript/components/Sheet.d.ts +1 -11
- package/lib/typescript/index.d.ts +5 -4
- package/lib/typescript/types.d.ts +5 -4
- package/package.json +1 -1
- package/src/components/Button.tsx +7 -1
- package/src/components/Overlay.tsx +17 -30
- package/src/components/ShareSheet.tsx +38 -33
- package/src/components/Sheet.tsx +8 -18
- package/src/types.ts +6 -4
package/ios/GenericShare.m
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
inAppBaseUrl:(NSString *)inAppBaseUrl {
|
|
18
18
|
|
|
19
19
|
NSLog(@"Try open view");
|
|
20
|
-
if(
|
|
20
|
+
if([serviceType isEqualToString:@"com.apple.social.twitter"]) {
|
|
21
21
|
SLComposeViewController *composeController = [SLComposeViewController composeViewControllerForServiceType:serviceType];
|
|
22
22
|
|
|
23
23
|
NSURL *URL = [RCTConvert NSURL:options[@"url"]];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Button.tsx"],"names":["Button","buttonStyle","onPress","iconSrc","textStyle","children","styles","button","icon","buttonText","StyleSheet","create","backgroundColor","flexDirection","height","padding","color","fontSize","fontWeight","textAlign","textAlignVertical","marginLeft","marginRight","width"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAmBA,MAAMA,
|
|
1
|
+
{"version":3,"sources":["Button.tsx"],"names":["Button","buttonStyle","onPress","iconSrc","textStyle","children","styles","button","icon","buttonText","StyleSheet","create","backgroundColor","flexDirection","height","padding","color","fontSize","fontWeight","textAlign","textAlignVertical","marginLeft","marginRight","width"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAmBA,MAAMA,MAA6B,GAAG,CAAC;AACrCC,EAAAA,WADqC;AAErCC,EAAAA,OAFqC;AAGrCC,EAAAA,OAHqC;AAIrCC,EAAAA,SAJqC;AAKrCC,EAAAA;AALqC,CAAD,kBAOpC,oBAAC,6BAAD;AAAkB,EAAA,aAAa,EAAE,GAAjC;AAAsC,EAAA,KAAK,EAAE,CAACC,MAAM,CAACC,MAAR,EAAgBN,WAAhB,CAA7C;AAA2E,EAAA,OAAO,EAAEC;AAApF,gBACE,oBAAC,kBAAD;AAAO,EAAA,KAAK,EAAEI,MAAM,CAACE,IAArB;AAA2B,EAAA,MAAM,EAAEL;AAAnC,EADF,eAEE,oBAAC,iBAAD;AAAM,EAAA,KAAK,EAAE,CAACG,MAAM,CAACG,UAAR,EAAoBL,SAApB;AAAb,GAA8CC,QAA9C,CAFF,CAPF;;eAaeL,M;;;AAEf,MAAMM,MAAM,GAAGI,wBAAWC,MAAX,CAAkB;AAC/BJ,EAAAA,MAAM,EAAE;AACNK,IAAAA,eAAe,EAAE,OADX;AAENC,IAAAA,aAAa,EAAE,KAFT;AAGNC,IAAAA,MAAM,EAAE,EAHF;AAINC,IAAAA,OAAO,EAAE;AAJH,GADuB;AAO/BN,EAAAA,UAAU,EAAE;AACVO,IAAAA,KAAK,EAAE,SADG;AAEVC,IAAAA,QAAQ,EAAE,EAFA;AAGVC,IAAAA,UAAU,EAAE,MAHF;AAIVC,IAAAA,SAAS,EAAE,MAJD;AAKVC,IAAAA,iBAAiB,EAAE;AALT,GAPmB;AAc/BZ,EAAAA,IAAI,EAAE;AACJM,IAAAA,MAAM,EAAE,EADJ;AAEJO,IAAAA,UAAU,EAAE,EAFR;AAGJC,IAAAA,WAAW,EAAE,EAHT;AAIJC,IAAAA,KAAK,EAAE;AAJH;AAdyB,CAAlB,CAAf","sourcesContent":["import * as React from 'react';\nimport {\n StyleSheet,\n Text,\n TouchableOpacity,\n Image,\n ImageSourcePropType,\n StyleProp,\n TextStyle,\n ViewStyle,\n} from 'react-native';\n\nexport interface ButtonProps {\n onPress: () => void;\n iconSrc: ImageSourcePropType;\n buttonStyle?: StyleProp<ViewStyle>;\n textStyle?: StyleProp<TextStyle>;\n children: React.ReactNode;\n}\n\nconst Button: React.FC<ButtonProps> = ({\n buttonStyle,\n onPress,\n iconSrc,\n textStyle,\n children,\n}: ButtonProps) => (\n <TouchableOpacity activeOpacity={0.5} style={[styles.button, buttonStyle]} onPress={onPress}>\n <Image style={styles.icon} source={iconSrc} />\n <Text style={[styles.buttonText, textStyle]}>{children}</Text>\n </TouchableOpacity>\n);\n\nexport default Button;\n\nconst styles = StyleSheet.create({\n button: {\n backgroundColor: 'white',\n flexDirection: 'row',\n height: 50,\n padding: 10,\n },\n buttonText: {\n color: '#2c2c2c',\n fontSize: 16,\n fontWeight: 'bold',\n textAlign: 'left',\n textAlignVertical: 'center',\n },\n icon: {\n height: 28,\n marginLeft: 10,\n marginRight: 30,\n width: 28,\n },\n});\n"]}
|
|
@@ -13,8 +13,6 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
|
|
|
13
13
|
|
|
14
14
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
15
|
|
|
16
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
-
|
|
18
16
|
const DEFAULT_ANIMATE_TIME = 300;
|
|
19
17
|
|
|
20
18
|
const styles = _reactNative.StyleSheet.create({
|
|
@@ -34,47 +32,34 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
34
32
|
}
|
|
35
33
|
});
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
});
|
|
35
|
+
const Overlay = ({
|
|
36
|
+
visible,
|
|
37
|
+
children
|
|
38
|
+
}) => {
|
|
39
|
+
const [fadeAnim] = React.useState(new _reactNative.Animated.Value(0));
|
|
40
|
+
const [overlayStyle, setOverlayStyle] = React.useState(styles.emptyOverlay);
|
|
41
|
+
const onAnimatedEnd = React.useCallback(() => {
|
|
42
|
+
if (!visible) {
|
|
43
|
+
setOverlayStyle(styles.emptyOverlay);
|
|
44
|
+
}
|
|
45
|
+
}, [visible]);
|
|
46
|
+
React.useEffect(() => {
|
|
47
|
+
if (visible) {
|
|
48
|
+
setOverlayStyle(styles.fullOverlay);
|
|
52
49
|
}
|
|
53
50
|
|
|
54
|
-
return _reactNative.Animated.timing(
|
|
55
|
-
toValue:
|
|
51
|
+
return _reactNative.Animated.timing(fadeAnim, {
|
|
52
|
+
toValue: visible ? 1 : 0,
|
|
56
53
|
duration: DEFAULT_ANIMATE_TIME,
|
|
57
54
|
useNativeDriver: false
|
|
58
|
-
}).start(
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
render() {
|
|
70
|
-
return /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
|
|
71
|
-
style: [this.state.overlayStyle, {
|
|
72
|
-
opacity: this.state.fadeAnim
|
|
73
|
-
}]
|
|
74
|
-
}, this.props.children);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
}
|
|
55
|
+
}).start(onAnimatedEnd);
|
|
56
|
+
}, [visible, fadeAnim, onAnimatedEnd]);
|
|
57
|
+
return /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
|
|
58
|
+
style: [overlayStyle, {
|
|
59
|
+
opacity: fadeAnim
|
|
60
|
+
}]
|
|
61
|
+
}, children);
|
|
62
|
+
};
|
|
78
63
|
|
|
79
64
|
var _default = Overlay;
|
|
80
65
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Overlay.tsx"],"names":["DEFAULT_ANIMATE_TIME","styles","StyleSheet","create","emptyOverlay","backgroundColor","height","position","width","fullOverlay","bottom","left","right","top","Overlay","
|
|
1
|
+
{"version":3,"sources":["Overlay.tsx"],"names":["DEFAULT_ANIMATE_TIME","styles","StyleSheet","create","emptyOverlay","backgroundColor","height","position","width","fullOverlay","bottom","left","right","top","Overlay","visible","children","fadeAnim","React","useState","Animated","Value","overlayStyle","setOverlayStyle","onAnimatedEnd","useCallback","useEffect","timing","toValue","duration","useNativeDriver","start","opacity"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAEA,MAAMA,oBAAoB,GAAG,GAA7B;;AACA,MAAMC,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,YAAY,EAAE;AACZC,IAAAA,eAAe,EAAE,aADL;AAEZC,IAAAA,MAAM,EAAE,CAFI;AAGZC,IAAAA,QAAQ,EAAE,UAHE;AAIZC,IAAAA,KAAK,EAAE;AAJK,GADiB;AAO/BC,EAAAA,WAAW,EAAE;AACXJ,IAAAA,eAAe,EAAE,aADN;AAEXK,IAAAA,MAAM,EAAE,CAFG;AAGXC,IAAAA,IAAI,EAAE,CAHK;AAIXJ,IAAAA,QAAQ,EAAE,UAJC;AAKXK,IAAAA,KAAK,EAAE,CALI;AAMXC,IAAAA,GAAG,EAAE;AANM;AAPkB,CAAlB,CAAf;;AAqBA,MAAMC,OAAwD,GAAG,CAAC;AAAEC,EAAAA,OAAF;AAAWC,EAAAA;AAAX,CAAD,KAA2B;AAC1F,QAAM,CAACC,QAAD,IAAaC,KAAK,CAACC,QAAN,CAAe,IAAIC,sBAASC,KAAb,CAAmB,CAAnB,CAAf,CAAnB;AACA,QAAM,CAACC,YAAD,EAAeC,eAAf,IAAkCL,KAAK,CAACC,QAAN,CAAqClB,MAAM,CAACG,YAA5C,CAAxC;AAEA,QAAMoB,aAAa,GAAGN,KAAK,CAACO,WAAN,CAAkB,MAAM;AAC5C,QAAI,CAACV,OAAL,EAAc;AACZQ,MAAAA,eAAe,CAACtB,MAAM,CAACG,YAAR,CAAf;AACD;AACF,GAJqB,EAInB,CAACW,OAAD,CAJmB,CAAtB;AAMAG,EAAAA,KAAK,CAACQ,SAAN,CAAgB,MAAM;AACpB,QAAIX,OAAJ,EAAa;AACXQ,MAAAA,eAAe,CAACtB,MAAM,CAACQ,WAAR,CAAf;AACD;;AACD,WAAOW,sBAASO,MAAT,CAAgBV,QAAhB,EAA0B;AAC/BW,MAAAA,OAAO,EAAEb,OAAO,GAAG,CAAH,GAAO,CADQ;AAE/Bc,MAAAA,QAAQ,EAAE7B,oBAFqB;AAG/B8B,MAAAA,eAAe,EAAE;AAHc,KAA1B,EAIJC,KAJI,CAIEP,aAJF,CAAP;AAKD,GATD,EASG,CAACT,OAAD,EAAUE,QAAV,EAAoBO,aAApB,CATH;AAWA,sBAAO,oBAAC,qBAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAE,CAACF,YAAD,EAAe;AAAEU,MAAAA,OAAO,EAAEf;AAAX,KAAf;AAAtB,KAA8DD,QAA9D,CAAP;AACD,CAtBD;;eAwBeF,O","sourcesContent":["import * as React from 'react';\nimport { Animated, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nconst DEFAULT_ANIMATE_TIME = 300;\nconst styles = StyleSheet.create({\n emptyOverlay: {\n backgroundColor: 'transparent',\n height: 0,\n position: 'absolute',\n width: 0,\n },\n fullOverlay: {\n backgroundColor: 'transparent',\n bottom: 0,\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n});\n\nexport interface OverlayProps {\n visible: boolean;\n}\n\nconst Overlay: React.FC<React.PropsWithChildren<OverlayProps>> = ({ visible, children }) => {\n const [fadeAnim] = React.useState(new Animated.Value(0));\n const [overlayStyle, setOverlayStyle] = React.useState<StyleProp<ViewStyle>>(styles.emptyOverlay);\n\n const onAnimatedEnd = React.useCallback(() => {\n if (!visible) {\n setOverlayStyle(styles.emptyOverlay);\n }\n }, [visible]);\n\n React.useEffect(() => {\n if (visible) {\n setOverlayStyle(styles.fullOverlay);\n }\n return Animated.timing(fadeAnim, {\n toValue: visible ? 1 : 0,\n duration: DEFAULT_ANIMATE_TIME,\n useNativeDriver: false,\n }).start(onAnimatedEnd);\n }, [visible, fadeAnim, onAnimatedEnd]);\n\n return <Animated.View style={[overlayStyle, { opacity: fadeAnim }]}>{children}</Animated.View>;\n};\n\nexport default Overlay;\n"]}
|
|
@@ -19,48 +19,41 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
|
|
|
19
19
|
|
|
20
20
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
backButtonHandler() {
|
|
34
|
-
if (this.props.visible) {
|
|
35
|
-
this.props.onCancel();
|
|
22
|
+
const ShareSheet = ({
|
|
23
|
+
style = {},
|
|
24
|
+
overlayStyle = {},
|
|
25
|
+
visible,
|
|
26
|
+
onCancel,
|
|
27
|
+
children
|
|
28
|
+
}) => {
|
|
29
|
+
const backButtonHandler = React.useCallback(() => {
|
|
30
|
+
if (visible) {
|
|
31
|
+
onCancel();
|
|
36
32
|
return true;
|
|
37
33
|
}
|
|
38
34
|
|
|
39
35
|
return false;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
var _default = ShareSheet;
|
|
63
|
-
exports.default = _default;
|
|
36
|
+
}, [visible, onCancel]);
|
|
37
|
+
React.useEffect(() => {
|
|
38
|
+
_reactNative.BackHandler.addEventListener('hardwareBackPress', backButtonHandler);
|
|
39
|
+
|
|
40
|
+
return () => {
|
|
41
|
+
_reactNative.BackHandler.removeEventListener('hardwareBackPress', backButtonHandler);
|
|
42
|
+
};
|
|
43
|
+
}, [backButtonHandler]);
|
|
44
|
+
return /*#__PURE__*/React.createElement(_Overlay.default, {
|
|
45
|
+
visible: visible
|
|
46
|
+
}, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
47
|
+
style: [styles.actionSheetContainer, overlayStyle]
|
|
48
|
+
}, /*#__PURE__*/React.createElement(_reactNative.TouchableOpacity, {
|
|
49
|
+
style: styles.button,
|
|
50
|
+
onPress: onCancel
|
|
51
|
+
}), /*#__PURE__*/React.createElement(_Sheet.default, {
|
|
52
|
+
visible: visible
|
|
53
|
+
}, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
54
|
+
style: [styles.buttonContainer, style]
|
|
55
|
+
}, children))));
|
|
56
|
+
};
|
|
64
57
|
|
|
65
58
|
const styles = _reactNative.StyleSheet.create({
|
|
66
59
|
actionSheetContainer: {
|
|
@@ -80,4 +73,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
80
73
|
flex: 1
|
|
81
74
|
}
|
|
82
75
|
});
|
|
76
|
+
|
|
77
|
+
var _default = ShareSheet;
|
|
78
|
+
exports.default = _default;
|
|
83
79
|
//# sourceMappingURL=ShareSheet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ShareSheet.tsx"],"names":["ShareSheet","
|
|
1
|
+
{"version":3,"sources":["ShareSheet.tsx"],"names":["ShareSheet","style","overlayStyle","visible","onCancel","children","backButtonHandler","React","useCallback","useEffect","BackHandler","addEventListener","removeEventListener","styles","actionSheetContainer","button","buttonContainer","StyleSheet","create","backgroundColor","flex","justifyContent","paddingBottom","paddingTop","overflow"],"mappings":";;;;;;;AAAA;;AACA;;AASA;;AACA;;;;;;;;AASA,MAAMA,UAA8D,GAAG,CAAC;AACtEC,EAAAA,KAAK,GAAG,EAD8D;AAEtEC,EAAAA,YAAY,GAAG,EAFuD;AAGtEC,EAAAA,OAHsE;AAItEC,EAAAA,QAJsE;AAKtEC,EAAAA;AALsE,CAAD,KAMjE;AACJ,QAAMC,iBAAiB,GAAGC,KAAK,CAACC,WAAN,CAAkB,MAAM;AAChD,QAAIL,OAAJ,EAAa;AACXC,MAAAA,QAAQ;AACR,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD,GANyB,EAMvB,CAACD,OAAD,EAAUC,QAAV,CANuB,CAA1B;AAQAG,EAAAA,KAAK,CAACE,SAAN,CAAgB,MAAM;AACpBC,6BAAYC,gBAAZ,CAA6B,mBAA7B,EAAkDL,iBAAlD;;AACA,WAAO,MAAM;AACXI,+BAAYE,mBAAZ,CAAgC,mBAAhC,EAAqDN,iBAArD;AACD,KAFD;AAGD,GALD,EAKG,CAACA,iBAAD,CALH;AAOA,sBACE,oBAAC,gBAAD;AAAS,IAAA,OAAO,EAAEH;AAAlB,kBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACU,MAAM,CAACC,oBAAR,EAA8BZ,YAA9B;AAAb,kBACE,oBAAC,6BAAD;AAAkB,IAAA,KAAK,EAAEW,MAAM,CAACE,MAAhC;AAAwC,IAAA,OAAO,EAAEX;AAAjD,IADF,eAEE,oBAAC,cAAD;AAAO,IAAA,OAAO,EAAED;AAAhB,kBACE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACU,MAAM,CAACG,eAAR,EAAyBf,KAAzB;AAAb,KAA+CI,QAA/C,CADF,CAFF,CADF,CADF;AAUD,CAhCD;;AAkCA,MAAMQ,MAAM,GAAGI,wBAAWC,MAAX,CAAkB;AAC/BJ,EAAAA,oBAAoB,EAAE;AACpBK,IAAAA,eAAe,EAAE,oBADG;AAEpBC,IAAAA,IAAI,EAAE,CAFc;AAGpBC,IAAAA,cAAc,EAAE,UAHI;AAIpBC,IAAAA,aAAa,EAAE,CAJK;AAKpBC,IAAAA,UAAU,EAAE;AALQ,GADS;AAQ/BP,EAAAA,eAAe,EAAE;AACfG,IAAAA,eAAe,EAAE,OADF;AAEfK,IAAAA,QAAQ,EAAE,QAFK;AAGfF,IAAAA,aAAa,EAAE,CAHA;AAIfC,IAAAA,UAAU,EAAE;AAJG,GARc;AAc/BR,EAAAA,MAAM,EAAE;AACNK,IAAAA,IAAI,EAAE;AADA;AAduB,CAAlB,CAAf;;eAmBepB,U","sourcesContent":["import * as React from 'react';\nimport {\n View,\n TouchableOpacity,\n BackHandler,\n ViewStyle,\n StyleProp,\n StyleSheet,\n} from 'react-native';\n\nimport Overlay from './Overlay';\nimport Sheet from './Sheet';\n\nexport interface ShareSheetProps {\n visible: boolean;\n onCancel: () => void;\n style?: StyleProp<ViewStyle>;\n overlayStyle?: StyleProp<ViewStyle>;\n}\n\nconst ShareSheet: React.FC<React.PropsWithChildren<ShareSheetProps>> = ({\n style = {},\n overlayStyle = {},\n visible,\n onCancel,\n children,\n}) => {\n const backButtonHandler = React.useCallback(() => {\n if (visible) {\n onCancel();\n return true;\n }\n return false;\n }, [visible, onCancel]);\n\n React.useEffect(() => {\n BackHandler.addEventListener('hardwareBackPress', backButtonHandler);\n return () => {\n BackHandler.removeEventListener('hardwareBackPress', backButtonHandler);\n };\n }, [backButtonHandler]);\n\n return (\n <Overlay visible={visible}>\n <View style={[styles.actionSheetContainer, overlayStyle]}>\n <TouchableOpacity style={styles.button} onPress={onCancel} />\n <Sheet visible={visible}>\n <View style={[styles.buttonContainer, style]}>{children}</View>\n </Sheet>\n </View>\n </Overlay>\n );\n};\n\nconst styles = StyleSheet.create({\n actionSheetContainer: {\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n flex: 1,\n justifyContent: 'flex-end',\n paddingBottom: 0,\n paddingTop: 10,\n },\n buttonContainer: {\n backgroundColor: 'white',\n overflow: 'hidden',\n paddingBottom: 5,\n paddingTop: 5,\n },\n button: {\n flex: 1,\n },\n});\n\nexport default ShareSheet;\n"]}
|
|
@@ -13,37 +13,27 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
|
|
|
13
13
|
|
|
14
14
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
15
|
|
|
16
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
-
|
|
18
16
|
const DEFAULT_BOTTOM = -300;
|
|
19
17
|
const DEFAULT_ANIMATE_TIME = 300;
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
UNSAFE_componentWillReceiveProps(newProps) {
|
|
31
|
-
return _reactNative.Animated.timing(this.state.bottom, {
|
|
32
|
-
toValue: newProps.visible ? 0 : DEFAULT_BOTTOM,
|
|
19
|
+
const Sheet = ({
|
|
20
|
+
visible,
|
|
21
|
+
children
|
|
22
|
+
}) => {
|
|
23
|
+
const [bottom] = React.useState(new _reactNative.Animated.Value(DEFAULT_BOTTOM));
|
|
24
|
+
React.useEffect(() => {
|
|
25
|
+
return _reactNative.Animated.timing(bottom, {
|
|
26
|
+
toValue: visible ? 0 : DEFAULT_BOTTOM,
|
|
33
27
|
duration: DEFAULT_ANIMATE_TIME,
|
|
34
28
|
useNativeDriver: false
|
|
35
29
|
}).start();
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}, this.props.children);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
}
|
|
30
|
+
}, [visible, bottom]);
|
|
31
|
+
return /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
|
|
32
|
+
style: {
|
|
33
|
+
bottom
|
|
34
|
+
}
|
|
35
|
+
}, children);
|
|
36
|
+
};
|
|
47
37
|
|
|
48
38
|
var _default = Sheet;
|
|
49
39
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Sheet.tsx"],"names":["DEFAULT_BOTTOM","DEFAULT_ANIMATE_TIME","Sheet","
|
|
1
|
+
{"version":3,"sources":["Sheet.tsx"],"names":["DEFAULT_BOTTOM","DEFAULT_ANIMATE_TIME","Sheet","visible","children","bottom","React","useState","Animated","Value","useEffect","timing","toValue","duration","useNativeDriver","start"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAEA,MAAMA,cAAc,GAAG,CAAC,GAAxB;AACA,MAAMC,oBAAoB,GAAG,GAA7B;;AAMA,MAAMC,KAAoD,GAAG,CAAC;AAAEC,EAAAA,OAAF;AAAWC,EAAAA;AAAX,CAAD,KAA2B;AACtF,QAAM,CAACC,MAAD,IAAWC,KAAK,CAACC,QAAN,CAAe,IAAIC,sBAASC,KAAb,CAAmBT,cAAnB,CAAf,CAAjB;AAEAM,EAAAA,KAAK,CAACI,SAAN,CAAgB,MAAM;AACpB,WAAOF,sBAASG,MAAT,CAAgBN,MAAhB,EAAwB;AAC7BO,MAAAA,OAAO,EAAET,OAAO,GAAG,CAAH,GAAOH,cADM;AAE7Ba,MAAAA,QAAQ,EAAEZ,oBAFmB;AAG7Ba,MAAAA,eAAe,EAAE;AAHY,KAAxB,EAIJC,KAJI,EAAP;AAKD,GAND,EAMG,CAACZ,OAAD,EAAUE,MAAV,CANH;AAQA,sBAAO,oBAAC,qBAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAE;AAAEA,MAAAA;AAAF;AAAtB,KAAmCD,QAAnC,CAAP;AACD,CAZD;;eAceF,K","sourcesContent":["import * as React from 'react';\nimport { Animated } from 'react-native';\n\nconst DEFAULT_BOTTOM = -300;\nconst DEFAULT_ANIMATE_TIME = 300;\n\nexport interface SheetProps {\n visible: boolean;\n}\n\nconst Sheet: React.FC<React.PropsWithChildren<SheetProps>> = ({ visible, children }) => {\n const [bottom] = React.useState(new Animated.Value(DEFAULT_BOTTOM));\n\n React.useEffect(() => {\n return Animated.timing(bottom, {\n toValue: visible ? 0 : DEFAULT_BOTTOM,\n duration: DEFAULT_ANIMATE_TIME,\n useNativeDriver: false,\n }).start();\n }, [visible, bottom]);\n\n return <Animated.View style={{ bottom }}>{children}</Animated.View>;\n};\n\nexport default Sheet;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["types.ts"],"names":["Social","ShareAsset"],"mappings":";;;;;;IAAYA,M;;;WAAAA,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,sBAAAA,M;;IAoBAC,U;;;WAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;GAAAA,U,0BAAAA,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
|
|
1
|
+
{"version":3,"sources":["types.ts"],"names":["Social","ShareAsset"],"mappings":";;;;;;IAAYA,M;;;WAAAA,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,sBAAAA,M;;IAoBAC,U;;;WAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;AAAAA,EAAAA,U;GAAAA,U,0BAAAA,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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Button.tsx"],"names":["React","StyleSheet","Text","TouchableOpacity","Image","Button","buttonStyle","onPress","iconSrc","textStyle","children","styles","button","icon","buttonText","create","backgroundColor","flexDirection","height","padding","color","fontSize","fontWeight","textAlign","textAlignVertical","marginLeft","marginRight","width"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,UADF,EAEEC,IAFF,EAGEC,gBAHF,EAIEC,KAJF,QASO,cATP;;AAmBA,MAAMC,
|
|
1
|
+
{"version":3,"sources":["Button.tsx"],"names":["React","StyleSheet","Text","TouchableOpacity","Image","Button","buttonStyle","onPress","iconSrc","textStyle","children","styles","button","icon","buttonText","create","backgroundColor","flexDirection","height","padding","color","fontSize","fontWeight","textAlign","textAlignVertical","marginLeft","marginRight","width"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,UADF,EAEEC,IAFF,EAGEC,gBAHF,EAIEC,KAJF,QASO,cATP;;AAmBA,MAAMC,MAA6B,GAAG,CAAC;AACrCC,EAAAA,WADqC;AAErCC,EAAAA,OAFqC;AAGrCC,EAAAA,OAHqC;AAIrCC,EAAAA,SAJqC;AAKrCC,EAAAA;AALqC,CAAD,kBAOpC,oBAAC,gBAAD;AAAkB,EAAA,aAAa,EAAE,GAAjC;AAAsC,EAAA,KAAK,EAAE,CAACC,MAAM,CAACC,MAAR,EAAgBN,WAAhB,CAA7C;AAA2E,EAAA,OAAO,EAAEC;AAApF,gBACE,oBAAC,KAAD;AAAO,EAAA,KAAK,EAAEI,MAAM,CAACE,IAArB;AAA2B,EAAA,MAAM,EAAEL;AAAnC,EADF,eAEE,oBAAC,IAAD;AAAM,EAAA,KAAK,EAAE,CAACG,MAAM,CAACG,UAAR,EAAoBL,SAApB;AAAb,GAA8CC,QAA9C,CAFF,CAPF;;AAaA,eAAeL,MAAf;AAEA,MAAMM,MAAM,GAAGV,UAAU,CAACc,MAAX,CAAkB;AAC/BH,EAAAA,MAAM,EAAE;AACNI,IAAAA,eAAe,EAAE,OADX;AAENC,IAAAA,aAAa,EAAE,KAFT;AAGNC,IAAAA,MAAM,EAAE,EAHF;AAINC,IAAAA,OAAO,EAAE;AAJH,GADuB;AAO/BL,EAAAA,UAAU,EAAE;AACVM,IAAAA,KAAK,EAAE,SADG;AAEVC,IAAAA,QAAQ,EAAE,EAFA;AAGVC,IAAAA,UAAU,EAAE,MAHF;AAIVC,IAAAA,SAAS,EAAE,MAJD;AAKVC,IAAAA,iBAAiB,EAAE;AALT,GAPmB;AAc/BX,EAAAA,IAAI,EAAE;AACJK,IAAAA,MAAM,EAAE,EADJ;AAEJO,IAAAA,UAAU,EAAE,EAFR;AAGJC,IAAAA,WAAW,EAAE,EAHT;AAIJC,IAAAA,KAAK,EAAE;AAJH;AAdyB,CAAlB,CAAf","sourcesContent":["import * as React from 'react';\nimport {\n StyleSheet,\n Text,\n TouchableOpacity,\n Image,\n ImageSourcePropType,\n StyleProp,\n TextStyle,\n ViewStyle,\n} from 'react-native';\n\nexport interface ButtonProps {\n onPress: () => void;\n iconSrc: ImageSourcePropType;\n buttonStyle?: StyleProp<ViewStyle>;\n textStyle?: StyleProp<TextStyle>;\n children: React.ReactNode;\n}\n\nconst Button: React.FC<ButtonProps> = ({\n buttonStyle,\n onPress,\n iconSrc,\n textStyle,\n children,\n}: ButtonProps) => (\n <TouchableOpacity activeOpacity={0.5} style={[styles.button, buttonStyle]} onPress={onPress}>\n <Image style={styles.icon} source={iconSrc} />\n <Text style={[styles.buttonText, textStyle]}>{children}</Text>\n </TouchableOpacity>\n);\n\nexport default Button;\n\nconst styles = StyleSheet.create({\n button: {\n backgroundColor: 'white',\n flexDirection: 'row',\n height: 50,\n padding: 10,\n },\n buttonText: {\n color: '#2c2c2c',\n fontSize: 16,\n fontWeight: 'bold',\n textAlign: 'left',\n textAlignVertical: 'center',\n },\n icon: {\n height: 28,\n marginLeft: 10,\n marginRight: 30,\n width: 28,\n },\n});\n"]}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
|
|
3
1
|
import * as React from 'react';
|
|
4
2
|
import { Animated, StyleSheet } from 'react-native';
|
|
5
3
|
const DEFAULT_ANIMATE_TIME = 300;
|
|
@@ -20,47 +18,34 @@ const styles = StyleSheet.create({
|
|
|
20
18
|
}
|
|
21
19
|
});
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
});
|
|
21
|
+
const Overlay = ({
|
|
22
|
+
visible,
|
|
23
|
+
children
|
|
24
|
+
}) => {
|
|
25
|
+
const [fadeAnim] = React.useState(new Animated.Value(0));
|
|
26
|
+
const [overlayStyle, setOverlayStyle] = React.useState(styles.emptyOverlay);
|
|
27
|
+
const onAnimatedEnd = React.useCallback(() => {
|
|
28
|
+
if (!visible) {
|
|
29
|
+
setOverlayStyle(styles.emptyOverlay);
|
|
30
|
+
}
|
|
31
|
+
}, [visible]);
|
|
32
|
+
React.useEffect(() => {
|
|
33
|
+
if (visible) {
|
|
34
|
+
setOverlayStyle(styles.fullOverlay);
|
|
38
35
|
}
|
|
39
36
|
|
|
40
|
-
return Animated.timing(
|
|
41
|
-
toValue:
|
|
37
|
+
return Animated.timing(fadeAnim, {
|
|
38
|
+
toValue: visible ? 1 : 0,
|
|
42
39
|
duration: DEFAULT_ANIMATE_TIME,
|
|
43
40
|
useNativeDriver: false
|
|
44
|
-
}).start(
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
render() {
|
|
56
|
-
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
57
|
-
style: [this.state.overlayStyle, {
|
|
58
|
-
opacity: this.state.fadeAnim
|
|
59
|
-
}]
|
|
60
|
-
}, this.props.children);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
}
|
|
41
|
+
}).start(onAnimatedEnd);
|
|
42
|
+
}, [visible, fadeAnim, onAnimatedEnd]);
|
|
43
|
+
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
44
|
+
style: [overlayStyle, {
|
|
45
|
+
opacity: fadeAnim
|
|
46
|
+
}]
|
|
47
|
+
}, children);
|
|
48
|
+
};
|
|
64
49
|
|
|
65
50
|
export default Overlay;
|
|
66
51
|
//# sourceMappingURL=Overlay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Overlay.tsx"],"names":["React","Animated","StyleSheet","DEFAULT_ANIMATE_TIME","styles","create","emptyOverlay","backgroundColor","height","position","width","fullOverlay","bottom","left","right","top","Overlay","
|
|
1
|
+
{"version":3,"sources":["Overlay.tsx"],"names":["React","Animated","StyleSheet","DEFAULT_ANIMATE_TIME","styles","create","emptyOverlay","backgroundColor","height","position","width","fullOverlay","bottom","left","right","top","Overlay","visible","children","fadeAnim","useState","Value","overlayStyle","setOverlayStyle","onAnimatedEnd","useCallback","useEffect","timing","toValue","duration","useNativeDriver","start","opacity"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT,EAA8BC,UAA9B,QAA2D,cAA3D;AAEA,MAAMC,oBAAoB,GAAG,GAA7B;AACA,MAAMC,MAAM,GAAGF,UAAU,CAACG,MAAX,CAAkB;AAC/BC,EAAAA,YAAY,EAAE;AACZC,IAAAA,eAAe,EAAE,aADL;AAEZC,IAAAA,MAAM,EAAE,CAFI;AAGZC,IAAAA,QAAQ,EAAE,UAHE;AAIZC,IAAAA,KAAK,EAAE;AAJK,GADiB;AAO/BC,EAAAA,WAAW,EAAE;AACXJ,IAAAA,eAAe,EAAE,aADN;AAEXK,IAAAA,MAAM,EAAE,CAFG;AAGXC,IAAAA,IAAI,EAAE,CAHK;AAIXJ,IAAAA,QAAQ,EAAE,UAJC;AAKXK,IAAAA,KAAK,EAAE,CALI;AAMXC,IAAAA,GAAG,EAAE;AANM;AAPkB,CAAlB,CAAf;;AAqBA,MAAMC,OAAwD,GAAG,CAAC;AAAEC,EAAAA,OAAF;AAAWC,EAAAA;AAAX,CAAD,KAA2B;AAC1F,QAAM,CAACC,QAAD,IAAanB,KAAK,CAACoB,QAAN,CAAe,IAAInB,QAAQ,CAACoB,KAAb,CAAmB,CAAnB,CAAf,CAAnB;AACA,QAAM,CAACC,YAAD,EAAeC,eAAf,IAAkCvB,KAAK,CAACoB,QAAN,CAAqChB,MAAM,CAACE,YAA5C,CAAxC;AAEA,QAAMkB,aAAa,GAAGxB,KAAK,CAACyB,WAAN,CAAkB,MAAM;AAC5C,QAAI,CAACR,OAAL,EAAc;AACZM,MAAAA,eAAe,CAACnB,MAAM,CAACE,YAAR,CAAf;AACD;AACF,GAJqB,EAInB,CAACW,OAAD,CAJmB,CAAtB;AAMAjB,EAAAA,KAAK,CAAC0B,SAAN,CAAgB,MAAM;AACpB,QAAIT,OAAJ,EAAa;AACXM,MAAAA,eAAe,CAACnB,MAAM,CAACO,WAAR,CAAf;AACD;;AACD,WAAOV,QAAQ,CAAC0B,MAAT,CAAgBR,QAAhB,EAA0B;AAC/BS,MAAAA,OAAO,EAAEX,OAAO,GAAG,CAAH,GAAO,CADQ;AAE/BY,MAAAA,QAAQ,EAAE1B,oBAFqB;AAG/B2B,MAAAA,eAAe,EAAE;AAHc,KAA1B,EAIJC,KAJI,CAIEP,aAJF,CAAP;AAKD,GATD,EASG,CAACP,OAAD,EAAUE,QAAV,EAAoBK,aAApB,CATH;AAWA,sBAAO,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAE,CAACF,YAAD,EAAe;AAAEU,MAAAA,OAAO,EAAEb;AAAX,KAAf;AAAtB,KAA8DD,QAA9D,CAAP;AACD,CAtBD;;AAwBA,eAAeF,OAAf","sourcesContent":["import * as React from 'react';\nimport { Animated, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nconst DEFAULT_ANIMATE_TIME = 300;\nconst styles = StyleSheet.create({\n emptyOverlay: {\n backgroundColor: 'transparent',\n height: 0,\n position: 'absolute',\n width: 0,\n },\n fullOverlay: {\n backgroundColor: 'transparent',\n bottom: 0,\n left: 0,\n position: 'absolute',\n right: 0,\n top: 0,\n },\n});\n\nexport interface OverlayProps {\n visible: boolean;\n}\n\nconst Overlay: React.FC<React.PropsWithChildren<OverlayProps>> = ({ visible, children }) => {\n const [fadeAnim] = React.useState(new Animated.Value(0));\n const [overlayStyle, setOverlayStyle] = React.useState<StyleProp<ViewStyle>>(styles.emptyOverlay);\n\n const onAnimatedEnd = React.useCallback(() => {\n if (!visible) {\n setOverlayStyle(styles.emptyOverlay);\n }\n }, [visible]);\n\n React.useEffect(() => {\n if (visible) {\n setOverlayStyle(styles.fullOverlay);\n }\n return Animated.timing(fadeAnim, {\n toValue: visible ? 1 : 0,\n duration: DEFAULT_ANIMATE_TIME,\n useNativeDriver: false,\n }).start(onAnimatedEnd);\n }, [visible, fadeAnim, onAnimatedEnd]);\n\n return <Animated.View style={[overlayStyle, { opacity: fadeAnim }]}>{children}</Animated.View>;\n};\n\nexport default Overlay;\n"]}
|
|
@@ -1,48 +1,43 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { View,
|
|
2
|
+
import { View, TouchableOpacity, BackHandler, StyleSheet } from 'react-native';
|
|
3
3
|
import Overlay from './Overlay';
|
|
4
4
|
import Sheet from './Sheet';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
backButtonHandler() {
|
|
17
|
-
if (this.props.visible) {
|
|
18
|
-
this.props.onCancel();
|
|
6
|
+
const ShareSheet = ({
|
|
7
|
+
style = {},
|
|
8
|
+
overlayStyle = {},
|
|
9
|
+
visible,
|
|
10
|
+
onCancel,
|
|
11
|
+
children
|
|
12
|
+
}) => {
|
|
13
|
+
const backButtonHandler = React.useCallback(() => {
|
|
14
|
+
if (visible) {
|
|
15
|
+
onCancel();
|
|
19
16
|
return true;
|
|
20
17
|
}
|
|
21
18
|
|
|
22
19
|
return false;
|
|
23
|
-
}
|
|
20
|
+
}, [visible, onCancel]);
|
|
21
|
+
React.useEffect(() => {
|
|
22
|
+
BackHandler.addEventListener('hardwareBackPress', backButtonHandler);
|
|
23
|
+
return () => {
|
|
24
|
+
BackHandler.removeEventListener('hardwareBackPress', backButtonHandler);
|
|
25
|
+
};
|
|
26
|
+
}, [backButtonHandler]);
|
|
27
|
+
return /*#__PURE__*/React.createElement(Overlay, {
|
|
28
|
+
visible: visible
|
|
29
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
30
|
+
style: [styles.actionSheetContainer, overlayStyle]
|
|
31
|
+
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
32
|
+
style: styles.button,
|
|
33
|
+
onPress: onCancel
|
|
34
|
+
}), /*#__PURE__*/React.createElement(Sheet, {
|
|
35
|
+
visible: visible
|
|
36
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
37
|
+
style: [styles.buttonContainer, style]
|
|
38
|
+
}, children))));
|
|
39
|
+
};
|
|
24
40
|
|
|
25
|
-
render() {
|
|
26
|
-
const {
|
|
27
|
-
style = {},
|
|
28
|
-
overlayStyle = {},
|
|
29
|
-
...props
|
|
30
|
-
} = this.props;
|
|
31
|
-
return /*#__PURE__*/React.createElement(Overlay, props, /*#__PURE__*/React.createElement(View, {
|
|
32
|
-
style: [styles.actionSheetContainer, overlayStyle]
|
|
33
|
-
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
34
|
-
style: styles.button,
|
|
35
|
-
onPress: this.props.onCancel
|
|
36
|
-
}), /*#__PURE__*/React.createElement(Sheet, {
|
|
37
|
-
visible: this.props.visible
|
|
38
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
39
|
-
style: [styles.buttonContainer, style]
|
|
40
|
-
}, this.props.children))));
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export default ShareSheet;
|
|
46
41
|
const styles = StyleSheet.create({
|
|
47
42
|
actionSheetContainer: {
|
|
48
43
|
backgroundColor: 'rgba(0, 0, 0, 0.5)',
|
|
@@ -61,4 +56,5 @@ const styles = StyleSheet.create({
|
|
|
61
56
|
flex: 1
|
|
62
57
|
}
|
|
63
58
|
});
|
|
59
|
+
export default ShareSheet;
|
|
64
60
|
//# sourceMappingURL=ShareSheet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ShareSheet.tsx"],"names":["React","View","
|
|
1
|
+
{"version":3,"sources":["ShareSheet.tsx"],"names":["React","View","TouchableOpacity","BackHandler","StyleSheet","Overlay","Sheet","ShareSheet","style","overlayStyle","visible","onCancel","children","backButtonHandler","useCallback","useEffect","addEventListener","removeEventListener","styles","actionSheetContainer","button","buttonContainer","create","backgroundColor","flex","justifyContent","paddingBottom","paddingTop","overflow"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,IADF,EAEEC,gBAFF,EAGEC,WAHF,EAMEC,UANF,QAOO,cAPP;AASA,OAAOC,OAAP,MAAoB,WAApB;AACA,OAAOC,KAAP,MAAkB,SAAlB;;AASA,MAAMC,UAA8D,GAAG,CAAC;AACtEC,EAAAA,KAAK,GAAG,EAD8D;AAEtEC,EAAAA,YAAY,GAAG,EAFuD;AAGtEC,EAAAA,OAHsE;AAItEC,EAAAA,QAJsE;AAKtEC,EAAAA;AALsE,CAAD,KAMjE;AACJ,QAAMC,iBAAiB,GAAGb,KAAK,CAACc,WAAN,CAAkB,MAAM;AAChD,QAAIJ,OAAJ,EAAa;AACXC,MAAAA,QAAQ;AACR,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD,GANyB,EAMvB,CAACD,OAAD,EAAUC,QAAV,CANuB,CAA1B;AAQAX,EAAAA,KAAK,CAACe,SAAN,CAAgB,MAAM;AACpBZ,IAAAA,WAAW,CAACa,gBAAZ,CAA6B,mBAA7B,EAAkDH,iBAAlD;AACA,WAAO,MAAM;AACXV,MAAAA,WAAW,CAACc,mBAAZ,CAAgC,mBAAhC,EAAqDJ,iBAArD;AACD,KAFD;AAGD,GALD,EAKG,CAACA,iBAAD,CALH;AAOA,sBACE,oBAAC,OAAD;AAAS,IAAA,OAAO,EAAEH;AAAlB,kBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE,CAACQ,MAAM,CAACC,oBAAR,EAA8BV,YAA9B;AAAb,kBACE,oBAAC,gBAAD;AAAkB,IAAA,KAAK,EAAES,MAAM,CAACE,MAAhC;AAAwC,IAAA,OAAO,EAAET;AAAjD,IADF,eAEE,oBAAC,KAAD;AAAO,IAAA,OAAO,EAAED;AAAhB,kBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE,CAACQ,MAAM,CAACG,eAAR,EAAyBb,KAAzB;AAAb,KAA+CI,QAA/C,CADF,CAFF,CADF,CADF;AAUD,CAhCD;;AAkCA,MAAMM,MAAM,GAAGd,UAAU,CAACkB,MAAX,CAAkB;AAC/BH,EAAAA,oBAAoB,EAAE;AACpBI,IAAAA,eAAe,EAAE,oBADG;AAEpBC,IAAAA,IAAI,EAAE,CAFc;AAGpBC,IAAAA,cAAc,EAAE,UAHI;AAIpBC,IAAAA,aAAa,EAAE,CAJK;AAKpBC,IAAAA,UAAU,EAAE;AALQ,GADS;AAQ/BN,EAAAA,eAAe,EAAE;AACfE,IAAAA,eAAe,EAAE,OADF;AAEfK,IAAAA,QAAQ,EAAE,QAFK;AAGfF,IAAAA,aAAa,EAAE,CAHA;AAIfC,IAAAA,UAAU,EAAE;AAJG,GARc;AAc/BP,EAAAA,MAAM,EAAE;AACNI,IAAAA,IAAI,EAAE;AADA;AAduB,CAAlB,CAAf;AAmBA,eAAejB,UAAf","sourcesContent":["import * as React from 'react';\nimport {\n View,\n TouchableOpacity,\n BackHandler,\n ViewStyle,\n StyleProp,\n StyleSheet,\n} from 'react-native';\n\nimport Overlay from './Overlay';\nimport Sheet from './Sheet';\n\nexport interface ShareSheetProps {\n visible: boolean;\n onCancel: () => void;\n style?: StyleProp<ViewStyle>;\n overlayStyle?: StyleProp<ViewStyle>;\n}\n\nconst ShareSheet: React.FC<React.PropsWithChildren<ShareSheetProps>> = ({\n style = {},\n overlayStyle = {},\n visible,\n onCancel,\n children,\n}) => {\n const backButtonHandler = React.useCallback(() => {\n if (visible) {\n onCancel();\n return true;\n }\n return false;\n }, [visible, onCancel]);\n\n React.useEffect(() => {\n BackHandler.addEventListener('hardwareBackPress', backButtonHandler);\n return () => {\n BackHandler.removeEventListener('hardwareBackPress', backButtonHandler);\n };\n }, [backButtonHandler]);\n\n return (\n <Overlay visible={visible}>\n <View style={[styles.actionSheetContainer, overlayStyle]}>\n <TouchableOpacity style={styles.button} onPress={onCancel} />\n <Sheet visible={visible}>\n <View style={[styles.buttonContainer, style]}>{children}</View>\n </Sheet>\n </View>\n </Overlay>\n );\n};\n\nconst styles = StyleSheet.create({\n actionSheetContainer: {\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n flex: 1,\n justifyContent: 'flex-end',\n paddingBottom: 0,\n paddingTop: 10,\n },\n buttonContainer: {\n backgroundColor: 'white',\n overflow: 'hidden',\n paddingBottom: 5,\n paddingTop: 5,\n },\n button: {\n flex: 1,\n },\n});\n\nexport default ShareSheet;\n"]}
|
|
@@ -1,36 +1,26 @@
|
|
|
1
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
|
|
3
1
|
import * as React from 'react';
|
|
4
2
|
import { Animated } from 'react-native';
|
|
5
3
|
const DEFAULT_BOTTOM = -300;
|
|
6
4
|
const DEFAULT_ANIMATE_TIME = 300;
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
UNSAFE_componentWillReceiveProps(newProps) {
|
|
18
|
-
return Animated.timing(this.state.bottom, {
|
|
19
|
-
toValue: newProps.visible ? 0 : DEFAULT_BOTTOM,
|
|
6
|
+
const Sheet = ({
|
|
7
|
+
visible,
|
|
8
|
+
children
|
|
9
|
+
}) => {
|
|
10
|
+
const [bottom] = React.useState(new Animated.Value(DEFAULT_BOTTOM));
|
|
11
|
+
React.useEffect(() => {
|
|
12
|
+
return Animated.timing(bottom, {
|
|
13
|
+
toValue: visible ? 0 : DEFAULT_BOTTOM,
|
|
20
14
|
duration: DEFAULT_ANIMATE_TIME,
|
|
21
15
|
useNativeDriver: false
|
|
22
16
|
}).start();
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}, this.props.children);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
}
|
|
17
|
+
}, [visible, bottom]);
|
|
18
|
+
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
19
|
+
style: {
|
|
20
|
+
bottom
|
|
21
|
+
}
|
|
22
|
+
}, children);
|
|
23
|
+
};
|
|
34
24
|
|
|
35
25
|
export default Sheet;
|
|
36
26
|
//# sourceMappingURL=Sheet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Sheet.tsx"],"names":["React","Animated","DEFAULT_BOTTOM","DEFAULT_ANIMATE_TIME","Sheet","
|
|
1
|
+
{"version":3,"sources":["Sheet.tsx"],"names":["React","Animated","DEFAULT_BOTTOM","DEFAULT_ANIMATE_TIME","Sheet","visible","children","bottom","useState","Value","useEffect","timing","toValue","duration","useNativeDriver","start"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT,QAAyB,cAAzB;AAEA,MAAMC,cAAc,GAAG,CAAC,GAAxB;AACA,MAAMC,oBAAoB,GAAG,GAA7B;;AAMA,MAAMC,KAAoD,GAAG,CAAC;AAAEC,EAAAA,OAAF;AAAWC,EAAAA;AAAX,CAAD,KAA2B;AACtF,QAAM,CAACC,MAAD,IAAWP,KAAK,CAACQ,QAAN,CAAe,IAAIP,QAAQ,CAACQ,KAAb,CAAmBP,cAAnB,CAAf,CAAjB;AAEAF,EAAAA,KAAK,CAACU,SAAN,CAAgB,MAAM;AACpB,WAAOT,QAAQ,CAACU,MAAT,CAAgBJ,MAAhB,EAAwB;AAC7BK,MAAAA,OAAO,EAAEP,OAAO,GAAG,CAAH,GAAOH,cADM;AAE7BW,MAAAA,QAAQ,EAAEV,oBAFmB;AAG7BW,MAAAA,eAAe,EAAE;AAHY,KAAxB,EAIJC,KAJI,EAAP;AAKD,GAND,EAMG,CAACV,OAAD,EAAUE,MAAV,CANH;AAQA,sBAAO,oBAAC,QAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAE;AAAEA,MAAAA;AAAF;AAAtB,KAAmCD,QAAnC,CAAP;AACD,CAZD;;AAcA,eAAeF,KAAf","sourcesContent":["import * as React from 'react';\nimport { Animated } from 'react-native';\n\nconst DEFAULT_BOTTOM = -300;\nconst DEFAULT_ANIMATE_TIME = 300;\n\nexport interface SheetProps {\n visible: boolean;\n}\n\nconst Sheet: React.FC<React.PropsWithChildren<SheetProps>> = ({ visible, children }) => {\n const [bottom] = React.useState(new Animated.Value(DEFAULT_BOTTOM));\n\n React.useEffect(() => {\n return Animated.timing(bottom, {\n toValue: visible ? 0 : DEFAULT_BOTTOM,\n duration: DEFAULT_ANIMATE_TIME,\n useNativeDriver: false,\n }).start();\n }, [visible, bottom]);\n\n return <Animated.View style={{ bottom }}>{children}</Animated.View>;\n};\n\nexport default Sheet;\n"]}
|
package/lib/module/types.js.map
CHANGED
|
@@ -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
|
|
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"]}
|
|
@@ -7,5 +7,5 @@ export interface ButtonProps {
|
|
|
7
7
|
textStyle?: StyleProp<TextStyle>;
|
|
8
8
|
children: React.ReactNode;
|
|
9
9
|
}
|
|
10
|
-
declare const Button:
|
|
10
|
+
declare const Button: React.FC<ButtonProps>;
|
|
11
11
|
export default Button;
|
|
@@ -1,24 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { Animated, StyleProp, ViewStyle } from 'react-native';
|
|
3
2
|
export interface OverlayProps {
|
|
4
3
|
visible: boolean;
|
|
5
4
|
}
|
|
6
|
-
|
|
7
|
-
fadeAnim: Animated.Value;
|
|
8
|
-
overlayStyle: StyleProp<ViewStyle>;
|
|
9
|
-
}
|
|
10
|
-
declare class Overlay extends React.Component<OverlayProps, State> {
|
|
11
|
-
state: {
|
|
12
|
-
fadeAnim: Animated.Value;
|
|
13
|
-
overlayStyle: {
|
|
14
|
-
backgroundColor: string;
|
|
15
|
-
height: number;
|
|
16
|
-
position: "absolute";
|
|
17
|
-
width: number;
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
UNSAFE_componentWillReceiveProps(newProps: OverlayProps): void;
|
|
21
|
-
onAnimatedEnd(): void;
|
|
22
|
-
render(): JSX.Element;
|
|
23
|
-
}
|
|
5
|
+
declare const Overlay: React.FC<React.PropsWithChildren<OverlayProps>>;
|
|
24
6
|
export default Overlay;
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import { ViewStyle, StyleProp } from 'react-native';
|
|
3
3
|
export interface ShareSheetProps {
|
|
4
4
|
visible: boolean;
|
|
5
5
|
onCancel: () => void;
|
|
6
|
-
children: React.ReactChildren;
|
|
7
6
|
style?: StyleProp<ViewStyle>;
|
|
8
7
|
overlayStyle?: StyleProp<ViewStyle>;
|
|
9
8
|
}
|
|
10
|
-
declare
|
|
11
|
-
componentDidMount(): void;
|
|
12
|
-
componentWillUnmount(): void;
|
|
13
|
-
backButtonHandler(): boolean;
|
|
14
|
-
render(): JSX.Element;
|
|
15
|
-
}
|
|
9
|
+
declare const ShareSheet: React.FC<React.PropsWithChildren<ShareSheetProps>>;
|
|
16
10
|
export default ShareSheet;
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { Animated } from 'react-native';
|
|
3
2
|
export interface SheetProps {
|
|
4
3
|
visible: boolean;
|
|
5
4
|
}
|
|
6
|
-
|
|
7
|
-
bottom: Animated.Value;
|
|
8
|
-
}
|
|
9
|
-
declare class Sheet extends React.Component<SheetProps, State> {
|
|
10
|
-
state: {
|
|
11
|
-
bottom: Animated.Value;
|
|
12
|
-
};
|
|
13
|
-
UNSAFE_componentWillReceiveProps(newProps: SheetProps): void;
|
|
14
|
-
render(): JSX.Element;
|
|
15
|
-
}
|
|
5
|
+
declare const Sheet: React.FC<React.PropsWithChildren<SheetProps>>;
|
|
16
6
|
export default Sheet;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import Overlay from './components/Overlay';
|
|
2
3
|
import Sheet from './components/Sheet';
|
|
3
4
|
import Button from './components/Button';
|
|
4
5
|
import ShareSheet from './components/ShareSheet';
|
|
5
6
|
import { Social, IsPackageInstalledResult, ActivityType, ShareOpenResult, ShareAsset, ShareOptions, ShareSingleOptions, ShareSingleResult } from './types';
|
|
6
7
|
declare const RNShare: {
|
|
7
|
-
readonly Button: (
|
|
8
|
-
readonly ShareSheet:
|
|
9
|
-
readonly Overlay:
|
|
10
|
-
readonly Sheet:
|
|
8
|
+
readonly Button: import("react").FC<import("./components/Button").ButtonProps>;
|
|
9
|
+
readonly ShareSheet: import("react").FC<import("react").PropsWithChildren<import("./components/ShareSheet").ShareSheetProps>>;
|
|
10
|
+
readonly Overlay: import("react").FC<import("react").PropsWithChildren<import("./components/Overlay").OverlayProps>>;
|
|
11
|
+
readonly Sheet: import("react").FC<import("react").PropsWithChildren<import("./components/Sheet").SheetProps>>;
|
|
11
12
|
readonly Social: {
|
|
12
13
|
readonly FACEBOOK: Social.Facebook;
|
|
13
14
|
readonly FACEBOOK_STORIES: Social.FacebookStories;
|
|
@@ -39,16 +39,16 @@ export interface ActivityItem {
|
|
|
39
39
|
export interface ActivityItemSource {
|
|
40
40
|
placeholderItem: ActivityItem;
|
|
41
41
|
item: {
|
|
42
|
-
[key in
|
|
42
|
+
[key in ActivityTypeItemSource]?: ActivityItem | null | undefined;
|
|
43
43
|
};
|
|
44
44
|
subject?: {
|
|
45
|
-
[key in
|
|
45
|
+
[key in ActivityTypeItemSource]?: string;
|
|
46
46
|
};
|
|
47
47
|
dataTypeIdentifier?: {
|
|
48
|
-
[key in
|
|
48
|
+
[key in ActivityTypeItemSource]?: string;
|
|
49
49
|
};
|
|
50
50
|
thumbnailImage?: {
|
|
51
|
-
[key in
|
|
51
|
+
[key in ActivityTypeItemSource]?: string;
|
|
52
52
|
};
|
|
53
53
|
linkMetadata?: LinkMetadata;
|
|
54
54
|
}
|
|
@@ -101,6 +101,7 @@ export interface ShareOptions {
|
|
|
101
101
|
isNewTask?: boolean;
|
|
102
102
|
}
|
|
103
103
|
export declare type ActivityType = 'default' | 'addToReadingList' | 'airDrop' | 'assignToContact' | 'copyToPasteBoard' | 'mail' | 'message' | 'openInIBooks' | 'postToFacebook' | 'postToFlickr' | 'postToTencentWeibo' | 'postToTwitter' | 'postToVimeo' | 'postToWeibo' | 'print' | 'saveToCameraRoll' | 'markupAsPDF';
|
|
104
|
+
export declare type ActivityTypeItemSource = ActivityType | string;
|
|
104
105
|
export interface ShareSingleResult {
|
|
105
106
|
message: string;
|
|
106
107
|
success: boolean;
|
package/package.json
CHANGED
|
@@ -18,7 +18,13 @@ export interface ButtonProps {
|
|
|
18
18
|
children: React.ReactNode;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
const Button
|
|
21
|
+
const Button: React.FC<ButtonProps> = ({
|
|
22
|
+
buttonStyle,
|
|
23
|
+
onPress,
|
|
24
|
+
iconSrc,
|
|
25
|
+
textStyle,
|
|
26
|
+
children,
|
|
27
|
+
}: ButtonProps) => (
|
|
22
28
|
<TouchableOpacity activeOpacity={0.5} style={[styles.button, buttonStyle]} onPress={onPress}>
|
|
23
29
|
<Image style={styles.icon} source={iconSrc} />
|
|
24
30
|
<Text style={[styles.buttonText, textStyle]}>{children}</Text>
|
|
@@ -23,41 +23,28 @@ export interface OverlayProps {
|
|
|
23
23
|
visible: boolean;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
fadeAnim
|
|
28
|
-
overlayStyle
|
|
29
|
-
}
|
|
26
|
+
const Overlay: React.FC<React.PropsWithChildren<OverlayProps>> = ({ visible, children }) => {
|
|
27
|
+
const [fadeAnim] = React.useState(new Animated.Value(0));
|
|
28
|
+
const [overlayStyle, setOverlayStyle] = React.useState<StyleProp<ViewStyle>>(styles.emptyOverlay);
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
};
|
|
30
|
+
const onAnimatedEnd = React.useCallback(() => {
|
|
31
|
+
if (!visible) {
|
|
32
|
+
setOverlayStyle(styles.emptyOverlay);
|
|
33
|
+
}
|
|
34
|
+
}, [visible]);
|
|
36
35
|
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
|
|
36
|
+
React.useEffect(() => {
|
|
37
|
+
if (visible) {
|
|
38
|
+
setOverlayStyle(styles.fullOverlay);
|
|
40
39
|
}
|
|
41
|
-
return Animated.timing(
|
|
42
|
-
toValue:
|
|
40
|
+
return Animated.timing(fadeAnim, {
|
|
41
|
+
toValue: visible ? 1 : 0,
|
|
43
42
|
duration: DEFAULT_ANIMATE_TIME,
|
|
44
43
|
useNativeDriver: false,
|
|
45
|
-
}).start(
|
|
46
|
-
}
|
|
44
|
+
}).start(onAnimatedEnd);
|
|
45
|
+
}, [visible, fadeAnim, onAnimatedEnd]);
|
|
47
46
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
this.setState({ overlayStyle: styles.emptyOverlay });
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
render() {
|
|
55
|
-
return (
|
|
56
|
-
<Animated.View style={[this.state.overlayStyle, { opacity: this.state.fadeAnim }]}>
|
|
57
|
-
{this.props.children}
|
|
58
|
-
</Animated.View>
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
47
|
+
return <Animated.View style={[overlayStyle, { opacity: fadeAnim }]}>{children}</Animated.View>;
|
|
48
|
+
};
|
|
62
49
|
|
|
63
50
|
export default Overlay;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
View,
|
|
4
|
+
TouchableOpacity,
|
|
5
|
+
BackHandler,
|
|
6
|
+
ViewStyle,
|
|
7
|
+
StyleProp,
|
|
8
|
+
StyleSheet,
|
|
9
|
+
} from 'react-native';
|
|
4
10
|
|
|
5
11
|
import Overlay from './Overlay';
|
|
6
12
|
import Sheet from './Sheet';
|
|
@@ -8,46 +14,43 @@ import Sheet from './Sheet';
|
|
|
8
14
|
export interface ShareSheetProps {
|
|
9
15
|
visible: boolean;
|
|
10
16
|
onCancel: () => void;
|
|
11
|
-
children: React.ReactChildren;
|
|
12
17
|
style?: StyleProp<ViewStyle>;
|
|
13
18
|
overlayStyle?: StyleProp<ViewStyle>;
|
|
14
19
|
}
|
|
15
20
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
backButtonHandler(): boolean {
|
|
27
|
-
if (this.props.visible) {
|
|
28
|
-
this.props.onCancel();
|
|
21
|
+
const ShareSheet: React.FC<React.PropsWithChildren<ShareSheetProps>> = ({
|
|
22
|
+
style = {},
|
|
23
|
+
overlayStyle = {},
|
|
24
|
+
visible,
|
|
25
|
+
onCancel,
|
|
26
|
+
children,
|
|
27
|
+
}) => {
|
|
28
|
+
const backButtonHandler = React.useCallback(() => {
|
|
29
|
+
if (visible) {
|
|
30
|
+
onCancel();
|
|
29
31
|
return true;
|
|
30
32
|
}
|
|
31
33
|
return false;
|
|
32
|
-
}
|
|
34
|
+
}, [visible, onCancel]);
|
|
33
35
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
React.useEffect(() => {
|
|
37
|
+
BackHandler.addEventListener('hardwareBackPress', backButtonHandler);
|
|
38
|
+
return () => {
|
|
39
|
+
BackHandler.removeEventListener('hardwareBackPress', backButtonHandler);
|
|
40
|
+
};
|
|
41
|
+
}, [backButtonHandler]);
|
|
36
42
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export default ShareSheet;
|
|
43
|
+
return (
|
|
44
|
+
<Overlay visible={visible}>
|
|
45
|
+
<View style={[styles.actionSheetContainer, overlayStyle]}>
|
|
46
|
+
<TouchableOpacity style={styles.button} onPress={onCancel} />
|
|
47
|
+
<Sheet visible={visible}>
|
|
48
|
+
<View style={[styles.buttonContainer, style]}>{children}</View>
|
|
49
|
+
</Sheet>
|
|
50
|
+
</View>
|
|
51
|
+
</Overlay>
|
|
52
|
+
);
|
|
53
|
+
};
|
|
51
54
|
|
|
52
55
|
const styles = StyleSheet.create({
|
|
53
56
|
actionSheetContainer: {
|
|
@@ -67,3 +70,5 @@ const styles = StyleSheet.create({
|
|
|
67
70
|
flex: 1,
|
|
68
71
|
},
|
|
69
72
|
});
|
|
73
|
+
|
|
74
|
+
export default ShareSheet;
|
package/src/components/Sheet.tsx
CHANGED
|
@@ -8,28 +8,18 @@ export interface SheetProps {
|
|
|
8
8
|
visible: boolean;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
bottom
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
class Sheet extends React.Component<SheetProps, State> {
|
|
16
|
-
state = {
|
|
17
|
-
bottom: new Animated.Value(DEFAULT_BOTTOM),
|
|
18
|
-
};
|
|
11
|
+
const Sheet: React.FC<React.PropsWithChildren<SheetProps>> = ({ visible, children }) => {
|
|
12
|
+
const [bottom] = React.useState(new Animated.Value(DEFAULT_BOTTOM));
|
|
19
13
|
|
|
20
|
-
|
|
21
|
-
return Animated.timing(
|
|
22
|
-
toValue:
|
|
14
|
+
React.useEffect(() => {
|
|
15
|
+
return Animated.timing(bottom, {
|
|
16
|
+
toValue: visible ? 0 : DEFAULT_BOTTOM,
|
|
23
17
|
duration: DEFAULT_ANIMATE_TIME,
|
|
24
18
|
useNativeDriver: false,
|
|
25
19
|
}).start();
|
|
26
|
-
}
|
|
20
|
+
}, [visible, bottom]);
|
|
27
21
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<Animated.View style={{ bottom: this.state.bottom }}>{this.props.children}</Animated.View>
|
|
31
|
-
);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
22
|
+
return <Animated.View style={{ bottom }}>{children}</Animated.View>;
|
|
23
|
+
};
|
|
34
24
|
|
|
35
25
|
export default Sheet;
|
package/src/types.ts
CHANGED
|
@@ -42,10 +42,10 @@ export interface ActivityItem {
|
|
|
42
42
|
|
|
43
43
|
export interface ActivityItemSource {
|
|
44
44
|
placeholderItem: ActivityItem;
|
|
45
|
-
item: { [key in
|
|
46
|
-
subject?: { [key in
|
|
47
|
-
dataTypeIdentifier?: { [key in
|
|
48
|
-
thumbnailImage?: { [key in
|
|
45
|
+
item: { [key in ActivityTypeItemSource]?: ActivityItem | null | undefined };
|
|
46
|
+
subject?: { [key in ActivityTypeItemSource]?: string };
|
|
47
|
+
dataTypeIdentifier?: { [key in ActivityTypeItemSource]?: string };
|
|
48
|
+
thumbnailImage?: { [key in ActivityTypeItemSource]?: string };
|
|
49
49
|
linkMetadata?: LinkMetadata;
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -125,6 +125,8 @@ export type ActivityType =
|
|
|
125
125
|
| 'saveToCameraRoll'
|
|
126
126
|
| 'markupAsPDF'; // iOS 11 or late
|
|
127
127
|
|
|
128
|
+
export type ActivityTypeItemSource = ActivityType | string;
|
|
129
|
+
|
|
128
130
|
export interface ShareSingleResult {
|
|
129
131
|
message: string;
|
|
130
132
|
success: boolean;
|