react-native-share 8.0.1 → 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.
@@ -197,7 +197,7 @@
197
197
  }
198
198
  }
199
199
 
200
- return nil;
200
+ return activityType;
201
201
  }
202
202
 
203
203
  + (nullable id)objectForActivityType:(UIActivityType)activityType inDictionary:(nonnull NSDictionary *)dictionary {
@@ -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,MAAM,GAAG,CAAC;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,OAAf;AAAwBC,EAAAA,OAAxB;AAAiCC,EAAAA,SAAjC;AAA4CC,EAAAA;AAA5C,CAAD,kBACb,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,CADF;;eAOeL,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 = ({ buttonStyle, onPress, iconSrc, textStyle, children }: 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
+ {"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
- class Overlay extends React.Component {
38
- constructor(...args) {
39
- super(...args);
40
-
41
- _defineProperty(this, "state", {
42
- fadeAnim: new _reactNative.Animated.Value(0),
43
- overlayStyle: styles.emptyOverlay
44
- });
45
- }
46
-
47
- UNSAFE_componentWillReceiveProps(newProps) {
48
- if (newProps.visible) {
49
- this.setState({
50
- overlayStyle: styles.fullOverlay
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(this.state.fadeAnim, {
55
- toValue: newProps.visible ? 1 : 0,
51
+ return _reactNative.Animated.timing(fadeAnim, {
52
+ toValue: visible ? 1 : 0,
56
53
  duration: DEFAULT_ANIMATE_TIME,
57
54
  useNativeDriver: false
58
- }).start(this.onAnimatedEnd.bind(this));
59
- }
60
-
61
- onAnimatedEnd() {
62
- if (!this.props.visible) {
63
- this.setState({
64
- overlayStyle: styles.emptyOverlay
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","React","Component","fadeAnim","Animated","Value","overlayStyle","UNSAFE_componentWillReceiveProps","newProps","visible","setState","timing","state","toValue","duration","useNativeDriver","start","onAnimatedEnd","bind","props","render","opacity","children"],"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;;AA0BA,MAAMC,OAAN,SAAsBC,KAAK,CAACC,SAA5B,CAA2D;AAAA;AAAA;;AAAA,mCACjD;AACNC,MAAAA,QAAQ,EAAE,IAAIC,sBAASC,KAAb,CAAmB,CAAnB,CADJ;AAENC,MAAAA,YAAY,EAAEnB,MAAM,CAACG;AAFf,KADiD;AAAA;;AAMzDiB,EAAAA,gCAAgC,CAACC,QAAD,EAAyB;AACvD,QAAIA,QAAQ,CAACC,OAAb,EAAsB;AACpB,WAAKC,QAAL,CAAc;AAAEJ,QAAAA,YAAY,EAAEnB,MAAM,CAACQ;AAAvB,OAAd;AACD;;AACD,WAAOS,sBAASO,MAAT,CAAgB,KAAKC,KAAL,CAAWT,QAA3B,EAAqC;AAC1CU,MAAAA,OAAO,EAAEL,QAAQ,CAACC,OAAT,GAAmB,CAAnB,GAAuB,CADU;AAE1CK,MAAAA,QAAQ,EAAE5B,oBAFgC;AAG1C6B,MAAAA,eAAe,EAAE;AAHyB,KAArC,EAIJC,KAJI,CAIE,KAAKC,aAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CAJF,CAAP;AAKD;;AAEDD,EAAAA,aAAa,GAAG;AACd,QAAI,CAAC,KAAKE,KAAL,CAAWV,OAAhB,EAAyB;AACvB,WAAKC,QAAL,CAAc;AAAEJ,QAAAA,YAAY,EAAEnB,MAAM,CAACG;AAAvB,OAAd;AACD;AACF;;AAED8B,EAAAA,MAAM,GAAG;AACP,wBACE,oBAAC,qBAAD,CAAU,IAAV;AAAe,MAAA,KAAK,EAAE,CAAC,KAAKR,KAAL,CAAWN,YAAZ,EAA0B;AAAEe,QAAAA,OAAO,EAAE,KAAKT,KAAL,CAAWT;AAAtB,OAA1B;AAAtB,OACG,KAAKgB,KAAL,CAAWG,QADd,CADF;AAKD;;AA7BwD;;eAgC5CtB,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\ninterface State {\n fadeAnim: Animated.Value;\n overlayStyle: StyleProp<ViewStyle>;\n}\n\nclass Overlay extends React.Component<OverlayProps, State> {\n state = {\n fadeAnim: new Animated.Value(0),\n overlayStyle: styles.emptyOverlay,\n };\n\n UNSAFE_componentWillReceiveProps(newProps: OverlayProps) {\n if (newProps.visible) {\n this.setState({ overlayStyle: styles.fullOverlay });\n }\n return Animated.timing(this.state.fadeAnim, {\n toValue: newProps.visible ? 1 : 0,\n duration: DEFAULT_ANIMATE_TIME,\n useNativeDriver: false,\n }).start(this.onAnimatedEnd.bind(this));\n }\n\n onAnimatedEnd() {\n if (!this.props.visible) {\n this.setState({ overlayStyle: styles.emptyOverlay });\n }\n }\n\n render() {\n return (\n <Animated.View style={[this.state.overlayStyle, { opacity: this.state.fadeAnim }]}>\n {this.props.children}\n </Animated.View>\n );\n }\n}\n\nexport default Overlay;\n"]}
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
- class ShareSheet extends React.Component {
23
- componentDidMount() {
24
- this.backButtonHandler = this.backButtonHandler.bind(this);
25
-
26
- _reactNative.BackHandler.addEventListener('hardwareBackPress', this.backButtonHandler);
27
- }
28
-
29
- componentWillUnmount() {
30
- _reactNative.BackHandler.removeEventListener('hardwareBackPress', this.backButtonHandler);
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
- render() {
43
- const {
44
- style = {},
45
- overlayStyle = {},
46
- ...props
47
- } = this.props;
48
- return /*#__PURE__*/React.createElement(_Overlay.default, props, /*#__PURE__*/React.createElement(_reactNative.View, {
49
- style: [styles.actionSheetContainer, overlayStyle]
50
- }, /*#__PURE__*/React.createElement(_reactNative.TouchableOpacity, {
51
- style: styles.button,
52
- onPress: this.props.onCancel
53
- }), /*#__PURE__*/React.createElement(_Sheet.default, {
54
- visible: this.props.visible
55
- }, /*#__PURE__*/React.createElement(_reactNative.View, {
56
- style: [styles.buttonContainer, style]
57
- }, this.props.children))));
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","React","Component","componentDidMount","backButtonHandler","bind","BackHandler","addEventListener","componentWillUnmount","removeEventListener","props","visible","onCancel","render","style","overlayStyle","styles","actionSheetContainer","button","buttonContainer","children","StyleSheet","create","backgroundColor","flex","justifyContent","paddingBottom","paddingTop","overflow"],"mappings":";;;;;;;AAAA;;AACA;;AAGA;;AACA;;;;;;;;AAUA,MAAMA,UAAN,SAAyBC,KAAK,CAACC,SAA/B,CAA0D;AACxDC,EAAAA,iBAAiB,GAAG;AAClB,SAAKC,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBC,IAAvB,CAA4B,IAA5B,CAAzB;;AACAC,6BAAYC,gBAAZ,CAA6B,mBAA7B,EAAkD,KAAKH,iBAAvD;AACD;;AAEDI,EAAAA,oBAAoB,GAAG;AACrBF,6BAAYG,mBAAZ,CAAgC,mBAAhC,EAAqD,KAAKL,iBAA1D;AACD;;AAEDA,EAAAA,iBAAiB,GAAY;AAC3B,QAAI,KAAKM,KAAL,CAAWC,OAAf,EAAwB;AACtB,WAAKD,KAAL,CAAWE,QAAX;AACA,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAEDC,EAAAA,MAAM,GAAG;AACP,UAAM;AAAEC,MAAAA,KAAK,GAAG,EAAV;AAAcC,MAAAA,YAAY,GAAG,EAA7B;AAAiC,SAAGL;AAApC,QAA8C,KAAKA,KAAzD;AAEA,wBACE,oBAAC,gBAAD,EAAaA,KAAb,eACE,oBAAC,iBAAD;AAAM,MAAA,KAAK,EAAE,CAACM,MAAM,CAACC,oBAAR,EAA8BF,YAA9B;AAAb,oBACE,oBAAC,6BAAD;AAAkB,MAAA,KAAK,EAAEC,MAAM,CAACE,MAAhC;AAAwC,MAAA,OAAO,EAAE,KAAKR,KAAL,CAAWE;AAA5D,MADF,eAEE,oBAAC,cAAD;AAAO,MAAA,OAAO,EAAE,KAAKF,KAAL,CAAWC;AAA3B,oBACE,oBAAC,iBAAD;AAAM,MAAA,KAAK,EAAE,CAACK,MAAM,CAACG,eAAR,EAAyBL,KAAzB;AAAb,OAA+C,KAAKJ,KAAL,CAAWU,QAA1D,CADF,CAFF,CADF,CADF;AAUD;;AA/BuD;;eAkC3CpB,U;;;AAEf,MAAMgB,MAAM,GAAGK,wBAAWC,MAAX,CAAkB;AAC/BL,EAAAA,oBAAoB,EAAE;AACpBM,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/BR,EAAAA,eAAe,EAAE;AACfI,IAAAA,eAAe,EAAE,OADF;AAEfK,IAAAA,QAAQ,EAAE,QAFK;AAGfF,IAAAA,aAAa,EAAE,CAHA;AAIfC,IAAAA,UAAU,EAAE;AAJG,GARc;AAc/BT,EAAAA,MAAM,EAAE;AACNM,IAAAA,IAAI,EAAE;AADA;AAduB,CAAlB,CAAf","sourcesContent":["import * as React from 'react';\nimport { View, StyleSheet, TouchableOpacity, BackHandler } from 'react-native';\nimport type { ViewStyle, StyleProp } from 'react-native';\n\nimport Overlay from './Overlay';\nimport Sheet from './Sheet';\n\nexport interface ShareSheetProps {\n visible: boolean;\n onCancel: () => void;\n children: React.ReactChildren;\n style?: StyleProp<ViewStyle>;\n overlayStyle?: StyleProp<ViewStyle>;\n}\n\nclass ShareSheet extends React.Component<ShareSheetProps> {\n componentDidMount() {\n this.backButtonHandler = this.backButtonHandler.bind(this);\n BackHandler.addEventListener('hardwareBackPress', this.backButtonHandler);\n }\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.backButtonHandler);\n }\n\n backButtonHandler(): boolean {\n if (this.props.visible) {\n this.props.onCancel();\n return true;\n }\n return false;\n }\n\n render() {\n const { style = {}, overlayStyle = {}, ...props } = this.props;\n\n return (\n <Overlay {...props}>\n <View style={[styles.actionSheetContainer, overlayStyle]}>\n <TouchableOpacity style={styles.button} onPress={this.props.onCancel} />\n <Sheet visible={this.props.visible}>\n <View style={[styles.buttonContainer, style]}>{this.props.children}</View>\n </Sheet>\n </View>\n </Overlay>\n );\n }\n}\n\nexport default ShareSheet;\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"]}
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
- class Sheet extends React.Component {
22
- constructor(...args) {
23
- super(...args);
24
-
25
- _defineProperty(this, "state", {
26
- bottom: new _reactNative.Animated.Value(DEFAULT_BOTTOM)
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
- render() {
39
- return /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
40
- style: {
41
- bottom: this.state.bottom
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","React","Component","bottom","Animated","Value","UNSAFE_componentWillReceiveProps","newProps","timing","state","toValue","visible","duration","useNativeDriver","start","render","props","children"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AAEA,MAAMA,cAAc,GAAG,CAAC,GAAxB;AACA,MAAMC,oBAAoB,GAAG,GAA7B;;AAUA,MAAMC,KAAN,SAAoBC,KAAK,CAACC,SAA1B,CAAuD;AAAA;AAAA;;AAAA,mCAC7C;AACNC,MAAAA,MAAM,EAAE,IAAIC,sBAASC,KAAb,CAAmBP,cAAnB;AADF,KAD6C;AAAA;;AAKrDQ,EAAAA,gCAAgC,CAACC,QAAD,EAAuB;AACrD,WAAOH,sBAASI,MAAT,CAAgB,KAAKC,KAAL,CAAWN,MAA3B,EAAmC;AACxCO,MAAAA,OAAO,EAAEH,QAAQ,CAACI,OAAT,GAAmB,CAAnB,GAAuBb,cADQ;AAExCc,MAAAA,QAAQ,EAAEb,oBAF8B;AAGxCc,MAAAA,eAAe,EAAE;AAHuB,KAAnC,EAIJC,KAJI,EAAP;AAKD;;AAEDC,EAAAA,MAAM,GAAG;AACP,wBACE,oBAAC,qBAAD,CAAU,IAAV;AAAe,MAAA,KAAK,EAAE;AAAEZ,QAAAA,MAAM,EAAE,KAAKM,KAAL,CAAWN;AAArB;AAAtB,OAAsD,KAAKa,KAAL,CAAWC,QAAjE,CADF;AAGD;;AAjBoD;;eAoBxCjB,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\ninterface State {\n bottom: Animated.Value;\n}\n\nclass Sheet extends React.Component<SheetProps, State> {\n state = {\n bottom: new Animated.Value(DEFAULT_BOTTOM),\n };\n\n UNSAFE_componentWillReceiveProps(newProps: SheetProps) {\n return Animated.timing(this.state.bottom, {\n toValue: newProps.visible ? 0 : DEFAULT_BOTTOM,\n duration: DEFAULT_ANIMATE_TIME,\n useNativeDriver: false,\n }).start();\n }\n\n render() {\n return (\n <Animated.View style={{ bottom: this.state.bottom }}>{this.props.children}</Animated.View>\n );\n }\n}\n\nexport default Sheet;\n"]}
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 ActivityType]?: ActivityItem | null | undefined };\n subject?: { [key in ActivityType]?: string };\n dataTypeIdentifier?: { [key in ActivityType]?: string };\n thumbnailImage?: { [key in ActivityType]?: 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 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
+ {"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,MAAM,GAAG,CAAC;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,OAAf;AAAwBC,EAAAA,OAAxB;AAAiCC,EAAAA,SAAjC;AAA4CC,EAAAA;AAA5C,CAAD,kBACb,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,CADF;;AAOA,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 = ({ buttonStyle, onPress, iconSrc, textStyle, children }: 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
+ {"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
- class Overlay extends React.Component {
24
- constructor(...args) {
25
- super(...args);
26
-
27
- _defineProperty(this, "state", {
28
- fadeAnim: new Animated.Value(0),
29
- overlayStyle: styles.emptyOverlay
30
- });
31
- }
32
-
33
- UNSAFE_componentWillReceiveProps(newProps) {
34
- if (newProps.visible) {
35
- this.setState({
36
- overlayStyle: styles.fullOverlay
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(this.state.fadeAnim, {
41
- toValue: newProps.visible ? 1 : 0,
37
+ return Animated.timing(fadeAnim, {
38
+ toValue: visible ? 1 : 0,
42
39
  duration: DEFAULT_ANIMATE_TIME,
43
40
  useNativeDriver: false
44
- }).start(this.onAnimatedEnd.bind(this));
45
- }
46
-
47
- onAnimatedEnd() {
48
- if (!this.props.visible) {
49
- this.setState({
50
- overlayStyle: styles.emptyOverlay
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","Component","fadeAnim","Value","overlayStyle","UNSAFE_componentWillReceiveProps","newProps","visible","setState","timing","state","toValue","duration","useNativeDriver","start","onAnimatedEnd","bind","props","render","opacity","children"],"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;;AA0BA,MAAMC,OAAN,SAAsBhB,KAAK,CAACiB,SAA5B,CAA2D;AAAA;AAAA;;AAAA,mCACjD;AACNC,MAAAA,QAAQ,EAAE,IAAIjB,QAAQ,CAACkB,KAAb,CAAmB,CAAnB,CADJ;AAENC,MAAAA,YAAY,EAAEhB,MAAM,CAACE;AAFf,KADiD;AAAA;;AAMzDe,EAAAA,gCAAgC,CAACC,QAAD,EAAyB;AACvD,QAAIA,QAAQ,CAACC,OAAb,EAAsB;AACpB,WAAKC,QAAL,CAAc;AAAEJ,QAAAA,YAAY,EAAEhB,MAAM,CAACO;AAAvB,OAAd;AACD;;AACD,WAAOV,QAAQ,CAACwB,MAAT,CAAgB,KAAKC,KAAL,CAAWR,QAA3B,EAAqC;AAC1CS,MAAAA,OAAO,EAAEL,QAAQ,CAACC,OAAT,GAAmB,CAAnB,GAAuB,CADU;AAE1CK,MAAAA,QAAQ,EAAEzB,oBAFgC;AAG1C0B,MAAAA,eAAe,EAAE;AAHyB,KAArC,EAIJC,KAJI,CAIE,KAAKC,aAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CAJF,CAAP;AAKD;;AAEDD,EAAAA,aAAa,GAAG;AACd,QAAI,CAAC,KAAKE,KAAL,CAAWV,OAAhB,EAAyB;AACvB,WAAKC,QAAL,CAAc;AAAEJ,QAAAA,YAAY,EAAEhB,MAAM,CAACE;AAAvB,OAAd;AACD;AACF;;AAED4B,EAAAA,MAAM,GAAG;AACP,wBACE,oBAAC,QAAD,CAAU,IAAV;AAAe,MAAA,KAAK,EAAE,CAAC,KAAKR,KAAL,CAAWN,YAAZ,EAA0B;AAAEe,QAAAA,OAAO,EAAE,KAAKT,KAAL,CAAWR;AAAtB,OAA1B;AAAtB,OACG,KAAKe,KAAL,CAAWG,QADd,CADF;AAKD;;AA7BwD;;AAgC3D,eAAepB,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\ninterface State {\n fadeAnim: Animated.Value;\n overlayStyle: StyleProp<ViewStyle>;\n}\n\nclass Overlay extends React.Component<OverlayProps, State> {\n state = {\n fadeAnim: new Animated.Value(0),\n overlayStyle: styles.emptyOverlay,\n };\n\n UNSAFE_componentWillReceiveProps(newProps: OverlayProps) {\n if (newProps.visible) {\n this.setState({ overlayStyle: styles.fullOverlay });\n }\n return Animated.timing(this.state.fadeAnim, {\n toValue: newProps.visible ? 1 : 0,\n duration: DEFAULT_ANIMATE_TIME,\n useNativeDriver: false,\n }).start(this.onAnimatedEnd.bind(this));\n }\n\n onAnimatedEnd() {\n if (!this.props.visible) {\n this.setState({ overlayStyle: styles.emptyOverlay });\n }\n }\n\n render() {\n return (\n <Animated.View style={[this.state.overlayStyle, { opacity: this.state.fadeAnim }]}>\n {this.props.children}\n </Animated.View>\n );\n }\n}\n\nexport default Overlay;\n"]}
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, StyleSheet, TouchableOpacity, BackHandler } from 'react-native';
2
+ import { View, TouchableOpacity, BackHandler, StyleSheet } from 'react-native';
3
3
  import Overlay from './Overlay';
4
4
  import Sheet from './Sheet';
5
5
 
6
- class ShareSheet extends React.Component {
7
- componentDidMount() {
8
- this.backButtonHandler = this.backButtonHandler.bind(this);
9
- BackHandler.addEventListener('hardwareBackPress', this.backButtonHandler);
10
- }
11
-
12
- componentWillUnmount() {
13
- BackHandler.removeEventListener('hardwareBackPress', this.backButtonHandler);
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","StyleSheet","TouchableOpacity","BackHandler","Overlay","Sheet","ShareSheet","Component","componentDidMount","backButtonHandler","bind","addEventListener","componentWillUnmount","removeEventListener","props","visible","onCancel","render","style","overlayStyle","styles","actionSheetContainer","button","buttonContainer","children","create","backgroundColor","flex","justifyContent","paddingBottom","paddingTop","overflow"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,IAAT,EAAeC,UAAf,EAA2BC,gBAA3B,EAA6CC,WAA7C,QAAgE,cAAhE;AAGA,OAAOC,OAAP,MAAoB,WAApB;AACA,OAAOC,KAAP,MAAkB,SAAlB;;AAUA,MAAMC,UAAN,SAAyBP,KAAK,CAACQ,SAA/B,CAA0D;AACxDC,EAAAA,iBAAiB,GAAG;AAClB,SAAKC,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBC,IAAvB,CAA4B,IAA5B,CAAzB;AACAP,IAAAA,WAAW,CAACQ,gBAAZ,CAA6B,mBAA7B,EAAkD,KAAKF,iBAAvD;AACD;;AAEDG,EAAAA,oBAAoB,GAAG;AACrBT,IAAAA,WAAW,CAACU,mBAAZ,CAAgC,mBAAhC,EAAqD,KAAKJ,iBAA1D;AACD;;AAEDA,EAAAA,iBAAiB,GAAY;AAC3B,QAAI,KAAKK,KAAL,CAAWC,OAAf,EAAwB;AACtB,WAAKD,KAAL,CAAWE,QAAX;AACA,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAEDC,EAAAA,MAAM,GAAG;AACP,UAAM;AAAEC,MAAAA,KAAK,GAAG,EAAV;AAAcC,MAAAA,YAAY,GAAG,EAA7B;AAAiC,SAAGL;AAApC,QAA8C,KAAKA,KAAzD;AAEA,wBACE,oBAAC,OAAD,EAAaA,KAAb,eACE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE,CAACM,MAAM,CAACC,oBAAR,EAA8BF,YAA9B;AAAb,oBACE,oBAAC,gBAAD;AAAkB,MAAA,KAAK,EAAEC,MAAM,CAACE,MAAhC;AAAwC,MAAA,OAAO,EAAE,KAAKR,KAAL,CAAWE;AAA5D,MADF,eAEE,oBAAC,KAAD;AAAO,MAAA,OAAO,EAAE,KAAKF,KAAL,CAAWC;AAA3B,oBACE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE,CAACK,MAAM,CAACG,eAAR,EAAyBL,KAAzB;AAAb,OAA+C,KAAKJ,KAAL,CAAWU,QAA1D,CADF,CAFF,CADF,CADF;AAUD;;AA/BuD;;AAkC1D,eAAelB,UAAf;AAEA,MAAMc,MAAM,GAAGnB,UAAU,CAACwB,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","sourcesContent":["import * as React from 'react';\nimport { View, StyleSheet, TouchableOpacity, BackHandler } from 'react-native';\nimport type { ViewStyle, StyleProp } from 'react-native';\n\nimport Overlay from './Overlay';\nimport Sheet from './Sheet';\n\nexport interface ShareSheetProps {\n visible: boolean;\n onCancel: () => void;\n children: React.ReactChildren;\n style?: StyleProp<ViewStyle>;\n overlayStyle?: StyleProp<ViewStyle>;\n}\n\nclass ShareSheet extends React.Component<ShareSheetProps> {\n componentDidMount() {\n this.backButtonHandler = this.backButtonHandler.bind(this);\n BackHandler.addEventListener('hardwareBackPress', this.backButtonHandler);\n }\n\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.backButtonHandler);\n }\n\n backButtonHandler(): boolean {\n if (this.props.visible) {\n this.props.onCancel();\n return true;\n }\n return false;\n }\n\n render() {\n const { style = {}, overlayStyle = {}, ...props } = this.props;\n\n return (\n <Overlay {...props}>\n <View style={[styles.actionSheetContainer, overlayStyle]}>\n <TouchableOpacity style={styles.button} onPress={this.props.onCancel} />\n <Sheet visible={this.props.visible}>\n <View style={[styles.buttonContainer, style]}>{this.props.children}</View>\n </Sheet>\n </View>\n </Overlay>\n );\n }\n}\n\nexport default ShareSheet;\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"]}
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
- class Sheet extends React.Component {
9
- constructor(...args) {
10
- super(...args);
11
-
12
- _defineProperty(this, "state", {
13
- bottom: new Animated.Value(DEFAULT_BOTTOM)
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
- render() {
26
- return /*#__PURE__*/React.createElement(Animated.View, {
27
- style: {
28
- bottom: this.state.bottom
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","Component","bottom","Value","UNSAFE_componentWillReceiveProps","newProps","timing","state","toValue","visible","duration","useNativeDriver","start","render","props","children"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT,QAAyB,cAAzB;AAEA,MAAMC,cAAc,GAAG,CAAC,GAAxB;AACA,MAAMC,oBAAoB,GAAG,GAA7B;;AAUA,MAAMC,KAAN,SAAoBJ,KAAK,CAACK,SAA1B,CAAuD;AAAA;AAAA;;AAAA,mCAC7C;AACNC,MAAAA,MAAM,EAAE,IAAIL,QAAQ,CAACM,KAAb,CAAmBL,cAAnB;AADF,KAD6C;AAAA;;AAKrDM,EAAAA,gCAAgC,CAACC,QAAD,EAAuB;AACrD,WAAOR,QAAQ,CAACS,MAAT,CAAgB,KAAKC,KAAL,CAAWL,MAA3B,EAAmC;AACxCM,MAAAA,OAAO,EAAEH,QAAQ,CAACI,OAAT,GAAmB,CAAnB,GAAuBX,cADQ;AAExCY,MAAAA,QAAQ,EAAEX,oBAF8B;AAGxCY,MAAAA,eAAe,EAAE;AAHuB,KAAnC,EAIJC,KAJI,EAAP;AAKD;;AAEDC,EAAAA,MAAM,GAAG;AACP,wBACE,oBAAC,QAAD,CAAU,IAAV;AAAe,MAAA,KAAK,EAAE;AAAEX,QAAAA,MAAM,EAAE,KAAKK,KAAL,CAAWL;AAArB;AAAtB,OAAsD,KAAKY,KAAL,CAAWC,QAAjE,CADF;AAGD;;AAjBoD;;AAoBvD,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\ninterface State {\n bottom: Animated.Value;\n}\n\nclass Sheet extends React.Component<SheetProps, State> {\n state = {\n bottom: new Animated.Value(DEFAULT_BOTTOM),\n };\n\n UNSAFE_componentWillReceiveProps(newProps: SheetProps) {\n return Animated.timing(this.state.bottom, {\n toValue: newProps.visible ? 0 : DEFAULT_BOTTOM,\n duration: DEFAULT_ANIMATE_TIME,\n useNativeDriver: false,\n }).start();\n }\n\n render() {\n return (\n <Animated.View style={{ bottom: this.state.bottom }}>{this.props.children}</Animated.View>\n );\n }\n}\n\nexport default Sheet;\n"]}
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"]}
@@ -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 ActivityType]?: ActivityItem | null | undefined };\n subject?: { [key in ActivityType]?: string };\n dataTypeIdentifier?: { [key in ActivityType]?: string };\n thumbnailImage?: { [key in ActivityType]?: 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 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
+ {"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: ({ buttonStyle, onPress, iconSrc, textStyle, children }: ButtonProps) => JSX.Element;
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
- interface State {
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 type { ViewStyle, StyleProp } from 'react-native';
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 class ShareSheet extends React.Component<ShareSheetProps> {
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
- interface State {
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: ({ buttonStyle, onPress, iconSrc, textStyle, children }: import("./components/Button").ButtonProps) => JSX.Element;
8
- readonly ShareSheet: typeof ShareSheet;
9
- readonly Overlay: typeof Overlay;
10
- readonly Sheet: typeof 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 ActivityType]?: ActivityItem | null | undefined;
42
+ [key in ActivityTypeItemSource]?: ActivityItem | null | undefined;
43
43
  };
44
44
  subject?: {
45
- [key in ActivityType]?: string;
45
+ [key in ActivityTypeItemSource]?: string;
46
46
  };
47
47
  dataTypeIdentifier?: {
48
- [key in ActivityType]?: string;
48
+ [key in ActivityTypeItemSource]?: string;
49
49
  };
50
50
  thumbnailImage?: {
51
- [key in ActivityType]?: string;
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
@@ -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": "8.0.1",
4
+ "version": "8.1.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/react-native-community/react-native-share.git"
@@ -18,7 +18,13 @@ export interface ButtonProps {
18
18
  children: React.ReactNode;
19
19
  }
20
20
 
21
- const Button = ({ buttonStyle, onPress, iconSrc, textStyle, children }: ButtonProps) => (
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
- interface State {
27
- fadeAnim: Animated.Value;
28
- overlayStyle: StyleProp<ViewStyle>;
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
- class Overlay extends React.Component<OverlayProps, State> {
32
- state = {
33
- fadeAnim: new Animated.Value(0),
34
- overlayStyle: styles.emptyOverlay,
35
- };
30
+ const onAnimatedEnd = React.useCallback(() => {
31
+ if (!visible) {
32
+ setOverlayStyle(styles.emptyOverlay);
33
+ }
34
+ }, [visible]);
36
35
 
37
- UNSAFE_componentWillReceiveProps(newProps: OverlayProps) {
38
- if (newProps.visible) {
39
- this.setState({ overlayStyle: styles.fullOverlay });
36
+ React.useEffect(() => {
37
+ if (visible) {
38
+ setOverlayStyle(styles.fullOverlay);
40
39
  }
41
- return Animated.timing(this.state.fadeAnim, {
42
- toValue: newProps.visible ? 1 : 0,
40
+ return Animated.timing(fadeAnim, {
41
+ toValue: visible ? 1 : 0,
43
42
  duration: DEFAULT_ANIMATE_TIME,
44
43
  useNativeDriver: false,
45
- }).start(this.onAnimatedEnd.bind(this));
46
- }
44
+ }).start(onAnimatedEnd);
45
+ }, [visible, fadeAnim, onAnimatedEnd]);
47
46
 
48
- onAnimatedEnd() {
49
- if (!this.props.visible) {
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 { View, StyleSheet, TouchableOpacity, BackHandler } from 'react-native';
3
- import type { ViewStyle, StyleProp } from 'react-native';
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
- class ShareSheet extends React.Component<ShareSheetProps> {
17
- componentDidMount() {
18
- this.backButtonHandler = this.backButtonHandler.bind(this);
19
- BackHandler.addEventListener('hardwareBackPress', this.backButtonHandler);
20
- }
21
-
22
- componentWillUnmount() {
23
- BackHandler.removeEventListener('hardwareBackPress', this.backButtonHandler);
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
- render() {
35
- const { style = {}, overlayStyle = {}, ...props } = this.props;
36
+ React.useEffect(() => {
37
+ BackHandler.addEventListener('hardwareBackPress', backButtonHandler);
38
+ return () => {
39
+ BackHandler.removeEventListener('hardwareBackPress', backButtonHandler);
40
+ };
41
+ }, [backButtonHandler]);
36
42
 
37
- return (
38
- <Overlay {...props}>
39
- <View style={[styles.actionSheetContainer, overlayStyle]}>
40
- <TouchableOpacity style={styles.button} onPress={this.props.onCancel} />
41
- <Sheet visible={this.props.visible}>
42
- <View style={[styles.buttonContainer, style]}>{this.props.children}</View>
43
- </Sheet>
44
- </View>
45
- </Overlay>
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;
@@ -8,28 +8,18 @@ export interface SheetProps {
8
8
  visible: boolean;
9
9
  }
10
10
 
11
- interface State {
12
- bottom: Animated.Value;
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
- UNSAFE_componentWillReceiveProps(newProps: SheetProps) {
21
- return Animated.timing(this.state.bottom, {
22
- toValue: newProps.visible ? 0 : DEFAULT_BOTTOM,
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
- render() {
29
- return (
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 ActivityType]?: ActivityItem | null | undefined };
46
- subject?: { [key in ActivityType]?: string };
47
- dataTypeIdentifier?: { [key in ActivityType]?: string };
48
- thumbnailImage?: { [key in ActivityType]?: string };
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;