react-native-share 8.0.1 → 8.2.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.
Files changed (37) hide show
  1. package/ios/RNShare.m +7 -0
  2. package/ios/RNShareActivityItemSource.m +1 -1
  3. package/ios/RNShareUtils.h +1 -0
  4. package/ios/RNShareUtils.m +11 -0
  5. package/lib/commonjs/components/Button.js.map +1 -1
  6. package/lib/commonjs/components/Overlay.js +24 -39
  7. package/lib/commonjs/components/Overlay.js.map +1 -1
  8. package/lib/commonjs/components/ShareSheet.js +34 -38
  9. package/lib/commonjs/components/ShareSheet.js.map +1 -1
  10. package/lib/commonjs/components/Sheet.js +15 -25
  11. package/lib/commonjs/components/Sheet.js.map +1 -1
  12. package/lib/commonjs/index.js +0 -1
  13. package/lib/commonjs/index.js.map +1 -1
  14. package/lib/commonjs/types.js.map +1 -1
  15. package/lib/module/components/Button.js.map +1 -1
  16. package/lib/module/components/Overlay.js +24 -39
  17. package/lib/module/components/Overlay.js.map +1 -1
  18. package/lib/module/components/ShareSheet.js +32 -36
  19. package/lib/module/components/ShareSheet.js.map +1 -1
  20. package/lib/module/components/Sheet.js +15 -25
  21. package/lib/module/components/Sheet.js.map +1 -1
  22. package/lib/module/index.js +0 -1
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/module/types.js.map +1 -1
  25. package/lib/typescript/components/Button.d.ts +1 -1
  26. package/lib/typescript/components/Overlay.d.ts +1 -19
  27. package/lib/typescript/components/ShareSheet.d.ts +2 -8
  28. package/lib/typescript/components/Sheet.d.ts +1 -11
  29. package/lib/typescript/index.d.ts +5 -4
  30. package/lib/typescript/types.d.ts +5 -4
  31. package/package.json +1 -1
  32. package/src/components/Button.tsx +7 -1
  33. package/src/components/Overlay.tsx +17 -30
  34. package/src/components/ShareSheet.tsx +38 -33
  35. package/src/components/Sheet.tsx +8 -18
  36. package/src/index.tsx +0 -1
  37. package/src/types.ts +6 -4
package/ios/RNShare.m CHANGED
@@ -177,6 +177,8 @@ RCT_EXPORT_METHOD(open:(NSDictionary *)options
177
177
  [items addObject:message];
178
178
  }
179
179
  BOOL saveToFiles = [RCTConvert BOOL:options[@"saveToFiles"]];
180
+ NSString *filename = [RCTConvert NSString:options[@"filename"]];
181
+
180
182
  NSArray *urlsArray = options[@"urls"];
181
183
  for (int i=0; i<urlsArray.count; i++) {
182
184
  NSURL *URL = [RCTConvert NSURL:urlsArray[i]];
@@ -195,6 +197,11 @@ RCT_EXPORT_METHOD(open:(NSDictionary *)options
195
197
  if (filePath) {
196
198
  [items addObject: filePath];
197
199
  }
200
+ } else if (filename.length > 0) {
201
+ NSURL *filePath = [RNShareUtils getPathFromFilename:filename with:data];
202
+ if (filePath) {
203
+ [items addObject: filePath];
204
+ }
198
205
  } else {
199
206
  [items addObject:data];
200
207
  }
@@ -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 {
@@ -3,4 +3,5 @@
3
3
  @interface RNShareUtils : NSObject
4
4
  +(NSString*)getExtensionFromBase64:(NSString*)base64String;
5
5
  +(NSURL*)getPathFromBase64:(NSString*)base64String with:(NSData*)data;
6
+ +(NSURL*)getPathFromFilename:(NSString*)filename with:(NSData*)data;
6
7
  @end
@@ -47,4 +47,15 @@
47
47
  return NULL;
48
48
  }
49
49
 
50
+ /**
51
+ Given a filename string and Data, writes a temp file with the filename.
52
+ */
53
+ +(NSURL*)getPathFromFilename:(NSString*)filename with:(NSData*)data {
54
+ NSString *writePath = [NSTemporaryDirectory() stringByAppendingPathComponent:filename];
55
+ if ([data writeToFile:writePath atomically:YES]) {
56
+ return [NSURL fileURLWithPath:writePath];
57
+ }
58
+ return NULL;
59
+ }
60
+
50
61
  @end
@@ -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"]}
@@ -93,7 +93,6 @@ const RNShare = {
93
93
 
94
94
  if (options.filename && !options.filenames) {
95
95
  options.filenames = [options.filename];
96
- delete options.filename;
97
96
  }
98
97
  }
99
98
 
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["RNShare","Button","ShareSheet","Overlay","Sheet","Social","FACEBOOK","NativeModules","Facebook","FACEBOOK_STORIES","FACEBOOKSTORIES","FacebookStories","PAGESMANAGER","Pagesmanager","TWITTER","Twitter","WHATSAPP","Whatsapp","WHATSAPPBUSINESS","Whatsappbusiness","INSTAGRAM","Instagram","INSTAGRAM_STORIES","INSTAGRAMSTORIES","InstagramStories","GOOGLEPLUS","Googleplus","EMAIL","Email","PINTEREST","Pinterest","LINKEDIN","Linkedin","SMS","Sms","TELEGRAM","Telegram","MESSENGER","Messenger","SNAPCHAT","Snapchat","VIBER","Viber","open","options","Promise","resolve","reject","then","Platform","OS","url","urls","filename","filenames","error","success","message","failOnCancel","dismissedAction","Error","catch","e","shareSingle","social","appId","Boolean","isPackageInstalled","packageName","isInstalled"],"mappings":"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","sourcesContent":["import { NativeModules, Platform } from 'react-native';\n\nimport Overlay from './components/Overlay';\nimport Sheet from './components/Sheet';\nimport Button from './components/Button';\nimport ShareSheet from './components/ShareSheet';\nimport requireAndAskPermissions from './helpers/requireAndAskPermissions';\nimport {\n Social,\n IsPackageInstalledResult,\n ActivityType,\n ShareOpenResult,\n ShareAsset,\n ShareOptions,\n ShareSingleOptions,\n ShareSingleResult,\n} from './types';\n\nconst RNShare = {\n Button,\n ShareSheet,\n Overlay,\n Sheet,\n\n Social: {\n FACEBOOK: NativeModules.RNShare.FACEBOOK || Social.Facebook,\n FACEBOOK_STORIES: NativeModules.RNShare.FACEBOOKSTORIES || Social.FacebookStories,\n PAGESMANAGER: NativeModules.RNShare.PAGESMANAGER || Social.Pagesmanager,\n TWITTER: NativeModules.RNShare.TWITTER || Social.Twitter,\n WHATSAPP: NativeModules.RNShare.WHATSAPP || Social.Whatsapp,\n WHATSAPPBUSINESS: NativeModules.RNShare.WHATSAPPBUSINESS || Social.Whatsappbusiness,\n INSTAGRAM: NativeModules.RNShare.INSTAGRAM || Social.Instagram,\n INSTAGRAM_STORIES: NativeModules.RNShare.INSTAGRAMSTORIES || Social.InstagramStories,\n GOOGLEPLUS: NativeModules.RNShare.GOOGLEPLUS || Social.Googleplus,\n EMAIL: NativeModules.RNShare.EMAIL || Social.Email,\n PINTEREST: NativeModules.RNShare.PINTEREST || Social.Pinterest,\n LINKEDIN: NativeModules.RNShare.LINKEDIN || Social.Linkedin,\n SMS: NativeModules.RNShare.SMS || Social.Sms,\n TELEGRAM: NativeModules.RNShare.TELEGRAM || Social.Telegram,\n MESSENGER: NativeModules.RNShare.MESSENGER || Social.Messenger,\n SNAPCHAT: NativeModules.RNShare.SNAPCHAT || Social.Snapchat,\n VIBER: NativeModules.RNShare.VIBER || Social.Viber,\n },\n\n open(options: ShareOptions): Promise<ShareOpenResult | never> {\n return new Promise((resolve, reject) => {\n requireAndAskPermissions(options)\n .then(() => {\n if (Platform.OS === 'ios' && options.url && !options.urls) {\n // Backward compatibility with { Share } from react-native\n const url = options.url;\n delete options.url;\n\n options.urls = [url];\n\n if (options.filename && !options.filenames) {\n options.filenames = [options.filename];\n delete options.filename;\n }\n }\n\n NativeModules.RNShare.open(\n options,\n (error) => {\n return reject({ error });\n },\n (success, message) => {\n if (success) {\n return resolve({\n success,\n message,\n });\n } else if (options.failOnCancel === false) {\n return resolve({\n dismissedAction: true,\n success,\n message,\n });\n } else {\n reject(new Error('User did not share'));\n }\n },\n );\n })\n .catch((e: unknown) => reject(e));\n });\n },\n\n shareSingle(options: ShareSingleOptions): Promise<ShareSingleResult | never> {\n if (Platform.OS === 'ios' || Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n requireAndAskPermissions(options)\n .then(() => {\n if (options.url) {\n options.urls = [options.url];\n }\n\n if (options.social === RNShare.Social.INSTAGRAM_STORIES && !options.appId) {\n return reject({\n success: false,\n message: 'Instagram Story share requires an appId based on Meta policy.',\n });\n }\n\n NativeModules.RNShare.shareSingle(\n options,\n (error) => {\n return reject({ error });\n },\n (success, message) => {\n return resolve({\n success: Boolean(success),\n message,\n });\n },\n );\n })\n .catch((e: unknown) => reject(e));\n });\n } else {\n throw new Error('Not implemented');\n }\n },\n\n isPackageInstalled(packageName: string): Promise<IsPackageInstalledResult | never> {\n if (Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n NativeModules.RNShare.isPackageInstalled(\n packageName,\n (error) => {\n return reject({ error });\n },\n (isInstalled) => {\n return resolve({\n isInstalled,\n message: 'Package is Installed',\n });\n },\n );\n });\n } else {\n throw new Error('Not implemented');\n }\n },\n} as const;\n\nexport { Overlay, Sheet, Button, ShareSheet, ShareAsset, Social };\nexport type { ShareSingleOptions, ShareOptions, ActivityType, IsPackageInstalledResult };\nexport type { OverlayProps } from './components/Overlay';\nexport type { SheetProps } from './components/Sheet';\nexport type { ButtonProps } from './components/Button';\nexport type { ShareSheetProps } from './components/ShareSheet';\nexport default RNShare;\n"]}
1
+ {"version":3,"sources":["index.tsx"],"names":["RNShare","Button","ShareSheet","Overlay","Sheet","Social","FACEBOOK","NativeModules","Facebook","FACEBOOK_STORIES","FACEBOOKSTORIES","FacebookStories","PAGESMANAGER","Pagesmanager","TWITTER","Twitter","WHATSAPP","Whatsapp","WHATSAPPBUSINESS","Whatsappbusiness","INSTAGRAM","Instagram","INSTAGRAM_STORIES","INSTAGRAMSTORIES","InstagramStories","GOOGLEPLUS","Googleplus","EMAIL","Email","PINTEREST","Pinterest","LINKEDIN","Linkedin","SMS","Sms","TELEGRAM","Telegram","MESSENGER","Messenger","SNAPCHAT","Snapchat","VIBER","Viber","open","options","Promise","resolve","reject","then","Platform","OS","url","urls","filename","filenames","error","success","message","failOnCancel","dismissedAction","Error","catch","e","shareSingle","social","appId","Boolean","isPackageInstalled","packageName","isInstalled"],"mappings":"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","sourcesContent":["import { NativeModules, Platform } from 'react-native';\n\nimport Overlay from './components/Overlay';\nimport Sheet from './components/Sheet';\nimport Button from './components/Button';\nimport ShareSheet from './components/ShareSheet';\nimport requireAndAskPermissions from './helpers/requireAndAskPermissions';\nimport {\n Social,\n IsPackageInstalledResult,\n ActivityType,\n ShareOpenResult,\n ShareAsset,\n ShareOptions,\n ShareSingleOptions,\n ShareSingleResult,\n} from './types';\n\nconst RNShare = {\n Button,\n ShareSheet,\n Overlay,\n Sheet,\n\n Social: {\n FACEBOOK: NativeModules.RNShare.FACEBOOK || Social.Facebook,\n FACEBOOK_STORIES: NativeModules.RNShare.FACEBOOKSTORIES || Social.FacebookStories,\n PAGESMANAGER: NativeModules.RNShare.PAGESMANAGER || Social.Pagesmanager,\n TWITTER: NativeModules.RNShare.TWITTER || Social.Twitter,\n WHATSAPP: NativeModules.RNShare.WHATSAPP || Social.Whatsapp,\n WHATSAPPBUSINESS: NativeModules.RNShare.WHATSAPPBUSINESS || Social.Whatsappbusiness,\n INSTAGRAM: NativeModules.RNShare.INSTAGRAM || Social.Instagram,\n INSTAGRAM_STORIES: NativeModules.RNShare.INSTAGRAMSTORIES || Social.InstagramStories,\n GOOGLEPLUS: NativeModules.RNShare.GOOGLEPLUS || Social.Googleplus,\n EMAIL: NativeModules.RNShare.EMAIL || Social.Email,\n PINTEREST: NativeModules.RNShare.PINTEREST || Social.Pinterest,\n LINKEDIN: NativeModules.RNShare.LINKEDIN || Social.Linkedin,\n SMS: NativeModules.RNShare.SMS || Social.Sms,\n TELEGRAM: NativeModules.RNShare.TELEGRAM || Social.Telegram,\n MESSENGER: NativeModules.RNShare.MESSENGER || Social.Messenger,\n SNAPCHAT: NativeModules.RNShare.SNAPCHAT || Social.Snapchat,\n VIBER: NativeModules.RNShare.VIBER || Social.Viber,\n },\n\n open(options: ShareOptions): Promise<ShareOpenResult | never> {\n return new Promise((resolve, reject) => {\n requireAndAskPermissions(options)\n .then(() => {\n if (Platform.OS === 'ios' && options.url && !options.urls) {\n // Backward compatibility with { Share } from react-native\n const url = options.url;\n delete options.url;\n\n options.urls = [url];\n\n if (options.filename && !options.filenames) {\n options.filenames = [options.filename];\n }\n }\n\n NativeModules.RNShare.open(\n options,\n (error) => {\n return reject({ error });\n },\n (success, message) => {\n if (success) {\n return resolve({\n success,\n message,\n });\n } else if (options.failOnCancel === false) {\n return resolve({\n dismissedAction: true,\n success,\n message,\n });\n } else {\n reject(new Error('User did not share'));\n }\n },\n );\n })\n .catch((e: unknown) => reject(e));\n });\n },\n\n shareSingle(options: ShareSingleOptions): Promise<ShareSingleResult | never> {\n if (Platform.OS === 'ios' || Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n requireAndAskPermissions(options)\n .then(() => {\n if (options.url) {\n options.urls = [options.url];\n }\n\n if (options.social === RNShare.Social.INSTAGRAM_STORIES && !options.appId) {\n return reject({\n success: false,\n message: 'Instagram Story share requires an appId based on Meta policy.',\n });\n }\n\n NativeModules.RNShare.shareSingle(\n options,\n (error) => {\n return reject({ error });\n },\n (success, message) => {\n return resolve({\n success: Boolean(success),\n message,\n });\n },\n );\n })\n .catch((e: unknown) => reject(e));\n });\n } else {\n throw new Error('Not implemented');\n }\n },\n\n isPackageInstalled(packageName: string): Promise<IsPackageInstalledResult | never> {\n if (Platform.OS === 'android') {\n return new Promise((resolve, reject) => {\n NativeModules.RNShare.isPackageInstalled(\n packageName,\n (error) => {\n return reject({ error });\n },\n (isInstalled) => {\n return resolve({\n isInstalled,\n message: 'Package is Installed',\n });\n },\n );\n });\n } else {\n throw new Error('Not implemented');\n }\n },\n} as const;\n\nexport { Overlay, Sheet, Button, ShareSheet, ShareAsset, Social };\nexport type { ShareSingleOptions, ShareOptions, ActivityType, IsPackageInstalledResult };\nexport type { OverlayProps } from './components/Overlay';\nexport type { SheetProps } from './components/Sheet';\nexport type { ButtonProps } from './components/Button';\nexport type { ShareSheetProps } from './components/ShareSheet';\nexport default RNShare;\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"]}