@plusscommunities/pluss-core-app 8.0.29 → 8.0.31

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 (210) hide show
  1. package/dist/module/actions/FollowerActions.js +34 -0
  2. package/dist/module/actions/FollowerActions.js.map +1 -0
  3. package/dist/module/actions/MediaActions.js +29 -0
  4. package/dist/module/actions/MediaActions.js.map +1 -0
  5. package/dist/module/actions/ResidentActions.js +26 -0
  6. package/dist/module/actions/ResidentActions.js.map +1 -0
  7. package/dist/module/actions/UserActions.js +223 -0
  8. package/dist/module/actions/UserActions.js.map +1 -0
  9. package/dist/module/actions/UserSettingsActions.js +14 -0
  10. package/dist/module/actions/UserSettingsActions.js.map +1 -0
  11. package/dist/module/actions/index.js +6 -0
  12. package/dist/module/actions/index.js.map +1 -0
  13. package/dist/module/actions/types.js +17 -0
  14. package/dist/module/actions/types.js.map +1 -0
  15. package/dist/module/apis/analyticsActions.js +20 -0
  16. package/dist/module/apis/analyticsActions.js.map +1 -0
  17. package/dist/module/apis/contactActions.js +27 -0
  18. package/dist/module/apis/contactActions.js.map +1 -0
  19. package/dist/module/apis/eventActions.js +161 -0
  20. package/dist/module/apis/eventActions.js.map +1 -0
  21. package/dist/module/apis/fileActions.js +93 -0
  22. package/dist/module/apis/fileActions.js.map +1 -0
  23. package/dist/module/apis/followerActions.js +38 -0
  24. package/dist/module/apis/followerActions.js.map +1 -0
  25. package/dist/module/apis/index.js +13 -0
  26. package/dist/module/apis/index.js.map +1 -0
  27. package/dist/module/apis/notificationActions.js +60 -0
  28. package/dist/module/apis/notificationActions.js.map +1 -0
  29. package/dist/module/apis/profileActions.js +14 -0
  30. package/dist/module/apis/profileActions.js.map +1 -0
  31. package/dist/module/apis/reactionActions.js +76 -0
  32. package/dist/module/apis/reactionActions.js.map +1 -0
  33. package/dist/module/apis/settingActions.js +22 -0
  34. package/dist/module/apis/settingActions.js.map +1 -0
  35. package/dist/module/apis/stringActions.js +30 -0
  36. package/dist/module/apis/stringActions.js.map +1 -0
  37. package/dist/module/apis/typeActions.js +15 -0
  38. package/dist/module/apis/typeActions.js.map +1 -0
  39. package/dist/module/apis/userActions.js +104 -0
  40. package/dist/module/apis/userActions.js.map +1 -0
  41. package/dist/module/assets/icons/fontawesome/fa-brands-400.ttf +0 -0
  42. package/dist/module/assets/icons/fontawesome/fa-light-300.ttf +0 -0
  43. package/dist/module/assets/icons/fontawesome/fa-regular-400.ttf +0 -0
  44. package/dist/module/assets/icons/fontawesome/fa-solid-900.ttf +0 -0
  45. package/dist/module/assets/icons/fontawesome/fa-thin-100.ttf +0 -0
  46. package/dist/module/assets/icons/fontawesome/fa7-glyphmap.json +4205 -0
  47. package/dist/module/assets/icons/reactions/heart.png +0 -0
  48. package/dist/module/assets/icons/reactions/party.png +0 -0
  49. package/dist/module/assets/icons/reactions/sad.png +0 -0
  50. package/dist/module/assets/icons/reactions/smile.png +0 -0
  51. package/dist/module/colours.js +165 -0
  52. package/dist/module/colours.js.map +1 -0
  53. package/dist/module/components/AddButton.js +43 -0
  54. package/dist/module/components/AddButton.js.map +1 -0
  55. package/dist/module/components/AddToCalendarButton.js +225 -0
  56. package/dist/module/components/AddToCalendarButton.js.map +1 -0
  57. package/dist/module/components/Attachment.js +55 -0
  58. package/dist/module/components/Attachment.js.map +1 -0
  59. package/dist/module/components/AudienceSelectorLauncher.js +64 -0
  60. package/dist/module/components/AudienceSelectorLauncher.js.map +1 -0
  61. package/dist/module/components/AudienceSelectorPage.js +351 -0
  62. package/dist/module/components/AudienceSelectorPage.js.map +1 -0
  63. package/dist/module/components/AutoOffsetImage.js +184 -0
  64. package/dist/module/components/AutoOffsetImage.js.map +1 -0
  65. package/dist/module/components/BackButton.js +58 -0
  66. package/dist/module/components/BackButton.js.map +1 -0
  67. package/dist/module/components/CalendarPopup.js +126 -0
  68. package/dist/module/components/CalendarPopup.js.map +1 -0
  69. package/dist/module/components/CategoryTabs.js +155 -0
  70. package/dist/module/components/CategoryTabs.js.map +1 -0
  71. package/dist/module/components/CommentReply.js +334 -0
  72. package/dist/module/components/CommentReply.js.map +1 -0
  73. package/dist/module/components/CommentSection.js +823 -0
  74. package/dist/module/components/CommentSection.js.map +1 -0
  75. package/dist/module/components/ConfirmPopup.js +109 -0
  76. package/dist/module/components/ConfirmPopup.js.map +1 -0
  77. package/dist/module/components/ConfirmationPopup.js +72 -0
  78. package/dist/module/components/ConfirmationPopup.js.map +1 -0
  79. package/dist/module/components/DocumentUploader.js +253 -0
  80. package/dist/module/components/DocumentUploader.js.map +1 -0
  81. package/dist/module/components/DropDownItem.js +75 -0
  82. package/dist/module/components/DropDownItem.js.map +1 -0
  83. package/dist/module/components/DropDownMenu.js +41 -0
  84. package/dist/module/components/DropDownMenu.js.map +1 -0
  85. package/dist/module/components/EmptyStateMain.js +51 -0
  86. package/dist/module/components/EmptyStateMain.js.map +1 -0
  87. package/dist/module/components/EmptyStateWidget.js +48 -0
  88. package/dist/module/components/EmptyStateWidget.js.map +1 -0
  89. package/dist/module/components/FontScaleButton.js +37 -0
  90. package/dist/module/components/FontScaleButton.js.map +1 -0
  91. package/dist/module/components/FontScalePopup.js +76 -0
  92. package/dist/module/components/FontScalePopup.js.map +1 -0
  93. package/dist/module/components/Forbidden.js +58 -0
  94. package/dist/module/components/Forbidden.js.map +1 -0
  95. package/dist/module/components/FormCard.js +25 -0
  96. package/dist/module/components/FormCard.js.map +1 -0
  97. package/dist/module/components/FormCardSection.js +214 -0
  98. package/dist/module/components/FormCardSection.js.map +1 -0
  99. package/dist/module/components/FormCardSectionOptionLauncher.js +73 -0
  100. package/dist/module/components/FormCardSectionOptionLauncher.js.map +1 -0
  101. package/dist/module/components/FormattedText.js +133 -0
  102. package/dist/module/components/FormattedText.js.map +1 -0
  103. package/dist/module/components/GenericInput.js +151 -0
  104. package/dist/module/components/GenericInput.js.map +1 -0
  105. package/dist/module/components/GenericInputSection.js +173 -0
  106. package/dist/module/components/GenericInputSection.js.map +1 -0
  107. package/dist/module/components/Header.js +459 -0
  108. package/dist/module/components/Header.js.map +1 -0
  109. package/dist/module/components/Icon.js +109 -0
  110. package/dist/module/components/Icon.js.map +1 -0
  111. package/dist/module/components/ImagePopup.js +400 -0
  112. package/dist/module/components/ImagePopup.js.map +1 -0
  113. package/dist/module/components/ImageUploadProgress.js +69 -0
  114. package/dist/module/components/ImageUploadProgress.js.map +1 -0
  115. package/dist/module/components/ImageUploader.js +831 -0
  116. package/dist/module/components/ImageUploader.js.map +1 -0
  117. package/dist/module/components/InlineButton.js +66 -0
  118. package/dist/module/components/InlineButton.js.map +1 -0
  119. package/dist/module/components/Input.js +156 -0
  120. package/dist/module/components/Input.js.map +1 -0
  121. package/dist/module/components/LoadingCircles.js +219 -0
  122. package/dist/module/components/LoadingCircles.js.map +1 -0
  123. package/dist/module/components/LoadingIndicator.js +86 -0
  124. package/dist/module/components/LoadingIndicator.js.map +1 -0
  125. package/dist/module/components/LoadingStateWidget.js +46 -0
  126. package/dist/module/components/LoadingStateWidget.js.map +1 -0
  127. package/dist/module/components/MediaPlayer.js +407 -0
  128. package/dist/module/components/MediaPlayer.js.map +1 -0
  129. package/dist/module/components/MiddlePopup.js +49 -0
  130. package/dist/module/components/MiddlePopup.js.map +1 -0
  131. package/dist/module/components/PDFPopup.js +296 -0
  132. package/dist/module/components/PDFPopup.js.map +1 -0
  133. package/dist/module/components/PlussChat.js +1078 -0
  134. package/dist/module/components/PlussChat.js.map +1 -0
  135. package/dist/module/components/PlussChatMessage.js +299 -0
  136. package/dist/module/components/PlussChatMessage.js.map +1 -0
  137. package/dist/module/components/PlussChatTime.js +59 -0
  138. package/dist/module/components/PlussChatTime.js.map +1 -0
  139. package/dist/module/components/Popup.js +126 -0
  140. package/dist/module/components/Popup.js.map +1 -0
  141. package/dist/module/components/PopupMenu.js +120 -0
  142. package/dist/module/components/PopupMenu.js.map +1 -0
  143. package/dist/module/components/PositionedImage.js +313 -0
  144. package/dist/module/components/PositionedImage.js.map +1 -0
  145. package/dist/module/components/ProfilePic.js +105 -0
  146. package/dist/module/components/ProfilePic.js.map +1 -0
  147. package/dist/module/components/RadioButton.js +78 -0
  148. package/dist/module/components/RadioButton.js.map +1 -0
  149. package/dist/module/components/Reaction.js +117 -0
  150. package/dist/module/components/Reaction.js.map +1 -0
  151. package/dist/module/components/Reactions.js +71 -0
  152. package/dist/module/components/Reactions.js.map +1 -0
  153. package/dist/module/components/SharingTools.js +189 -0
  154. package/dist/module/components/SharingTools.js.map +1 -0
  155. package/dist/module/components/Spinner.js +22 -0
  156. package/dist/module/components/Spinner.js.map +1 -0
  157. package/dist/module/components/StickyFooter.js +34 -0
  158. package/dist/module/components/StickyFooter.js.map +1 -0
  159. package/dist/module/components/Text.js +57 -0
  160. package/dist/module/components/Text.js.map +1 -0
  161. package/dist/module/components/TickIcon.js +24 -0
  162. package/dist/module/components/TickIcon.js.map +1 -0
  163. package/dist/module/components/Toggle.js +66 -0
  164. package/dist/module/components/Toggle.js.map +1 -0
  165. package/dist/module/components/TouchableSearchBar.js +68 -0
  166. package/dist/module/components/TouchableSearchBar.js.map +1 -0
  167. package/dist/module/components/UserListPopup.js +136 -0
  168. package/dist/module/components/UserListPopup.js.map +1 -0
  169. package/dist/module/components/UserListing.js +268 -0
  170. package/dist/module/components/UserListing.js.map +1 -0
  171. package/dist/module/components/VideoPopup.js +113 -0
  172. package/dist/module/components/VideoPopup.js.map +1 -0
  173. package/dist/module/components/WarningPopup.js +85 -0
  174. package/dist/module/components/WarningPopup.js.map +1 -0
  175. package/dist/module/components/expo-image-picker-multiple/ImageBrowser.js +289 -0
  176. package/dist/module/components/expo-image-picker-multiple/ImageBrowser.js.map +1 -0
  177. package/dist/module/components/expo-image-picker-multiple/ImageTile.js +117 -0
  178. package/dist/module/components/expo-image-picker-multiple/ImageTile.js.map +1 -0
  179. package/dist/module/components/index.js +60 -0
  180. package/dist/module/components/index.js.map +1 -0
  181. package/dist/module/components/react-native-expo-image-cropper/ExpoImageManipulator.js +422 -0
  182. package/dist/module/components/react-native-expo-image-cropper/ExpoImageManipulator.js.map +1 -0
  183. package/dist/module/components/react-native-expo-image-cropper/ImageCropOverlay.js +387 -0
  184. package/dist/module/components/react-native-expo-image-cropper/ImageCropOverlay.js.map +1 -0
  185. package/dist/module/config.js +27 -0
  186. package/dist/module/config.js.map +1 -0
  187. package/dist/module/constants.js +18 -0
  188. package/dist/module/constants.js.map +1 -0
  189. package/dist/module/helper.js +424 -0
  190. package/dist/module/helper.js.map +1 -0
  191. package/dist/module/index.js +13 -0
  192. package/dist/module/index.js.map +1 -0
  193. package/dist/module/js/images/detectFaces.js +31 -0
  194. package/dist/module/js/images/detectFaces.js.map +1 -0
  195. package/dist/module/js/images/findLandmarkRange.js +93 -0
  196. package/dist/module/js/images/findLandmarkRange.js.map +1 -0
  197. package/dist/module/js/images/getScaledOffset.js +81 -0
  198. package/dist/module/js/images/getScaledOffset.js.map +1 -0
  199. package/dist/module/js/site/getSiteLevelFromState.js +29 -0
  200. package/dist/module/js/site/getSiteLevelFromState.js.map +1 -0
  201. package/dist/module/js/site/isTVEnabled.js +10 -0
  202. package/dist/module/js/site/isTVEnabled.js.map +1 -0
  203. package/dist/module/session.js +58 -0
  204. package/dist/module/session.js.map +1 -0
  205. package/dist/module/styles.js +67 -0
  206. package/dist/module/styles.js.map +1 -0
  207. package/dist/module/withNavigationFocus.js +30 -0
  208. package/dist/module/withNavigationFocus.js.map +1 -0
  209. package/package.json +1 -1
  210. package/src/components/PDFPopup.js +130 -35
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","Text","_","moment","Dimensions","Modal","TouchableOpacity","StyleSheet","View","Image","ImageViewer","Icon","StatusBarHeight","isVideo","get1400","FontAwesome","SharingTools","VideoPopup","ProfilePic","LoadingIndicator","SCREEN_WIDTH","get","width","SCREEN_HEIGHT","height","MAX_IMAGE_HEIGHT","ImagePopup","constructor","props","_defineProperty","images","map","image","url","original","uri","date","user","caption","setState","isLoadingDimensions","dimensions","Promise","all","resolve","reject","getSize","w","h","err","console","log","index","state","imageDimensions","showFullscreenVideo","length","currentVideoUrl","media","_media$user","_media$user2","dateText","timeText","isNil","imageDate","format","createElement","style","styles","imageInfoContainer","Diameter","profilePic","imageTextContainer","imageTextName","displayName","numberOfLines","iamgeTextDate","captionContainer","captionText","cachedDimensions","aspectRatio","imageWidth","imageHeight","find","source","isVideoMedia","getImageDimensions","imageContainer","resizeMode","videoOverlay","onPress","toggleFullscreenVideo","bind","name","type","iconStyle","videoPlayIcon","hasCaption","hasUserInfo","imageTop","imageBottom","captionTop","Fragment","captionWrapper","top","renderCaption","userInfoWrapper","renderImageFooter","componentDidMount","setupUrls","componentDidUpdate","prevProps","visible","scrollTo","renderClose","menuIconContainer","onClose","activeOpacity","menuIcon","renderVideoPlayerPopup","render","_images$index","isEmpty","animationType","onRequestClose","modal","imagesWithSizes","container","imageViewer","onChange","onSwipeDown","enableSwipeDown","imageUrls","saveToLocalByLongPress","renderImage","backgroundColor","renderBottomContent","create","flex","justifyContent","alignItems","position","left","right","zIndex","bottom","fontSize","padding","textAlign","color","textShadowColor","textShadowOffset","flexDirection","paddingHorizontal","paddingVertical","gap","borderRadius","marginLeft","fontFamily","lineHeight"],"sources":["ImagePopup.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport { Text } from \"@plusscommunities/pluss-core-app/components\";\nimport _ from \"lodash\";\nimport moment from \"moment\";\nimport {\n\tDimensions,\n\tModal,\n\tTouchableOpacity,\n\tStyleSheet,\n\tView,\n\tImage,\n} from \"react-native\";\nimport ImageViewer from \"react-native-image-zoom-viewer\";\nimport { Icon } from \"@rneui/themed\";\nimport { StatusBarHeight, isVideo, get1400 } from \"../helper\";\nimport { FontAwesome } from \"./Icon\";\nimport { SharingTools } from \"./SharingTools\";\nimport { VideoPopup } from \"./VideoPopup\";\nimport { ProfilePic } from \"./ProfilePic\";\nimport { LoadingIndicator } from \"./\";\n\nconst SCREEN_WIDTH = Dimensions.get(\"window\").width;\nconst SCREEN_HEIGHT = Dimensions.get(\"window\").height;\nconst MAX_IMAGE_HEIGHT = SCREEN_HEIGHT * 0.65;\n\nclass ImagePopup extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tindex: 0,\n\t\t\timages: [],\n\t\t\tshowFullscreenVideo: false,\n\t\t\tcurrentVideoUrl: \"\",\n\t\t\timageDimensions: {},\n\t\t\tisLoadingDimensions: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.setupUrls();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tconst { visible, index } = this.props;\n\t\tif (!prevProps.visible && visible) this.setupUrls();\n\t\tif (prevProps.index !== index) this.setState({ index });\n\t}\n\n\tsetupUrls = async () => {\n\t\tif (!this.props.images) return;\n\n\t\tconst images = this.props.images.map((image) => {\n\t\t\tif (typeof image === \"string\") {\n\t\t\t\treturn {\n\t\t\t\t\turl: get1400(image),\n\t\t\t\t\toriginal: image,\n\t\t\t\t\tisVideo: isVideo(image),\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\turl: get1400(image?.uri),\n\t\t\t\toriginal: image?.uri,\n\t\t\t\tisVideo: isVideo(image?.uri),\n\t\t\t\tdate: image?.date,\n\t\t\t\tuser: image?.user,\n\t\t\t\tcaption: image?.caption,\n\t\t\t};\n\t\t});\n\n\t\tthis.setState({ isLoadingDimensions: true });\n\n\t\tconst dimensions = {};\n\t\tawait Promise.all(\n\t\t\timages.map(async (image) => {\n\t\t\t\tif (!image.url) return;\n\t\t\t\ttry {\n\t\t\t\t\tconst { width, height } = await new Promise((resolve, reject) => {\n\t\t\t\t\t\tImage.getSize(\n\t\t\t\t\t\t\timage.url,\n\t\t\t\t\t\t\t(w, h) => resolve({ width: w, height: h }),\n\t\t\t\t\t\t\treject,\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t\tdimensions[image.url] = { width, height };\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconsole.log(\"Failed to get dimensions for\", image.url, err);\n\t\t\t\t\tdimensions[image.url] = {\n\t\t\t\t\t\twidth: SCREEN_WIDTH,\n\t\t\t\t\t\theight: SCREEN_HEIGHT,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\tthis.setState({\n\t\t\timages,\n\t\t\tindex: this.state.index || this.props.index || 0,\n\t\t\timageDimensions: dimensions,\n\t\t\tisLoadingDimensions: false,\n\t\t});\n\t};\n\n\tonChange = (index) => {\n\t\tthis.setState({ index });\n\t};\n\n\tscrollTo(index) {\n\t\tthis.setState({\n\t\t\tindex,\n\t\t});\n\t}\n\n\ttoggleFullscreenVideo = (url) => {\n\t\tif (typeof url !== \"string\") url = \"\";\n\t\tthis.setState({\n\t\t\tshowFullscreenVideo: url.length > 0,\n\t\t\tcurrentVideoUrl: url,\n\t\t});\n\t};\n\n\trenderClose() {\n\t\treturn (\n\t\t\t<TouchableOpacity\n\t\t\t\tstyle={styles.menuIconContainer}\n\t\t\t\tonPress={this.props.onClose}\n\t\t\t\tactiveOpacity={0.6}\n\t\t\t>\n\t\t\t\t<FontAwesome name=\"x\" style={[styles.menuIcon]} />\n\t\t\t</TouchableOpacity>\n\t\t);\n\t}\n\n\trenderImageFooter = (media) => {\n\t\tif (!media.user || !media.date) return null;\n\n\t\tlet dateText, timeText;\n\t\tif (!_.isNil(media.date)) {\n\t\t\tconst imageDate = moment(media.date);\n\t\t\tdateText = imageDate.format(\"MMMM D, YYYY\");\n\t\t\ttimeText = imageDate.format(\"hh:mm A\");\n\t\t}\n\n\t\treturn (\n\t\t\t<View style={styles.imageInfoContainer}>\n\t\t\t\t<ProfilePic Diameter={36} ProfilePic={media?.user?.profilePic} />\n\t\t\t\t<View style={styles.imageTextContainer}>\n\t\t\t\t\t<Text style={styles.imageTextName}>{media?.user?.displayName}</Text>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tnumberOfLines={2}\n\t\t\t\t\t\tstyle={styles.iamgeTextDate}\n\t\t\t\t\t>{`Uploaded ${dateText} • ${timeText}`}</Text>\n\t\t\t\t</View>\n\t\t\t</View>\n\t\t);\n\t};\n\n\trenderCaption = (media) => {\n\t\tif (!media.caption) return null;\n\n\t\treturn (\n\t\t\t<View style={styles.captionContainer}>\n\t\t\t\t<Text numberOfLines={3} style={styles.captionText}>\n\t\t\t\t\t{media.caption}\n\t\t\t\t</Text>\n\t\t\t</View>\n\t\t);\n\t};\n\n\tgetImageDimensions = (media) => {\n\t\tconst cachedDimensions = this.state.imageDimensions[media?.url] || {\n\t\t\twidth: SCREEN_WIDTH,\n\t\t\theight: SCREEN_HEIGHT,\n\t\t};\n\n\t\tconst aspectRatio = cachedDimensions.width / cachedDimensions.height;\n\t\tlet imageWidth = SCREEN_WIDTH;\n\t\tlet imageHeight = imageWidth / aspectRatio;\n\n\t\t// Cap at 70% of screen height\n\t\tif (imageHeight > MAX_IMAGE_HEIGHT) {\n\t\t\timageHeight = MAX_IMAGE_HEIGHT;\n\t\t\timageWidth = imageHeight * aspectRatio;\n\t\t}\n\n\t\treturn { imageWidth, imageHeight };\n\t};\n\n\trenderImage = (props) => {\n\t\tconst media = this.state.images.find(\n\t\t\t(image) => image.url === props.source.uri,\n\t\t);\n\t\tconst isVideoMedia = !_.isNil(media) && media.isVideo;\n\t\tconst { imageWidth, imageHeight } = this.getImageDimensions(media);\n\n\t\treturn (\n\t\t\t<View style={styles.imageContainer}>\n\t\t\t\t<Image\n\t\t\t\t\tsource={{ uri: media?.url }}\n\t\t\t\t\tstyle={{ width: imageWidth, height: imageHeight }}\n\t\t\t\t\tresizeMode=\"contain\"\n\t\t\t\t/>\n\t\t\t\t{isVideoMedia && (\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\tstyles.videoOverlay,\n\t\t\t\t\t\t\t{ width: imageWidth, height: imageHeight },\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\tonPress={this.toggleFullscreenVideo.bind(this, media.original)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tname=\"play\"\n\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\ticonStyle={styles.videoPlayIcon}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t</View>\n\t\t\t\t)}\n\t\t\t</View>\n\t\t);\n\t};\n\n\trenderVideoPlayerPopup() {\n\t\tconst { showFullscreenVideo, currentVideoUrl } = this.state;\n\t\tif (!currentVideoUrl) return;\n\n\t\treturn (\n\t\t\t<VideoPopup\n\t\t\t\turi={currentVideoUrl}\n\t\t\t\tvisible={showFullscreenVideo}\n\t\t\t\tonClose={this.toggleFullscreenVideo}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBottomContent = () => {\n\t\tconst { index, images } = this.state;\n\t\tconst media = images[index];\n\n\t\tif (!media) return null;\n\n\t\tconst hasCaption = !_.isNil(media.caption);\n\t\tconst hasUserInfo = !_.isNil(media.user) || !_.isNil(media.date);\n\n\t\tif (!hasCaption && !hasUserInfo) return null;\n\n\t\t// Calculate where the image ends (for caption positioning)\n\t\tconst { imageHeight } = this.getImageDimensions(media);\n\t\tconst imageTop = (SCREEN_HEIGHT - imageHeight) / 2;\n\t\tconst imageBottom = imageTop + imageHeight;\n\t\tconst captionTop = imageBottom + 16;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{/* Caption positioned below the image */}\n\t\t\t\t{hasCaption && (\n\t\t\t\t\t<View style={[styles.captionWrapper, { top: captionTop }]}>\n\t\t\t\t\t\t{this.renderCaption(media)}\n\t\t\t\t\t</View>\n\t\t\t\t)}\n\n\t\t\t\t{/* User info anchored to bottom of screen */}\n\t\t\t\t{hasUserInfo && (\n\t\t\t\t\t<View style={styles.userInfoWrapper}>\n\t\t\t\t\t\t{this.renderImageFooter(media)}\n\t\t\t\t\t</View>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t};\n\n\trender() {\n\t\tconst { visible, onClose } = this.props;\n\t\tconst { index, images, isLoadingDimensions } = this.state;\n\n\t\tif (_.isEmpty(images)) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (isLoadingDimensions) {\n\t\t\treturn (\n\t\t\t\t<Modal\n\t\t\t\t\tvisible={visible}\n\t\t\t\t\tanimationType=\"slide\"\n\t\t\t\t\tonRequestClose={onClose}\n\t\t\t\t\tstyle={styles.modal}\n\t\t\t\t>\n\t\t\t\t\t<LoadingIndicator visible={true} />\n\t\t\t\t</Modal>\n\t\t\t);\n\t\t}\n\n\t\tconst imagesWithSizes = images.map((image) => {\n\t\t\treturn {\n\t\t\t\t...image,\n\t\t\t\twidth: SCREEN_WIDTH,\n\t\t\t\theight: SCREEN_HEIGHT,\n\t\t\t};\n\t\t});\n\n\t\treturn (\n\t\t\t<Modal\n\t\t\t\tvisible={visible}\n\t\t\t\tanimationType=\"slide\"\n\t\t\t\tonRequestClose={onClose}\n\t\t\t\tstyle={styles.modal}\n\t\t\t>\n\t\t\t\t<View style={styles.container}>\n\t\t\t\t\t{/* Full screen image viewer */}\n\t\t\t\t\t<ImageViewer\n\t\t\t\t\t\tstyle={styles.imageViewer}\n\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\tonChange={this.onChange}\n\t\t\t\t\t\tonSwipeDown={onClose}\n\t\t\t\t\t\tenableSwipeDown\n\t\t\t\t\t\timageUrls={imagesWithSizes}\n\t\t\t\t\t\tsaveToLocalByLongPress={false}\n\t\t\t\t\t\trenderImage={this.renderImage}\n\t\t\t\t\t\tbackgroundColor=\"#000\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Absolutely positioned bottom content */}\n\t\t\t\t\t{this.renderBottomContent()}\n\n\t\t\t\t\t{/* Overlay controls */}\n\t\t\t\t\t{this.renderClose()}\n\t\t\t\t\t<SharingTools uri={images[index]?.original} />\n\t\t\t\t</View>\n\t\t\t\t{this.renderVideoPlayerPopup()}\n\t\t\t</Modal>\n\t\t);\n\t}\n}\n\nconst styles = StyleSheet.create({\n\tmodal: {\n\t\tbackgroundColor: \"#000\",\n\t},\n\tcontainer: {\n\t\tflex: 1,\n\t\tbackgroundColor: \"#000\",\n\t},\n\timageViewer: {\n\t\tflex: 1,\n\t\tbackgroundColor: \"#000\",\n\t},\n\timageContainer: {\n\t\tflex: 1,\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t},\n\tcaptionWrapper: {\n\t\tposition: \"absolute\",\n\t\tleft: 16,\n\t\tright: 16,\n\t\tzIndex: 10,\n\t},\n\tuserInfoWrapper: {\n\t\tposition: \"absolute\",\n\t\tbottom: 40, // Safe area padding\n\t\tleft: 16,\n\t\tright: 16,\n\t\tzIndex: 10,\n\t},\n\tmenuIconContainer: {\n\t\tposition: \"absolute\",\n\t\ttop: StatusBarHeight(0),\n\t\tright: 0,\n\t\twidth: 55,\n\t\theight: 55,\n\t\tzIndex: 3,\n\t},\n\tmenuIcon: {\n\t\tfontSize: 25,\n\t\tpadding: 15,\n\t\twidth: 55,\n\t\ttextAlign: \"center\",\n\t\tcolor: \"#fff\",\n\t\tzIndex: 3,\n\t},\n\tvideoOverlay: {\n\t\tposition: \"absolute\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t},\n\tvideoPlayIcon: {\n\t\tcolor: \"#fff\",\n\t\tfontSize: 30,\n\t\ttextShadowColor: \"rgba(0,0,0,0.3)\",\n\t\ttextShadowOffset: { width: 2, height: 2 },\n\t},\n\timageInfoContainer: {\n\t\tflexDirection: \"row\",\n\t\tpaddingHorizontal: 12,\n\t\tpaddingVertical: 12,\n\t\tgap: 4,\n\t\tborderRadius: 8,\n\t\talignItems: \"center\",\n\t},\n\timageTextContainer: {\n\t\tmarginLeft: 12,\n\t\tflexDirection: \"column\",\n\t\tgap: 4,\n\t\tflex: 1,\n\t\tjustifyContent: \"space-around\",\n\t},\n\timageTextName: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 14,\n\t\tcolor: \"#fff\",\n\t},\n\tiamgeTextDate: {\n\t\tfontFamily: \"sf-regular\",\n\t\tfontSize: 12,\n\t\tcolor: \"rgba(255, 255, 255, 0.8)\",\n\t},\n\tcaptionContainer: {\n\t\tborderRadius: 16,\n\t\tpadding: 0,\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t},\n\tcaptionText: {\n\t\tfontFamily: \"sf-regular\",\n\t\tfontSize: 15,\n\t\tcolor: \"#fff\",\n\t\ttextAlign: \"center\",\n\t\tlineHeight: 20,\n\t},\n});\n\nexport { ImagePopup };\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
+ import React, { Component } from "react";
5
+ import { View, StyleSheet } from "react-native";
6
+ import { Text } from "./Text";
7
+ import { InlineButton } from "./InlineButton";
8
+ import { Spinner } from "./Spinner";
9
+ class ImageUploadProgress extends Component {
10
+ constructor(...args) {
11
+ super(...args);
12
+ _defineProperty(this, "onRetryUpload", (imageUri, uploadUri) => {
13
+ this.props.uploader.retryUpload(imageUri, uploadUri);
14
+ });
15
+ }
16
+ render() {
17
+ const {
18
+ color,
19
+ image,
20
+ style,
21
+ progressTextStyle,
22
+ retryTextStyle
23
+ } = this.props;
24
+ const {
25
+ imageUri,
26
+ uploadUri,
27
+ uploadProgress,
28
+ allowRetry
29
+ } = image;
30
+ return /*#__PURE__*/React.createElement(View, {
31
+ style: [styles.container, style]
32
+ }, /*#__PURE__*/React.createElement(Spinner, {
33
+ style: styles.spinner
34
+ }), /*#__PURE__*/React.createElement(Text, {
35
+ style: [styles.uploadProgressText, progressTextStyle, {
36
+ color
37
+ }]
38
+ }, uploadProgress), allowRetry && /*#__PURE__*/React.createElement(InlineButton, {
39
+ color: color,
40
+ onPress: () => this.onRetryUpload(imageUri, uploadUri),
41
+ touchableStyle: styles.retryButton
42
+ }, /*#__PURE__*/React.createElement(Text, {
43
+ style: [styles.retryText, retryTextStyle]
44
+ }, "Retry")));
45
+ }
46
+ }
47
+ const styles = StyleSheet.create({
48
+ container: {
49
+ alignItems: "center",
50
+ justifyContent: "center"
51
+ },
52
+ spinner: {
53
+ flex: 0
54
+ },
55
+ uploadProgressText: {
56
+ textAlign: "center",
57
+ fontFamily: "sf-semibold",
58
+ fontSize: 12
59
+ },
60
+ retryButton: {
61
+ marginTop: 10
62
+ },
63
+ retryText: {
64
+ fontFamily: "sf-semibold",
65
+ fontSize: 12
66
+ }
67
+ });
68
+ export default ImageUploadProgress;
69
+ //# sourceMappingURL=ImageUploadProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","View","StyleSheet","Text","InlineButton","Spinner","ImageUploadProgress","constructor","args","_defineProperty","imageUri","uploadUri","props","uploader","retryUpload","render","color","image","style","progressTextStyle","retryTextStyle","uploadProgress","allowRetry","createElement","styles","container","spinner","uploadProgressText","onPress","onRetryUpload","touchableStyle","retryButton","retryText","create","alignItems","justifyContent","flex","textAlign","fontFamily","fontSize","marginTop"],"sources":["ImageUploadProgress.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport { Text } from \"./Text\";\nimport { InlineButton } from \"./InlineButton\";\nimport { Spinner } from \"./Spinner\";\n\nclass ImageUploadProgress extends Component {\n\tonRetryUpload = (imageUri, uploadUri) => {\n\t\tthis.props.uploader.retryUpload(imageUri, uploadUri);\n\t};\n\n\trender() {\n\t\tconst { color, image, style, progressTextStyle, retryTextStyle } =\n\t\t\tthis.props;\n\t\tconst { imageUri, uploadUri, uploadProgress, allowRetry } = image;\n\n\t\treturn (\n\t\t\t<View style={[styles.container, style]}>\n\t\t\t\t<Spinner style={styles.spinner} />\n\t\t\t\t<Text style={[styles.uploadProgressText, progressTextStyle, { color }]}>\n\t\t\t\t\t{uploadProgress}\n\t\t\t\t</Text>\n\t\t\t\t{allowRetry && (\n\t\t\t\t\t<InlineButton\n\t\t\t\t\t\tcolor={color}\n\t\t\t\t\t\tonPress={() => this.onRetryUpload(imageUri, uploadUri)}\n\t\t\t\t\t\ttouchableStyle={styles.retryButton}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text style={[styles.retryText, retryTextStyle]}>Retry</Text>\n\t\t\t\t\t</InlineButton>\n\t\t\t\t)}\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nconst styles = StyleSheet.create({\n\tcontainer: {\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t},\n\tspinner: {\n\t\tflex: 0,\n\t},\n\tuploadProgressText: {\n\t\ttextAlign: \"center\",\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 12,\n\t},\n\tretryButton: {\n\t\tmarginTop: 10,\n\t},\n\tretryText: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 12,\n\t},\n});\n\nexport default ImageUploadProgress;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC/C,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,OAAO,QAAQ,WAAW;AAEnC,MAAMC,mBAAmB,SAASN,SAAS,CAAC;EAAAO,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,wBAC3B,CAACC,QAAQ,EAAEC,SAAS,KAAK;MACxC,IAAI,CAACC,KAAK,CAACC,QAAQ,CAACC,WAAW,CAACJ,QAAQ,EAAEC,SAAS,CAAC;IACrD,CAAC;EAAA;EAEDI,MAAMA,CAAA,EAAG;IACR,MAAM;MAAEC,KAAK;MAAEC,KAAK;MAAEC,KAAK;MAAEC,iBAAiB;MAAEC;IAAe,CAAC,GAC/D,IAAI,CAACR,KAAK;IACX,MAAM;MAAEF,QAAQ;MAAEC,SAAS;MAAEU,cAAc;MAAEC;IAAW,CAAC,GAAGL,KAAK;IAEjE,oBACClB,KAAA,CAAAwB,aAAA,CAACtB,IAAI;MAACiB,KAAK,EAAE,CAACM,MAAM,CAACC,SAAS,EAAEP,KAAK;IAAE,gBACtCnB,KAAA,CAAAwB,aAAA,CAAClB,OAAO;MAACa,KAAK,EAAEM,MAAM,CAACE;IAAQ,CAAE,CAAC,eAClC3B,KAAA,CAAAwB,aAAA,CAACpB,IAAI;MAACe,KAAK,EAAE,CAACM,MAAM,CAACG,kBAAkB,EAAER,iBAAiB,EAAE;QAAEH;MAAM,CAAC;IAAE,GACrEK,cACI,CAAC,EACNC,UAAU,iBACVvB,KAAA,CAAAwB,aAAA,CAACnB,YAAY;MACZY,KAAK,EAAEA,KAAM;MACbY,OAAO,EAAEA,CAAA,KAAM,IAAI,CAACC,aAAa,CAACnB,QAAQ,EAAEC,SAAS,CAAE;MACvDmB,cAAc,EAAEN,MAAM,CAACO;IAAY,gBAEnChC,KAAA,CAAAwB,aAAA,CAACpB,IAAI;MAACe,KAAK,EAAE,CAACM,MAAM,CAACQ,SAAS,EAAEZ,cAAc;IAAE,GAAC,OAAW,CAC/C,CAEV,CAAC;EAET;AACD;AAEA,MAAMI,MAAM,GAAGtB,UAAU,CAAC+B,MAAM,CAAC;EAChCR,SAAS,EAAE;IACVS,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EACjB,CAAC;EACDT,OAAO,EAAE;IACRU,IAAI,EAAE;EACP,CAAC;EACDT,kBAAkB,EAAE;IACnBU,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,aAAa;IACzBC,QAAQ,EAAE;EACX,CAAC;EACDR,WAAW,EAAE;IACZS,SAAS,EAAE;EACZ,CAAC;EACDR,SAAS,EAAE;IACVM,UAAU,EAAE,aAAa;IACzBC,QAAQ,EAAE;EACX;AACD,CAAC,CAAC;AAEF,eAAejC,mBAAmB","ignoreList":[]}