@plusscommunities/pluss-core-app 8.0.22-beta.1 → 8.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module/components/PDFPopup.js +4 -0
- package/dist/module/components/PDFPopup.js.map +1 -1
- package/dist/module/components/PlussChat.js +3 -0
- package/dist/module/components/PlussChat.js.map +1 -1
- package/dist/module/components/SharingTools.js.map +1 -1
- package/dist/module/components/react-native-expo-image-cropper/ExpoImageManipulator.js.map +1 -1
- package/dist/module/js/images/detectFaces.js.map +1 -1
- package/package.json +1 -1
- package/src/components/PDFPopup.js +201 -197
- package/src/components/PlussChat.js +3 -0
- package/src/components/SharingTools.js +174 -174
- package/src/components/react-native-expo-image-cropper/ExpoImageManipulator.js +425 -425
- package/src/js/images/detectFaces.js +24 -24
|
@@ -126,6 +126,10 @@ class PDFPopup extends Component {
|
|
|
126
126
|
source: {
|
|
127
127
|
uri: this.getUrl()
|
|
128
128
|
},
|
|
129
|
+
javaScriptEnabled: true,
|
|
130
|
+
domStorageEnabled: true,
|
|
131
|
+
originWhitelist: ["*"],
|
|
132
|
+
mixedContentMode: "always",
|
|
129
133
|
renderError: e => {
|
|
130
134
|
console.log("errored");
|
|
131
135
|
console.log(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","View","TouchableOpacity","Modal","Dimensions","Alert","Text","Icon","WebView","File","Paths","Sharing","FontAwesome","Spinner","StatusBarHeight","getFileName","SCREEN_HEIGHT","get","height","PDFPopup","constructor","args","_defineProperty","loaded","file","downloadFileAsync","props","source","document","idempotent","shareAsync","uri","UTI","error","console","log","alert","text","onLoadStarted","setState","onLoadEnded","onChangeIndex","index","getUrl","linkPrefix","closePopup","onClose","renderFooter","pdfCount","createElement","style","styles","footerContent","onPress","bind","activeOpacity","type","name","iconStyle","chevron","footerText","selectedIndex","render","visible","transparent","animationType","onRequestClose","flex","backgroundColor","paddingTop","headerContent","menuIcon","titleContainer","title","download","state","renderError","e","onLoadStart","onLoadEnd","container","position","innerContainer","paddingLeft","paddingRight","fontSize","padding","width","textAlign","color","zIndex","flexDirection","alignItems","fontFamily","justifyContent"],"sources":["PDFPopup.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport { View, TouchableOpacity, Modal, Dimensions, Alert } from \"react-native\";\nimport { Text } from \"./Text\";\nimport { Icon } from \"@rneui/themed\";\nimport { WebView } from \"react-native-webview\";\nimport { File, Paths } from \"expo-file-system\";\nimport * as Sharing from \"expo-sharing\";\nimport { FontAwesome } from \"./Icon\";\nimport { Spinner } from \"./Spinner\";\nimport { StatusBarHeight, getFileName } from \"../helper\";\n\nconst SCREEN_HEIGHT = Dimensions.get(\"window\").height;\n\nclass PDFPopup extends Component {\n state = {\n loaded: false,\n };\n\n onLoadStarted() {\n this.setState({\n loaded: false,\n });\n }\n\n onLoadEnded() {\n this.setState({\n loaded: true,\n });\n }\n\n onChangeIndex(index) {\n this.props.onChangeIndex(index);\n }\n\n getUrl() {\n const linkPrefix =\n \"http://drive.google.com/viewerng/viewer?embedded=true&url=\";\n return `${linkPrefix}${this.props.source}`;\n }\n\n download = async () => {\n try {\n const file = await File.downloadFileAsync(\n this.props.source,\n new File(Paths.document, getFileName(this.props.source)),\n { idempotent: true },\n );\n await Sharing.shareAsync(file.uri, {\n UTI: \"public.item\",\n });\n } catch (error) {\n console.log(\"PDFPopup download error:\", error);\n Alert.alert(\n \"Download Failed\",\n \"Unable to download PDF. Please try again.\",\n [{ text: \"OK\" }],\n );\n }\n };\n\n closePopup() {\n this.props.onClose();\n }\n\n renderFooter() {\n if (this.props.pdfCount && this.props.pdfCount === 1) {\n return null;\n }\n return (\n <View style={styles.footerContent}>\n <TouchableOpacity\n onPress={this.onChangeIndex.bind(this, -1)}\n activeOpacity={0.6}\n >\n <Icon\n type=\"font-awesome\"\n name=\"angle-left\"\n iconStyle={[styles.chevron]}\n />\n </TouchableOpacity>\n <Text style={styles.footerText}>\n {this.props.selectedIndex + 1} / {this.props.pdfCount}\n </Text>\n <TouchableOpacity\n onPress={this.onChangeIndex.bind(this, 1)}\n activeOpacity={0.6}\n >\n <Icon\n type=\"font-awesome\"\n name=\"angle-right\"\n iconStyle={[styles.chevron]}\n />\n </TouchableOpacity>\n </View>\n );\n }\n\n render() {\n if (!this.props.source) {\n return null;\n }\n return (\n <Modal\n visible={this.props.visible}\n transparent\n animationType=\"slide\"\n onRequestClose={this.closePopup.bind(this)}\n >\n <View\n style={{\n flex: 1,\n backgroundColor: \"#000\",\n paddingTop: StatusBarHeight(0),\n }}\n >\n <View style={styles.headerContent}>\n <TouchableOpacity\n onPress={this.closePopup.bind(this)}\n activeOpacity={0.6}\n >\n <FontAwesome name=\"x\" style={[styles.menuIcon]} />\n </TouchableOpacity>\n <View style={styles.titleContainer}>\n <Text style={styles.title}>{this.props.title}</Text>\n </View>\n <TouchableOpacity onPress={this.download} activeOpacity={0.6}>\n <Icon\n type=\"font-awesome\"\n name=\"cloud-download\"\n iconStyle={[styles.menuIcon]}\n />\n </TouchableOpacity>\n </View>\n <View style={{ flex: 1, backgroundColor: \"#fff\" }}>\n {this.state.loaded ? null : (\n <Spinner\n style={{\n height: SCREEN_HEIGHT - StatusBarHeight(145),\n flex: 0,\n }}\n />\n )}\n <WebView\n source={{\n uri: this.getUrl(),\n }}\n renderError={(e) => {\n console.log(\"errored\");\n console.log(e);\n }}\n style={[\n {\n flex: 1,\n backgroundColor: \"#fff\",\n },\n ]}\n onLoadStart={this.onLoadStarted.bind(this)}\n onLoadEnd={this.onLoadEnded.bind(this)}\n />\n </View>\n {this.renderFooter()}\n </View>\n </Modal>\n );\n }\n}\n\nconst styles = {\n container: {\n flex: 1,\n position: \"relative\",\n backgroundColor: \"#000\",\n },\n innerContainer: {\n flex: 1,\n paddingLeft: 15,\n paddingRight: 15,\n },\n menuIcon: {\n fontSize: 25,\n padding: 15,\n width: 55,\n textAlign: \"center\",\n color: \"#fff\",\n zIndex: 3,\n },\n headerContent: {\n flexDirection: \"row\",\n alignItems: \"center\",\n height: 70,\n },\n titleContainer: {\n flex: 1,\n },\n title: {\n color: \"#fff\",\n fontFamily: \"sf-semibold\",\n fontSize: 16,\n textAlign: \"center\",\n },\n footerContent: {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: 70,\n //alignSelf: 'flex-end'\n },\n chevron: {\n fontSize: 25,\n padding: 15,\n width: 55,\n textAlign: \"center\",\n color: \"#fff\",\n zIndex: 3,\n },\n footerText: {\n fontFamily: \"sf-regular\",\n fontSize: 14,\n color: \"#fff\",\n width: 150,\n textAlign: \"center\",\n },\n};\n\nexport { PDFPopup };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Component","View","TouchableOpacity","Modal","Dimensions","Alert","Text","Icon","WebView","File","Paths","Sharing","FontAwesome","Spinner","StatusBarHeight","getFileName","SCREEN_HEIGHT","get","height","PDFPopup","constructor","args","_defineProperty","loaded","file","downloadFileAsync","props","source","document","idempotent","shareAsync","uri","UTI","error","console","log","alert","text","onLoadStarted","setState","onLoadEnded","onChangeIndex","index","getUrl","linkPrefix","closePopup","onClose","renderFooter","pdfCount","createElement","style","styles","footerContent","onPress","bind","activeOpacity","type","name","iconStyle","chevron","footerText","selectedIndex","render","visible","transparent","animationType","onRequestClose","flex","backgroundColor","paddingTop","headerContent","menuIcon","titleContainer","title","download","state","javaScriptEnabled","domStorageEnabled","originWhitelist","mixedContentMode","renderError","e","onLoadStart","onLoadEnd","container","position","innerContainer","paddingLeft","paddingRight","fontSize","padding","width","textAlign","color","zIndex","flexDirection","alignItems","fontFamily","justifyContent"],"sources":["PDFPopup.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport { View, TouchableOpacity, Modal, Dimensions, Alert } from \"react-native\";\nimport { Text } from \"./Text\";\nimport { Icon } from \"@rneui/themed\";\nimport { WebView } from \"react-native-webview\";\nimport { File, Paths } from \"expo-file-system\";\nimport * as Sharing from \"expo-sharing\";\nimport { FontAwesome } from \"./Icon\";\nimport { Spinner } from \"./Spinner\";\nimport { StatusBarHeight, getFileName } from \"../helper\";\n\nconst SCREEN_HEIGHT = Dimensions.get(\"window\").height;\n\nclass PDFPopup extends Component {\n\tstate = {\n\t\tloaded: false,\n\t};\n\n\tonLoadStarted() {\n\t\tthis.setState({\n\t\t\tloaded: false,\n\t\t});\n\t}\n\n\tonLoadEnded() {\n\t\tthis.setState({\n\t\t\tloaded: true,\n\t\t});\n\t}\n\n\tonChangeIndex(index) {\n\t\tthis.props.onChangeIndex(index);\n\t}\n\n\tgetUrl() {\n\t\tconst linkPrefix =\n\t\t\t\"http://drive.google.com/viewerng/viewer?embedded=true&url=\";\n\t\treturn `${linkPrefix}${this.props.source}`;\n\t}\n\n\tdownload = async () => {\n\t\ttry {\n\t\t\tconst file = await File.downloadFileAsync(\n\t\t\t\tthis.props.source,\n\t\t\t\tnew File(Paths.document, getFileName(this.props.source)),\n\t\t\t\t{ idempotent: true },\n\t\t\t);\n\t\t\tawait Sharing.shareAsync(file.uri, {\n\t\t\t\tUTI: \"public.item\",\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.log(\"PDFPopup download error:\", error);\n\t\t\tAlert.alert(\n\t\t\t\t\"Download Failed\",\n\t\t\t\t\"Unable to download PDF. Please try again.\",\n\t\t\t\t[{ text: \"OK\" }],\n\t\t\t);\n\t\t}\n\t};\n\n\tclosePopup() {\n\t\tthis.props.onClose();\n\t}\n\n\trenderFooter() {\n\t\tif (this.props.pdfCount && this.props.pdfCount === 1) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<View style={styles.footerContent}>\n\t\t\t\t<TouchableOpacity\n\t\t\t\t\tonPress={this.onChangeIndex.bind(this, -1)}\n\t\t\t\t\tactiveOpacity={0.6}\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\tname=\"angle-left\"\n\t\t\t\t\t\ticonStyle={[styles.chevron]}\n\t\t\t\t\t/>\n\t\t\t\t</TouchableOpacity>\n\t\t\t\t<Text style={styles.footerText}>\n\t\t\t\t\t{this.props.selectedIndex + 1} / {this.props.pdfCount}\n\t\t\t\t</Text>\n\t\t\t\t<TouchableOpacity\n\t\t\t\t\tonPress={this.onChangeIndex.bind(this, 1)}\n\t\t\t\t\tactiveOpacity={0.6}\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\tname=\"angle-right\"\n\t\t\t\t\t\ticonStyle={[styles.chevron]}\n\t\t\t\t\t/>\n\t\t\t\t</TouchableOpacity>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tif (!this.props.source) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<Modal\n\t\t\t\tvisible={this.props.visible}\n\t\t\t\ttransparent\n\t\t\t\tanimationType=\"slide\"\n\t\t\t\tonRequestClose={this.closePopup.bind(this)}\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\tbackgroundColor: \"#000\",\n\t\t\t\t\t\tpaddingTop: StatusBarHeight(0),\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<View style={styles.headerContent}>\n\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\tonPress={this.closePopup.bind(this)}\n\t\t\t\t\t\t\tactiveOpacity={0.6}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FontAwesome name=\"x\" style={[styles.menuIcon]} />\n\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t<View style={styles.titleContainer}>\n\t\t\t\t\t\t\t<Text style={styles.title}>{this.props.title}</Text>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t\t<TouchableOpacity onPress={this.download} activeOpacity={0.6}>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\tname=\"cloud-download\"\n\t\t\t\t\t\t\t\ticonStyle={[styles.menuIcon]}\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\t<View style={{ flex: 1, backgroundColor: \"#fff\" }}>\n\t\t\t\t\t\t{this.state.loaded ? null : (\n\t\t\t\t\t\t\t<Spinner\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\theight: SCREEN_HEIGHT - StatusBarHeight(145),\n\t\t\t\t\t\t\t\t\tflex: 0,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<WebView\n\t\t\t\t\t\t\tsource={{\n\t\t\t\t\t\t\t\turi: this.getUrl(),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tjavaScriptEnabled\n\t\t\t\t\t\t\tdomStorageEnabled\n\t\t\t\t\t\t\toriginWhitelist={[\"*\"]}\n\t\t\t\t\t\t\tmixedContentMode=\"always\"\n\t\t\t\t\t\t\trenderError={(e) => {\n\t\t\t\t\t\t\t\tconsole.log(\"errored\");\n\t\t\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\t\t\t\tbackgroundColor: \"#fff\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\tonLoadStart={this.onLoadStarted.bind(this)}\n\t\t\t\t\t\t\tonLoadEnd={this.onLoadEnded.bind(this)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t\t{this.renderFooter()}\n\t\t\t\t</View>\n\t\t\t</Modal>\n\t\t);\n\t}\n}\n\nconst styles = {\n\tcontainer: {\n\t\tflex: 1,\n\t\tposition: \"relative\",\n\t\tbackgroundColor: \"#000\",\n\t},\n\tinnerContainer: {\n\t\tflex: 1,\n\t\tpaddingLeft: 15,\n\t\tpaddingRight: 15,\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\theaderContent: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\theight: 70,\n\t},\n\ttitleContainer: {\n\t\tflex: 1,\n\t},\n\ttitle: {\n\t\tcolor: \"#fff\",\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 16,\n\t\ttextAlign: \"center\",\n\t},\n\tfooterContent: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\theight: 70,\n\t\t//alignSelf: 'flex-end'\n\t},\n\tchevron: {\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\tfooterText: {\n\t\tfontFamily: \"sf-regular\",\n\t\tfontSize: 14,\n\t\tcolor: \"#fff\",\n\t\twidth: 150,\n\t\ttextAlign: \"center\",\n\t},\n};\n\nexport { PDFPopup };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","View","Image","ImageBackground","TouchableOpacity","KeyboardAvoidingView","Platform","ScrollView","Alert","TextInput","GiftedChat","Bubble","MessageText","Send","InputToolbar","connect","_","moment","Icon","getBottomSpace","Spinner","ProfilePic","PlussChatTime","PDFPopup","Attachment","PlussChatMessage","Text","ConfirmPopup","TEXT_DARK","LINEGREY","TEXT_DARKEST","getMainBrandingColourFromState","getLightBrandingColourFromState","BG_GREY","TEXT_BLUEGREY","getEnabledTabsFromState","get1400","getThumb300","imageExists","isVideo","getImageSource","getFileName","Config","Services","ImageUploader","ImageUploadProgress","ImagePopup","VideoPopup","IMAGE_SIZE_SMALL","IMAGE_SIZE_LARGE","IMAGES_PER_ROW","IMAGE_MARGIN","IMAGE_PREVIEW_AREA_HEIGHT","IMAGE_PREVIEW_SIZE","PlussChat","constructor","props","_defineProperty","event","navigation","navigate","attachment","Type","place","imagesToUpload","isEmpty","state","upload","hasImagesAttached","every","i","uploading","thumbNailExists","checkThumb","setInterval","Promise","all","map","image","resolve","newImage","push","url","allowRetry","thumbNailUrl","thumbnailsExist","clearInterval","setState","a","selectedPDF","keyboardOpen","uploadUri","imageUri","uploadProgress","progress","img","uri","percentage","replace","waitForThumbnails","images","selected","imagePopupSource","imagePopupIndex","indexOf","imagePopupOpen","message","replyingTo","onDeleteMessage","user","_id","uid","showDeleteMessageConfirm","messageToDelete","error","console","log","filter","showFullscreenVideo","length","currentVideoUrl","isSingleTab","tabCount","MIN_COMPOSER_HEIGHT","select","ios","android","currentUser","name","displayName","avatar","isUndefined","profilePic","env","tinyChatDefault","messages","composerHeight","UNSAFE_componentWillMount","updateMessages","UNSAFE_componentWillReceiveProps","nextProps","isEqual","onSend","showUploadMenu","imageUploader","closeGallery","sendMessages","hasImagesReady","text","renderBubble","bubbleProps","wrapperStyle","currentMessage","paddingTop","paddingBottom","minWidth","attachments","paddingHorizontal","createElement","_extends","renderMessageImage","isCustomViewBottom","left","backgroundColor","borderRadius","right","colourBrandingLight","containerToNextStyle","borderBottomLeftRadius","borderBottomRightRadius","containerToPreviousStyle","borderTopLeftRadius","borderTopRightRadius","renderMessage","key","RowId","colourBrandingMain","onPressReply","onReply","onPressDelete","onDelete","renderMessageText","messageTextProps","deleted","textStyle","fontFamily","fontSize","color","marginTop","marginBottom","marginLeft","marginRight","linkStyle","renderTime","renderDay","dayProps","renderCustomView","position","containerWidth","style","styles","imagesContainer","width","paddingVertical","thumb","onPress","toggleFullscreenVideo","bind","messageImageSmall","messageImageLarge","source","imagePlayContainer","type","iconStyle","imageControlIcon","onPressImage","onOpenAttachment","title","onPressEvent","eventContainer","eventImage","eventImageMargin","Thumbnail","eventInfo","numberOfLines","eventTitle","eventInfoAlign","Title","eventDate","utc","StartTime","local","format","onPressAttachment","renderSend","buttonTopOffset","showSendButton","top","flexDirection","alignItems","sendContainer","height","send","alwaysShowSend","containerStyle","renderAccessory","hasAttachment","horizontal","uploadImagesContainer","uploader","progressTextStyle","isVideoUrl","accessoryImageContainer","accessoryImage","imageStyle","accessoryImageBorder","previewItemRemoveButton","onRemoveImage","hitSlop","bottom","previewItemRemoveContainer","previewItemRemoveIcon","renderInputToolbar","inputContainer","renderComposer","accessoryStyle","accessory","renderFooter","renderLoading","justifyContent","alignContent","size","renderAvatar","Diameter","_this$state$replyingT","_this$state$replyingT2","replyingRemoveButton","replyingRemoveContainer","replyingRemoveIcon","input","flex","maxFontSizeMultiplier","placeholder","multiline","value","onChangeText","onTextChanged","inputText","lineHeight","minHeight","maxHeight","onFocus","onFocusInput","onBlur","onBlurInput","placeholderTextColor","renderChat","minInputToolbarHeight","isKeyboardInternallyHandled","keyboardShouldPersistTaps","renderAvatarOnTop","minComposerHeight","bottomOffset","renderImageUploader","ref","onUploadStarted","onUploadProgress","onUploadSuccess","onUploadFailed","onLibrarySelected","quality","allowsEditing","fileName","popupTitle","userId","multiple","allowVideo","renderImagePopup","visible","index","onClose","renderVideoPlayerPopup","renderPDF","onCloseAttachment","pdfCount","renderDeleteConfirmPopup","onConfirm","onConfirmDeleteMessage","onCancel","onCancelDeleteMessage","yesText","noText","render","behavior","chatContainer","paddingLeft","paddingRight","resizeMode","textAlign","alignSelf","margin","composerContainer","composerInputWrapper","borderBottomWidth","borderBottomColor","borderWidth","borderColor","borderTopWidth","borderTopColor","settingDropDownOpen","flexWrap","overflow","textShadowColor","textShadowOffset","mapStateToProps"],"sources":["PlussChat.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport {\n\tView,\n\tImage,\n\tImageBackground,\n\tTouchableOpacity,\n\tKeyboardAvoidingView,\n\tPlatform,\n\tScrollView,\n\tAlert,\n\tTextInput,\n} from \"react-native\";\nimport {\n\tGiftedChat,\n\tBubble,\n\tMessageText,\n\tSend,\n\tInputToolbar,\n} from \"react-native-gifted-chat\";\nimport { connect } from \"react-redux\";\nimport _ from \"lodash\";\nimport moment from \"moment\";\nimport { Icon } from \"@rneui/themed\";\nimport { getBottomSpace } from \"react-native-iphone-x-helper\";\nimport { Spinner } from \"./Spinner\";\nimport { ProfilePic } from \"./ProfilePic\";\nimport PlussChatTime from \"./PlussChatTime\";\nimport { PDFPopup } from \"./PDFPopup\";\nimport { Attachment } from \"./Attachment\";\nimport PlussChatMessage from \"./PlussChatMessage\";\nimport { Text } from \".\";\nimport { ConfirmPopup } from \"./ConfirmPopup\";\nimport {\n\tTEXT_DARK,\n\tLINEGREY,\n\tTEXT_DARKEST,\n\tgetMainBrandingColourFromState,\n\tgetLightBrandingColourFromState,\n\tBG_GREY,\n\tTEXT_BLUEGREY,\n} from \"../colours\";\nimport {\n\tgetEnabledTabsFromState,\n\tget1400,\n\tgetThumb300,\n\timageExists,\n\tisVideo,\n\tgetImageSource,\n\tgetFileName,\n} from \"../helper\";\nimport Config, { Services } from \"../config\";\nimport ImageUploader from \"./ImageUploader\";\nimport ImageUploadProgress from \"./ImageUploadProgress\";\nimport { ImagePopup } from \"./ImagePopup\";\nimport { VideoPopup } from \"./VideoPopup\";\n\nconst IMAGE_SIZE_SMALL = 55;\nconst IMAGE_SIZE_LARGE = 110;\nconst IMAGES_PER_ROW = 4;\nconst IMAGE_MARGIN = 2;\nconst IMAGE_PREVIEW_AREA_HEIGHT = 105;\nconst IMAGE_PREVIEW_SIZE = IMAGE_PREVIEW_AREA_HEIGHT - 25;\n\nclass PlussChat extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tconst isSingleTab = this.props.tabCount === 1 && getBottomSpace() > 0;\n\t\tthis.MIN_COMPOSER_HEIGHT = Platform.select({\n\t\t\tios: isSingleTab ? 42 : 33,\n\t\t\tandroid: 41,\n\t\t});\n\n\t\tthis.state = {\n\t\t\tcurrentUser: {\n\t\t\t\t_id: this.props.user.uid,\n\t\t\t\tname: this.props.user.displayName,\n\t\t\t\tavatar:\n\t\t\t\t\t!_.isUndefined(this.props.user.profilePic) &&\n\t\t\t\t\t!_.isEmpty(this.props.user.profilePic)\n\t\t\t\t\t\t? this.props.user.profilePic\n\t\t\t\t\t\t: Config.env.tinyChatDefault,\n\t\t\t},\n\n\t\t\tmessages: [],\n\t\t\timagePopupSource: [],\n\t\t\timagePopupIndex: 0,\n\t\t\timagePopupOpen: false,\n\t\t\timagesToUpload: [],\n\t\t\tshowFullscreenVideo: false,\n\t\t\tcurrentVideoUrl: \"\",\n\t\t\tshowDeleteMessageConfirm: false,\n\t\t\tmessageToDelete: null,\n\t\t\tcomposerHeight: this.MIN_COMPOSER_HEIGHT,\n\t\t};\n\t\tthis.checkThumb = null;\n\t}\n\n\tUNSAFE_componentWillMount() {\n\t\tthis.updateMessages(this.props);\n\t}\n\n\tUNSAFE_componentWillReceiveProps(nextProps) {\n\t\t// Only update if messages actually changed\n\t\tif (nextProps.messages !== this.props.messages) {\n\t\t\tthis.updateMessages(nextProps);\n\t\t}\n\t}\n\n\tupdateMessages(props) {\n\t\t// Only update if messages actually changed\n\t\tif (\n\t\t\t!_.isUndefined(props.messages) &&\n\t\t\t!_.isEqual(props.messages, this.state.messages)\n\t\t) {\n\t\t\tthis.setState({ messages: props.messages });\n\t\t}\n\t}\n\n\t/***\n\t *\n\t * Messaging functionality\n\t */\n\tonSend(messages = []) {\n\t\t// if (this.chatKey) {\n\t\t// this.sendMessage(messages[0]);\n\t\t// }\n\t}\n\n\tonPressEvent = (event) => {\n\t\tServices.navigation.navigate(\"eventDetail\", { event });\n\t};\n\tonPressAttachment = (attachment) => {\n\t\tswitch (attachment.Type) {\n\t\t\tcase \"Event\":\n\t\t\t\tServices.navigation.navigate(\"eventDetail\", { event: attachment });\n\t\t\t\tbreak;\n\t\t\tcase \"Place\":\n\t\t\t\tServices.navigation.navigate(\"placeDetail\", { place: attachment });\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t};\n\n\thasImagesAttached = (imagesToUpload = null) => {\n\t\treturn !_.isEmpty(imagesToUpload || this.state.imagesToUpload);\n\t};\n\n\thasImagesReady = (imagesToUpload = null) => {\n\t\tconst upload = imagesToUpload || this.state.imagesToUpload;\n\t\treturn (\n\t\t\tthis.hasImagesAttached(upload) &&\n\t\t\tupload.every((i) => !i.uploading && i.thumbNailExists)\n\t\t);\n\t};\n\n\twaitForThumbnails = () => {\n\t\tif (this.checkThumb) return;\n\n\t\tthis.checkThumb = setInterval(async () => {\n\t\t\tconst imagesToUpload = [];\n\t\t\tawait Promise.all(\n\t\t\t\tthis.state.imagesToUpload.map((image) => {\n\t\t\t\t\treturn new Promise(async (resolve) => {\n\t\t\t\t\t\tconst newImage = { ...image };\n\t\t\t\t\t\timagesToUpload.push(newImage);\n\t\t\t\t\t\tif (newImage.url && !newImage.thumbNailExists) {\n\t\t\t\t\t\t\tnewImage.uploading = false;\n\t\t\t\t\t\t\tnewImage.allowRetry = false;\n\t\t\t\t\t\t\tnewImage.thumbNailExists = await imageExists(\n\t\t\t\t\t\t\t\tnewImage.thumbNailUrl,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tresolve(newImage.thumbNailExists);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst thumbnailsExist = imagesToUpload.every(\n\t\t\t\t(image) => !image.url || image.thumbNailExists,\n\t\t\t);\n\t\t\tif (thumbnailsExist) {\n\t\t\t\tclearInterval(this.checkThumb);\n\t\t\t\tthis.checkThumb = null;\n\t\t\t\tthis.setState({ imagesToUpload });\n\t\t\t}\n\t\t}, 2000);\n\t};\n\n\tonOpenAttachment = (a) => {\n\t\tthis.setState({\n\t\t\tselectedPDF: a,\n\t\t});\n\t};\n\n\tonCloseAttachment = () => {\n\t\tthis.setState({\n\t\t\tselectedPDF: null,\n\t\t});\n\t};\n\n\tshowUploadMenu() {\n\t\tthis.imageUploader.showUploadMenu();\n\t}\n\n\tonFocusInput = () => {\n\t\tthis.setState({\n\t\t\tkeyboardOpen: true,\n\t\t});\n\t\tif (this.props.keyboardOpen) {\n\t\t\tthis.props.keyboardOpen();\n\t\t}\n\t};\n\n\tonBlurInput = () => {\n\t\tthis.setState({\n\t\t\tkeyboardOpen: false,\n\t\t});\n\t};\n\n\tonUploadStarted = (uploadUri, imageUri) => {\n\t\tconst imagesToUpload = [\n\t\t\t...this.state.imagesToUpload,\n\t\t\t{\n\t\t\t\tuploading: true,\n\t\t\t\tuploadProgress: \"0%\",\n\t\t\t\tuploadUri,\n\t\t\t\timageUri,\n\t\t\t\tallowRetry: true,\n\t\t\t},\n\t\t];\n\t\tthis.setState({ imagesToUpload });\n\t};\n\n\tonUploadProgress = (progress) => {\n\t\tconst imagesToUpload = [...this.state.imagesToUpload];\n\t\timagesToUpload.map((img) => {\n\t\t\tif (img.uploadUri === progress.uri) {\n\t\t\t\timg.uploadProgress = progress.percentage;\n\t\t\t\timg.uploading = true;\n\t\t\t\timg.allowRetry = true;\n\t\t\t}\n\t\t});\n\t\tthis.setState({ imagesToUpload });\n\t};\n\n\tonUploadSuccess = async (uri, uploadUri) => {\n\t\tconst imagesToUpload = [...this.state.imagesToUpload];\n\t\timagesToUpload.map((img) => {\n\t\t\tif (img.uploadUri === uploadUri && img.uploading) {\n\t\t\t\timg.url = uri.replace(\"/general/\", \"/general1400/\");\n\t\t\t\timg.thumbNailExists = false;\n\t\t\t\timg.thumbNailUrl = getThumb300(img.url);\n\t\t\t\timg.allowRetry = true;\n\t\t\t}\n\t\t});\n\t\tthis.setState({ imagesToUpload }, () => this.waitForThumbnails());\n\t};\n\n\tonUploadFailed = (uploadUri) => {\n\t\tconst imagesToUpload = [...this.state.imagesToUpload];\n\t\timagesToUpload.map((img) => {\n\t\t\tif (img.uploadUri === uploadUri) {\n\t\t\t\timg.uploading = true; // Requried for retry\n\t\t\t\timg.uploadProgress = \"\";\n\t\t\t\timg.allowRetry = true;\n\t\t\t}\n\t\t});\n\t\tthis.setState({ imagesToUpload });\n\t};\n\n\tonLibrarySelected = (uri) => {\n\t\tconst imagesToUpload = [\n\t\t\t...this.state.imagesToUpload,\n\t\t\t{\n\t\t\t\tuploading: false,\n\t\t\t\tallowRetry: false,\n\t\t\t\turl: get1400(uri),\n\t\t\t\tthumbNailExists: true,\n\t\t\t\tthumbNailUrl: getThumb300(uri),\n\t\t\t},\n\t\t];\n\t\tthis.setState({ imagesToUpload });\n\t};\n\n\tonPressImage = (images, selected) => {\n\t\tthis.setState({\n\t\t\timagePopupSource: images,\n\t\t\timagePopupIndex: images.indexOf(selected),\n\t\t\timagePopupOpen: true,\n\t\t});\n\t};\n\n\tonReply = (message) => {\n\t\tthis.setState({\n\t\t\treplyingTo: message,\n\t\t});\n\t};\n\n\tonDelete = (message) => {\n\t\t// Only proceed if delete handler is provided\n\t\tif (!this.props.onDeleteMessage) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only allow deletion of own messages\n\t\tif (message.user._id !== this.props.user.uid) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState({\n\t\t\tshowDeleteMessageConfirm: true,\n\t\t\tmessageToDelete: message,\n\t\t});\n\t};\n\n\tonCancelDeleteMessage = () => {\n\t\tthis.setState({\n\t\t\tshowDeleteMessageConfirm: false,\n\t\t\tmessageToDelete: null,\n\t\t});\n\t};\n\n\tonConfirmDeleteMessage = async () => {\n\t\tconst { messageToDelete } = this.state;\n\t\tif (!messageToDelete) return;\n\n\t\tthis.setState({\n\t\t\tshowDeleteMessageConfirm: false,\n\t\t});\n\n\t\ttry {\n\t\t\t// Call the parent's delete handler if provided\n\t\t\tif (this.props.onDeleteMessage) {\n\t\t\t\tawait this.props.onDeleteMessage(messageToDelete);\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\tmessageToDelete: null,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\t// Handle error gracefully if parent handler fails\n\t\t\tconsole.log(\"onConfirmDeleteMessage error\", error);\n\t\t\t// Error is already handled by parent component\n\t\t\tthis.setState({ messageToDelete: null });\n\t\t}\n\t};\n\n\tcloseGallery() {\n\t\tthis.setState({\n\t\t\timagePopupSource: [],\n\t\t\timagePopupIndex: 0,\n\t\t\timagePopupOpen: false,\n\t\t});\n\t}\n\n\tonRemoveImage = (url) => {\n\t\tconst imagesToUpload = this.state.imagesToUpload.filter(\n\t\t\t(image) => image.url !== url,\n\t\t);\n\t\tthis.setState({ imagesToUpload });\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\tsendMessages(messages) {\n\t\tif (this.hasImagesAttached()) {\n\t\t\t// Don't allow send if attached images aren't ready\n\t\t\tif (!this.hasImagesReady()) return;\n\t\t\tmessages[0].image = this.state.imagesToUpload.map((image) => image.url);\n\t\t}\n\t\tif (_.isEmpty(messages[0].text)) {\n\t\t\tmessages[0].text = \"\";\n\t\t}\n\t\tif (!messages[0].text && !messages[0].image) return;\n\n\t\tif (this.state.replyingTo) {\n\t\t\tmessages[0].replyingTo = this.state.replyingTo;\n\t\t}\n\n\t\tthis.props.onSend(messages);\n\t\tthis.setState({ imagesToUpload: [], replyingTo: null });\n\t}\n\n\t/**\n\t *\n\t * Render Functions\n\t */\n\trenderBubble(bubbleProps) {\n\t\tconst wrapperStyle = {};\n\t\tif (\n\t\t\t!_.isEmpty(bubbleProps.currentMessage.text) &&\n\t\t\t!_.isEmpty(bubbleProps.currentMessage.image)\n\t\t) {\n\t\t\twrapperStyle.paddingTop = 8;\n\t\t\twrapperStyle.paddingBottom = 16;\n\t\t\twrapperStyle.minWidth = 142; // 110 image width + 16 padding either side\n\t\t}\n\t\tif (!_.isEmpty(bubbleProps.currentMessage.attachments)) {\n\t\t\twrapperStyle.paddingTop = 8;\n\t\t\twrapperStyle.paddingBottom = 16;\n\t\t\twrapperStyle.paddingHorizontal = 16;\n\t\t}\n\t\treturn (\n\t\t\t<Bubble\n\t\t\t\t{...bubbleProps}\n\t\t\t\trenderMessageImage={() => null}\n\t\t\t\tisCustomViewBottom={true}\n\t\t\t\twrapperStyle={{\n\t\t\t\t\tleft: {\n\t\t\t\t\t\tbackgroundColor: LINEGREY,\n\t\t\t\t\t\tborderRadius: 25,\n\t\t\t\t\t\t...wrapperStyle,\n\t\t\t\t\t},\n\t\t\t\t\tright: {\n\t\t\t\t\t\tbackgroundColor: this.props.colourBrandingLight,\n\t\t\t\t\t\tborderRadius: 25,\n\t\t\t\t\t\t...wrapperStyle,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tcontainerToNextStyle={{\n\t\t\t\t\tleft: {\n\t\t\t\t\t\tborderBottomLeftRadius: 5,\n\t\t\t\t\t},\n\t\t\t\t\tright: {\n\t\t\t\t\t\tborderBottomRightRadius: 5,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tcontainerToPreviousStyle={{\n\t\t\t\t\tleft: {\n\t\t\t\t\t\tborderTopLeftRadius: 5,\n\t\t\t\t\t},\n\t\t\t\t\tright: {\n\t\t\t\t\t\tborderTopRightRadius: 5,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}\n\trenderMessage(props) {\n\t\treturn (\n\t\t\t<PlussChatMessage\n\t\t\t\tkey={props.RowId}\n\t\t\t\tcolourBrandingMain={this.props.colourBrandingMain}\n\t\t\t\tonPressReply={() => {\n\t\t\t\t\tthis.onReply(props.currentMessage);\n\t\t\t\t}}\n\t\t\t\tonPressDelete={\n\t\t\t\t\tthis.props.onDeleteMessage\n\t\t\t\t\t\t? () => {\n\t\t\t\t\t\t\t\tthis.onDelete(props.currentMessage);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: null\n\t\t\t\t}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n\trenderMessageText(messageTextProps) {\n\t\t// If message is deleted, show placeholder text\n\t\tconst props = messageTextProps.currentMessage.deleted\n\t\t\t? {\n\t\t\t\t\t...messageTextProps,\n\t\t\t\t\tcurrentMessage: {\n\t\t\t\t\t\t...messageTextProps.currentMessage,\n\t\t\t\t\t\ttext: \"[Message deleted]\",\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t: messageTextProps;\n\n\t\treturn (\n\t\t\t<MessageText\n\t\t\t\t{...props}\n\t\t\t\ttextStyle={{\n\t\t\t\t\tleft: {\n\t\t\t\t\t\tfontFamily: \"sf-regular\",\n\t\t\t\t\t\tfontSize: 16,\n\t\t\t\t\t\tcolor: TEXT_DARKEST,\n\t\t\t\t\t\tmarginTop: 10,\n\t\t\t\t\t\tmarginBottom: 10,\n\t\t\t\t\t\tmarginLeft: 15,\n\t\t\t\t\t\tmarginRight: 15,\n\t\t\t\t\t},\n\t\t\t\t\tright: {\n\t\t\t\t\t\tfontFamily: \"sf-regular\",\n\t\t\t\t\t\tfontSize: 16,\n\t\t\t\t\t\tcolor: this.props.colourBrandingMain,\n\t\t\t\t\t\tmarginTop: 10,\n\t\t\t\t\t\tmarginBottom: 10,\n\t\t\t\t\t\tmarginLeft: 15,\n\t\t\t\t\t\tmarginRight: 15,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tlinkStyle={{\n\t\t\t\t\tleft: {\n\t\t\t\t\t\tcolor: TEXT_DARKEST,\n\t\t\t\t\t},\n\t\t\t\t\tright: {\n\t\t\t\t\t\tcolor: this.props.colourBrandingMain,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}\n\trenderTime() {\n\t\treturn null;\n\t}\n\trenderDay(dayProps) {\n\t\treturn (\n\t\t\t<PlussChatTime\n\t\t\t\t{...dayProps}\n\t\t\t\ttextStyle={{\n\t\t\t\t\tfontFamily: \"sf-semibold\",\n\t\t\t\t\tcolor: TEXT_DARK,\n\t\t\t\t\tfontSize: 12,\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}\n\trenderCustomView({ currentMessage, position }) {\n\t\t// Don't show images or attachments for deleted messages\n\t\tif (currentMessage.deleted) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (currentMessage.image) {\n\t\t\tconst images =\n\t\t\t\ttypeof currentMessage.image === \"string\"\n\t\t\t\t\t? [currentMessage.image]\n\t\t\t\t\t: currentMessage.image;\n\t\t\tconst containerWidth = (() => {\n\t\t\t\tif (images.length === 0) return 0;\n\t\t\t\tif (images.length === 1) return IMAGE_SIZE_LARGE;\n\t\t\t\tif (images.length <= IMAGES_PER_ROW)\n\t\t\t\t\treturn (IMAGE_SIZE_SMALL + IMAGE_MARGIN) * images.length;\n\t\t\t\treturn (IMAGE_SIZE_SMALL + IMAGE_MARGIN) * IMAGES_PER_ROW;\n\t\t\t})();\n\t\t\treturn (\n\t\t\t\t<View\n\t\t\t\t\tstyle={[\n\t\t\t\t\t\tstyles.imagesContainer,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth: containerWidth,\n\t\t\t\t\t\t\tpaddingVertical: currentMessage.text ? 0 : 20,\n\t\t\t\t\t\t},\n\t\t\t\t\t]}\n\t\t\t\t>\n\t\t\t\t\t{images.map((img) => {\n\t\t\t\t\t\tconst thumb = getThumb300(img);\n\t\t\t\t\t\tif (isVideo(img)) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\t\tkey={thumb}\n\t\t\t\t\t\t\t\t\tonPress={this.toggleFullscreenVideo.bind(this, img)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ImageBackground\n\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\timages.length > 1\n\t\t\t\t\t\t\t\t\t\t\t\t? styles.messageImageSmall\n\t\t\t\t\t\t\t\t\t\t\t\t: styles.messageImageLarge\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsource={{ uri: thumb }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<View style={styles.imagePlayContainer}>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"play\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\t\t\t\ticonStyle={styles.imageControlIcon}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t</ImageBackground>\n\t\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\tkey={thumb}\n\t\t\t\t\t\t\t\tonPress={() => this.onPressImage(images, img)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\tsource={{ uri: thumb }}\n\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\timages.length > 1\n\t\t\t\t\t\t\t\t\t\t\t? styles.messageImageSmall\n\t\t\t\t\t\t\t\t\t\t\t: styles.messageImageLarge\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\t\tif (!_.isEmpty(currentMessage.attachments)) {\n\t\t\treturn (\n\t\t\t\t<View>\n\t\t\t\t\t{currentMessage.attachments.map((url, i) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Attachment\n\t\t\t\t\t\t\t\tonPress={() => {\n\t\t\t\t\t\t\t\t\tthis.onOpenAttachment(url);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\ttitle={getFileName(url)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\t\tif (currentMessage.event) {\n\t\t\treturn (\n\t\t\t\t<TouchableOpacity\n\t\t\t\t\tonPress={this.onPressEvent.bind(this, currentMessage.event)}\n\t\t\t\t>\n\t\t\t\t\t<View style={styles.eventContainer[position]}>\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tstyle={[styles.eventImage, styles.eventImageMargin[position]]}\n\t\t\t\t\t\t\tsource={{ uri: currentMessage.event.Thumbnail }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View style={styles.eventInfo}>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tnumberOfLines={3}\n\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\tstyles.eventTitle,\n\t\t\t\t\t\t\t\t\tstyles.eventInfoAlign[position],\n\t\t\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{currentMessage.event.Title}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\tstyles.eventDate,\n\t\t\t\t\t\t\t\t\tstyles.eventInfoAlign[position],\n\t\t\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{moment\n\t\t\t\t\t\t\t\t\t.utc(currentMessage.event.StartTime)\n\t\t\t\t\t\t\t\t\t.local()\n\t\t\t\t\t\t\t\t\t.format(\"ddd D MMM\")}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</TouchableOpacity>\n\t\t\t);\n\t\t}\n\t\tif (currentMessage.attachment) {\n\t\t\treturn (\n\t\t\t\t<TouchableOpacity\n\t\t\t\t\tonPress={this.onPressAttachment.bind(this, currentMessage.attachment)}\n\t\t\t\t>\n\t\t\t\t\t<View style={styles.eventContainer[position]}>\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tstyle={[styles.eventImage, styles.eventImageMargin[position]]}\n\t\t\t\t\t\t\tsource={{ uri: currentMessage.attachment.Thumbnail }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View style={styles.eventInfo}>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tnumberOfLines={3}\n\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\tstyles.eventTitle,\n\t\t\t\t\t\t\t\t\tstyles.eventInfoAlign[position],\n\t\t\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{currentMessage.attachment.Title}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t{currentMessage.attachment.StartTime && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\tstyles.eventDate,\n\t\t\t\t\t\t\t\t\t\tstyles.eventInfoAlign[position],\n\t\t\t\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{moment\n\t\t\t\t\t\t\t\t\t\t.utc(currentMessage.attachment.StartTime)\n\t\t\t\t\t\t\t\t\t\t.local()\n\t\t\t\t\t\t\t\t\t\t.format(\"ddd D MMM\")}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</TouchableOpacity>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\n\trenderSend(props) {\n\t\tconst buttonTopOffset = this.state.replyingTo ? 46 : 4;\n\t\tconst showSendButton =\n\t\t\t!_.isEmpty(props.text) || this.hasImagesReady(props.imagesToUpload);\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={{\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\ttop: buttonTopOffset,\n\t\t\t\t\tright: 8,\n\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{/* Image upload button - always visible */}\n\t\t\t\t<TouchableOpacity\n\t\t\t\t\tonPress={this.showUploadMenu.bind(this)}\n\t\t\t\t\tstyle={[\n\t\t\t\t\t\tstyles.sendContainer,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tright:\n\t\t\t\t\t\t\t\t_.isEmpty(props.text) &&\n\t\t\t\t\t\t\t\t!this.hasImagesReady(props.imagesToUpload)\n\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t: this.MIN_COMPOSER_HEIGHT,\n\n\t\t\t\t\t\t\twidth: this.MIN_COMPOSER_HEIGHT,\n\t\t\t\t\t\t\theight: this.MIN_COMPOSER_HEIGHT,\n\t\t\t\t\t\t},\n\t\t\t\t\t]}\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname={\"picture-o\"}\n\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\ticonStyle={[styles.send, { width: this.MIN_COMPOSER_HEIGHT }]}\n\t\t\t\t\t/>\n\t\t\t\t</TouchableOpacity>\n\n\t\t\t\t{/* Send button - only visible when there's text or images */}\n\t\t\t\t{showSendButton && (\n\t\t\t\t\t<Send\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t\talwaysShowSend={true}\n\t\t\t\t\t\tonSend={props.onSend}\n\t\t\t\t\t\ttext={props.text || \" \"}\n\t\t\t\t\t\tcontainerStyle={[\n\t\t\t\t\t\t\tstyles.sendContainer,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\twidth: this.MIN_COMPOSER_HEIGHT,\n\t\t\t\t\t\t\t\theight: this.MIN_COMPOSER_HEIGHT,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tname={\"paper-plane\"}\n\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\ticonStyle={[styles.send, { width: this.MIN_COMPOSER_HEIGHT }]}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Send>\n\t\t\t\t)}\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderAccessory(props) {\n\t\tconst hasAttachment = this.hasImagesAttached(props.imagesToUpload);\n\t\tif (!hasAttachment) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<ScrollView horizontal style={styles.uploadImagesContainer}>\n\t\t\t\t{props.imagesToUpload.map((image) => {\n\t\t\t\t\tif (image.uploading) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ImageUploadProgress\n\t\t\t\t\t\t\t\tkey={image.uploadUri}\n\t\t\t\t\t\t\t\tuploader={this.imageUploader}\n\t\t\t\t\t\t\t\timage={image}\n\t\t\t\t\t\t\t\tcolor={this.props.colourBrandingMain}\n\t\t\t\t\t\t\t\tstyle={{ width: IMAGE_PREVIEW_SIZE, marginRight: 10 }}\n\t\t\t\t\t\t\t\tprogressTextStyle={{ fontSize: 10 }}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tconst isVideoUrl = isVideo(image.url);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<View key={image.url} style={styles.accessoryImageContainer}>\n\t\t\t\t\t\t\t<ImageBackground\n\t\t\t\t\t\t\t\tstyle={styles.accessoryImage}\n\t\t\t\t\t\t\t\timageStyle={styles.accessoryImageBorder}\n\t\t\t\t\t\t\t\tsource={getImageSource(\n\t\t\t\t\t\t\t\t\timage.thumbNailExists ? image.thumbNailUrl : image.url,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{isVideoUrl && (\n\t\t\t\t\t\t\t\t\t<View style={styles.imagePlayContainer}>\n\t\t\t\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\t\t\t\tonPress={this.toggleFullscreenVideo.bind(this, image.url)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"play\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\t\t\t\ticonStyle={styles.imageControlIcon}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</ImageBackground>\n\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\tstyle={styles.previewItemRemoveButton}\n\t\t\t\t\t\t\t\tonPress={() => this.onRemoveImage(image.url)}\n\t\t\t\t\t\t\t\thitSlop={{ top: 8, right: 8, bottom: 8, left: 8 }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\tstyles.previewItemRemoveContainer,\n\t\t\t\t\t\t\t\t\t\t{ backgroundColor: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tname=\"times\"\n\t\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\t\ticonStyle={styles.previewItemRemoveIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ScrollView>\n\t\t);\n\t}\n\n\trenderInputToolbar(props) {\n\t\tconst hasAttachment = this.hasImagesAttached(props.imagesToUpload);\n\t\treturn (\n\t\t\t<InputToolbar\n\t\t\t\t{...props}\n\t\t\t\tcontainerStyle={styles.inputContainer}\n\t\t\t\trenderComposer={this.renderComposer.bind(this)}\n\t\t\t\trenderAccessory={hasAttachment ? this.renderAccessory.bind(this) : null}\n\t\t\t\taccessoryStyle={hasAttachment && styles.accessory}\n\t\t\t/>\n\t\t);\n\t}\n\trenderFooter() {\n\t\t// if (this.state.keyboardOpen) {\n\t\t// return null;\n\t\t// }\n\t\t// fixes an issue where there's no gap between bottom message and reply container\n\t\treturn <View style={{ height: 10 }} />;\n\t}\n\trenderLoading() {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={{\n\t\t\t\t\tmarginTop: 15,\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\talignContent: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Spinner size={\"small\"} color={this.props.colourBrandingMain} />\n\t\t\t</View>\n\t\t);\n\t}\n\trenderAvatar(props) {\n\t\treturn (\n\t\t\t<View style={{ marginRight: 2 }}>\n\t\t\t\t<ProfilePic\n\t\t\t\t\tProfilePic={props.currentMessage.user.avatar}\n\t\t\t\t\tDiameter={28}\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\trenderComposer(props) {\n\t\treturn (\n\t\t\t<View style={{ width: \"100%\" }}>\n\t\t\t\t{/* Replying to section - stacked vertically on top */}\n\t\t\t\t{this.state.replyingTo && (\n\t\t\t\t\t<View style={styles.replyingTo}>\n\t\t\t\t\t\t<Text type=\"body\">\n\t\t\t\t\t\t\tReplying to{\" \"}\n\t\t\t\t\t\t\t{_.isEmpty(this.state.replyingTo?.user?.name)\n\t\t\t\t\t\t\t\t? \"message\"\n\t\t\t\t\t\t\t\t: this.state.replyingTo?.user?.name}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\tstyle={styles.replyingRemoveButton}\n\t\t\t\t\t\t\tonPress={() => this.onReply(null)}\n\t\t\t\t\t\t\thitSlop={{ top: 8, right: 8, bottom: 8, left: 8 }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\tstyles.replyingRemoveContainer,\n\t\t\t\t\t\t\t\t\t{ backgroundColor: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tname=\"times\"\n\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\ticonStyle={styles.replyingRemoveIcon}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t</View>\n\t\t\t\t)}\n\t\t\t\t{/* Horizontal row for input - buttons are absolutely positioned via renderSend */}\n\t\t\t\t<View\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\tpaddingBottom: 8,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\tstyles.input,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\t\t\tmarginRight:\n\t\t\t\t\t\t\t\t\t_.isEmpty(props.text) &&\n\t\t\t\t\t\t\t\t\t!this.hasImagesReady(props.imagesToUpload)\n\t\t\t\t\t\t\t\t\t\t? 16 + this.MIN_COMPOSER_HEIGHT\n\t\t\t\t\t\t\t\t\t\t: 2 * (this.MIN_COMPOSER_HEIGHT + 8),\n\t\t\t\t\t\t\t\tpaddingHorizontal: 12,\n\t\t\t\t\t\t\t\tpaddingVertical: Platform.select({ ios: 8, android: 6 }),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextInput\n\t\t\t\t\t\t\tmaxFontSizeMultiplier={1.2}\n\t\t\t\t\t\t\tplaceholder=\"Type a message...\"\n\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\tvalue={props.text}\n\t\t\t\t\t\t\tonChangeText={props.onTextChanged}\n\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\tstyles.inputText,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlineHeight: 20,\n\t\t\t\t\t\t\t\t\tminHeight: this.MIN_COMPOSER_HEIGHT - 16,\n\t\t\t\t\t\t\t\t\tmaxHeight: 100,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\tonFocus={this.onFocusInput.bind(this)}\n\t\t\t\t\t\t\tonBlur={this.onBlurInput.bind(this)}\n\t\t\t\t\t\t\tplaceholderTextColor=\"#999\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</View>\n\t\t);\n\t}\n\n\t/***\n\t * Main Render\n\t */\n\trenderChat() {\n\t\tconst minInputToolbarHeight =\n\t\t\tthis.MIN_COMPOSER_HEIGHT +\n\t\t\t32 +\n\t\t\t(this.state.replyingTo ? 38 : 0) +\n\t\t\t(this.hasImagesAttached() ? IMAGE_PREVIEW_AREA_HEIGHT : 0);\n\n\t\treturn (\n\t\t\t<GiftedChat\n\t\t\t\tisKeyboardInternallyHandled={false}\n\t\t\t\talwaysShowSend={false}\n\t\t\t\tkeyboardShouldPersistTaps={\"never\"}\n\t\t\t\trenderAvatarOnTop\n\t\t\t\tminInputToolbarHeight={minInputToolbarHeight}\n\t\t\t\tminComposerHeight={this.MIN_COMPOSER_HEIGHT}\n\t\t\t\tbottomOffset={0}\n\t\t\t\tonSend={this.sendMessages.bind(this)}\n\t\t\t\tmessages={this.state.messages}\n\t\t\t\tuser={this.state.currentUser}\n\t\t\t\trenderBubble={this.renderBubble.bind(this)}\n\t\t\t\trenderMessage={this.renderMessage.bind(this)}\n\t\t\t\trenderMessageText={this.renderMessageText.bind(this)}\n\t\t\t\trenderTime={this.renderTime.bind(this)}\n\t\t\t\trenderDay={this.renderDay.bind(this)}\n\t\t\t\trenderCustomView={this.renderCustomView.bind(this)}\n\t\t\t\trenderSend={this.renderSend.bind(this)}\n\t\t\t\trenderInputToolbar={this.renderInputToolbar.bind(this)}\n\t\t\t\trenderFooter={this.renderFooter.bind(this)}\n\t\t\t\trenderLoading={this.renderLoading.bind(this)}\n\t\t\t\trenderAvatar={this.renderAvatar.bind(this)}\n\t\t\t\timagesToUpload={this.state.imagesToUpload}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderImageUploader() {\n\t\treturn (\n\t\t\t<ImageUploader\n\t\t\t\tref={(ref) => (this.imageUploader = ref)}\n\t\t\t\tonUploadStarted={this.onUploadStarted}\n\t\t\t\tonUploadProgress={this.onUploadProgress}\n\t\t\t\tonUploadSuccess={this.onUploadSuccess}\n\t\t\t\tonUploadFailed={this.onUploadFailed}\n\t\t\t\tonLibrarySelected={this.onLibrarySelected}\n\t\t\t\tquality={0.8}\n\t\t\t\tallowsEditing={false}\n\t\t\t\tfileName={\"imageInput\"}\n\t\t\t\tpopupTitle={\"Add Image\"}\n\t\t\t\tuserId={this.props.user.uid}\n\t\t\t\tmultiple\n\t\t\t\tallowVideo\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderImagePopup() {\n\t\tconst { imagePopupOpen, imagePopupSource, imagePopupIndex } = this.state;\n\t\treturn (\n\t\t\t<ImagePopup\n\t\t\t\tvisible={imagePopupOpen}\n\t\t\t\timages={imagePopupSource}\n\t\t\t\tindex={imagePopupIndex}\n\t\t\t\tonClose={this.closeGallery.bind(this)}\n\t\t\t/>\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\trenderPDF() {\n\t\tif (_.isEmpty(this.state.selectedPDF)) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<PDFPopup\n\t\t\t\tsource={this.state.selectedPDF}\n\t\t\t\tonClose={this.onCloseAttachment}\n\t\t\t\ttitle={getFileName(this.state.selectedPDF)}\n\t\t\t\tpdfCount={1}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderDeleteConfirmPopup() {\n\t\treturn (\n\t\t\t<ConfirmPopup\n\t\t\t\tvisible={this.state.showDeleteMessageConfirm}\n\t\t\t\tonConfirm={this.onConfirmDeleteMessage}\n\t\t\t\tonCancel={this.onCancelDeleteMessage}\n\t\t\t\ttext=\"Are you sure you want to delete this message?\"\n\t\t\t\tyesText=\"Delete\"\n\t\t\t\tnoText=\"Cancel\"\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<KeyboardAvoidingView behavior=\"padding\" style={styles.chatContainer}>\n\t\t\t\t{this.renderChat()}\n\t\t\t\t{this.renderImageUploader()}\n\t\t\t\t{this.renderImagePopup()}\n\t\t\t\t{this.renderVideoPlayerPopup()}\n\t\t\t\t{this.renderPDF()}\n\t\t\t\t{this.renderDeleteConfirmPopup()}\n\t\t\t</KeyboardAvoidingView>\n\t\t);\n\t}\n}\n\nconst styles = {\n\tchatContainer: {\n\t\tflex: 1,\n\t\tjustifyContent: \"center\",\n\t},\n\teventContainer: {\n\t\tleft: {\n\t\t\tpaddingTop: 5,\n\t\t\tpaddingLeft: 15,\n\t\t\tpaddingRight: 15,\n\t\t\tpaddingBottom: 5,\n\t\t\tflexDirection: \"row\",\n\t\t},\n\t\tright: {\n\t\t\tpaddingTop: 5,\n\t\t\tpaddingLeft: 15,\n\t\t\tpaddingRight: 15,\n\t\t\tpaddingBottom: 5,\n\t\t\tflexDirection: \"row-reverse\",\n\t\t},\n\t},\n\teventImage: {\n\t\twidth: 80,\n\t\theight: 80,\n\t\tresizeMode: \"cover\",\n\t\tborderRadius: 2,\n\t},\n\teventImageMargin: {\n\t\tright: {\n\t\t\tmarginLeft: 15,\n\t\t},\n\t\tleft: {\n\t\t\tmarginRight: 15,\n\t\t},\n\t},\n\teventInfo: {\n\t\tminHeight: 80,\n\t\twidth: 150,\n\t},\n\teventTitle: {\n\t\tfontSize: 12,\n\t\tfontFamily: \"sf-bold\",\n\t\tbackgroundColor: \"rgba(255,255,255,0)\",\n\t},\n\teventInfoAlign: {\n\t\tleft: {\n\t\t\ttextAlign: \"left\",\n\t\t},\n\t\tright: {\n\t\t\ttextAlign: \"right\",\n\t\t},\n\t},\n\tmessageImageLarge: {\n\t\twidth: IMAGE_SIZE_LARGE,\n\t\theight: IMAGE_SIZE_LARGE,\n\t\tborderRadius: 2,\n\t\talignSelf: \"center\",\n\t},\n\tmessageImageSmall: {\n\t\twidth: IMAGE_SIZE_SMALL,\n\t\theight: IMAGE_SIZE_SMALL,\n\t\tborderRadius: 2,\n\t\talignSelf: \"center\",\n\t\tmarginRight: IMAGE_MARGIN,\n\t\tmarginBottom: IMAGE_MARGIN,\n\t},\n\teventDate: {\n\t\tfontSize: 12,\n\t\tfontFamily: \"sf-regular\",\n\t\tbackgroundColor: \"rgba(255,255,255,0)\",\n\t},\n\tinputContainer: {\n\t\tbackgroundColor: \"#fff\",\n\t\tpaddingVertical: 8,\n\t\tpaddingHorizontal: 8,\n\t},\n\tinputText: {\n\t\tcolor: TEXT_DARKEST,\n\t\tfontSize: 14,\n\t\tfontFamily: \"sf-medium\",\n\t},\n\tinput: {\n\t\tmargin: 0,\n\t\tbackgroundColor: BG_GREY,\n\t\tborderRadius: 5,\n\t\tflex: 1,\n\t},\n\tcomposerContainer: {\n\t\tflex: 1,\n\t},\n\tcomposerInputWrapper: {\n\t\tflex: 1,\n\t\tflexDirection: \"row\",\n\t},\n\treplyingTo: {\n\t\tminHeight: 30,\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\tborderBottomWidth: 1,\n\t\tborderBottomColor: LINEGREY,\n\t\tmarginBottom: 8,\n\t},\n\treplyingRemoveButton: {\n\t\tmarginLeft: 10,\n\t},\n\treplyingRemoveContainer: {\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 10,\n\t\twidth: 20,\n\t\theight: 20,\n\t\tborderWidth: 2,\n\t\tborderColor: \"#fff\",\n\t},\n\treplyingRemoveIcon: {\n\t\tfontSize: 10,\n\t\tcolor: \"#fff\",\n\t\tmarginBottom: 1,\n\t},\n\tsendContainer: {\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tright: 0,\n\t\theight: 30,\n\t\twidth: 30,\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\tbackgroundColor: \"#fff\",\n\t},\n\tsend: {\n\t\tfontSize: 15,\n\t\tcolor: TEXT_BLUEGREY,\n\t\tfontSize: 24,\n\t\ttextAlign: \"center\",\n\t},\n\taccessory: {\n\t\theight: IMAGE_PREVIEW_AREA_HEIGHT,\n\t\tborderTopWidth: 1,\n\t\tborderTopColor: LINEGREY,\n\t\tpaddingTop: 8,\n\t\tmarginTop: 8,\n\t},\n\taccessoryImageContainer: {\n\t\tpaddingRight: 8,\n\t\tpaddingTop: 8,\n\t\tmarginRight: 5,\n\t},\n\taccessoryImage: {\n\t\twidth: IMAGE_PREVIEW_SIZE,\n\t\theight: IMAGE_PREVIEW_SIZE,\n\t},\n\taccessoryImageBorder: {\n\t\tborderRadius: 2,\n\t},\n\tsettingDropDownOpen: {\n\t\theight: \"auto\",\n\t},\n\timagesContainer: {\n\t\tmarginLeft: 10,\n\t\tmarginRight: 10,\n\t\tflexDirection: \"row\",\n\t\tflexWrap: \"wrap\",\n\t},\n\tuploadImagesContainer: {\n\t\tflexDirection: \"row\",\n\t\toverflow: \"visible\",\n\t},\n\tpreviewItemRemoveButton: {\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tright: 0,\n\t},\n\tpreviewItemRemoveContainer: {\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 10,\n\t\twidth: 20,\n\t\theight: 20,\n\t\tborderWidth: 2,\n\t\tborderColor: \"#fff\",\n\t},\n\tpreviewItemRemoveIcon: {\n\t\tfontSize: 10,\n\t\tcolor: \"#fff\",\n\t\tmarginBottom: 1,\n\t},\n\timagePlayContainer: {\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbottom: 0,\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t},\n\timageControlIcon: {\n\t\tcolor: \"#fff\",\n\t\tfontSize: 20,\n\t\ttextShadowColor: \"rgba(0,0,0,0.3)\",\n\t\ttextShadowOffset: { width: 2, height: 2 },\n\t},\n};\n\nconst mapStateToProps = (state) => {\n\treturn {\n\t\tuser: state.user,\n\t\tcolourBrandingMain: getMainBrandingColourFromState(state),\n\t\tcolourBrandingLight: getLightBrandingColourFromState(state),\n\t\ttabCount: getEnabledTabsFromState(state).length,\n\t};\n};\n\nexport default connect(mapStateToProps, {})(PlussChat);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Component","View","Image","ImageBackground","TouchableOpacity","KeyboardAvoidingView","Platform","ScrollView","Alert","TextInput","GiftedChat","Bubble","MessageText","Send","InputToolbar","connect","_","moment","Icon","getBottomSpace","Spinner","ProfilePic","PlussChatTime","PDFPopup","Attachment","PlussChatMessage","Text","ConfirmPopup","TEXT_DARK","LINEGREY","TEXT_DARKEST","getMainBrandingColourFromState","getLightBrandingColourFromState","BG_GREY","TEXT_BLUEGREY","getEnabledTabsFromState","get1400","getThumb300","imageExists","isVideo","getImageSource","getFileName","Config","Services","ImageUploader","ImageUploadProgress","ImagePopup","VideoPopup","IMAGE_SIZE_SMALL","IMAGE_SIZE_LARGE","IMAGES_PER_ROW","IMAGE_MARGIN","IMAGE_PREVIEW_AREA_HEIGHT","IMAGE_PREVIEW_SIZE","PlussChat","constructor","props","_defineProperty","event","navigation","navigate","attachment","Type","place","imagesToUpload","isEmpty","state","upload","hasImagesAttached","every","i","uploading","thumbNailExists","checkThumb","setInterval","Promise","all","map","image","resolve","newImage","push","url","allowRetry","thumbNailUrl","thumbnailsExist","clearInterval","setState","a","selectedPDF","keyboardOpen","uploadUri","imageUri","uploadProgress","progress","img","uri","percentage","replace","waitForThumbnails","images","selected","imagePopupSource","imagePopupIndex","indexOf","imagePopupOpen","message","replyingTo","onDeleteMessage","user","_id","uid","showDeleteMessageConfirm","messageToDelete","error","console","log","filter","showFullscreenVideo","length","currentVideoUrl","isSingleTab","tabCount","MIN_COMPOSER_HEIGHT","select","ios","android","currentUser","name","displayName","avatar","isUndefined","profilePic","env","tinyChatDefault","messages","composerHeight","UNSAFE_componentWillMount","updateMessages","UNSAFE_componentWillReceiveProps","nextProps","isEqual","onSend","showUploadMenu","imageUploader","closeGallery","sendMessages","hasImagesReady","text","renderBubble","bubbleProps","wrapperStyle","currentMessage","paddingTop","paddingBottom","minWidth","attachments","paddingHorizontal","createElement","_extends","renderMessageImage","isCustomViewBottom","left","backgroundColor","borderRadius","right","colourBrandingLight","containerToNextStyle","borderBottomLeftRadius","borderBottomRightRadius","containerToPreviousStyle","borderTopLeftRadius","borderTopRightRadius","renderMessage","key","RowId","colourBrandingMain","onPressReply","onReply","onPressDelete","onDelete","renderMessageText","messageTextProps","deleted","textStyle","fontFamily","fontSize","color","marginTop","marginBottom","marginLeft","marginRight","linkStyle","textProps","selectable","renderTime","renderDay","dayProps","renderCustomView","position","containerWidth","style","styles","imagesContainer","width","paddingVertical","thumb","onPress","toggleFullscreenVideo","bind","messageImageSmall","messageImageLarge","source","imagePlayContainer","type","iconStyle","imageControlIcon","onPressImage","onOpenAttachment","title","onPressEvent","eventContainer","eventImage","eventImageMargin","Thumbnail","eventInfo","numberOfLines","eventTitle","eventInfoAlign","Title","eventDate","utc","StartTime","local","format","onPressAttachment","renderSend","buttonTopOffset","showSendButton","top","flexDirection","alignItems","sendContainer","height","send","alwaysShowSend","containerStyle","renderAccessory","hasAttachment","horizontal","uploadImagesContainer","uploader","progressTextStyle","isVideoUrl","accessoryImageContainer","accessoryImage","imageStyle","accessoryImageBorder","previewItemRemoveButton","onRemoveImage","hitSlop","bottom","previewItemRemoveContainer","previewItemRemoveIcon","renderInputToolbar","inputContainer","renderComposer","accessoryStyle","accessory","renderFooter","renderLoading","justifyContent","alignContent","size","renderAvatar","Diameter","_this$state$replyingT","_this$state$replyingT2","replyingRemoveButton","replyingRemoveContainer","replyingRemoveIcon","input","flex","maxFontSizeMultiplier","placeholder","multiline","value","onChangeText","onTextChanged","inputText","lineHeight","minHeight","maxHeight","onFocus","onFocusInput","onBlur","onBlurInput","placeholderTextColor","renderChat","minInputToolbarHeight","isKeyboardInternallyHandled","keyboardShouldPersistTaps","renderAvatarOnTop","minComposerHeight","bottomOffset","renderImageUploader","ref","onUploadStarted","onUploadProgress","onUploadSuccess","onUploadFailed","onLibrarySelected","quality","allowsEditing","fileName","popupTitle","userId","multiple","allowVideo","renderImagePopup","visible","index","onClose","renderVideoPlayerPopup","renderPDF","onCloseAttachment","pdfCount","renderDeleteConfirmPopup","onConfirm","onConfirmDeleteMessage","onCancel","onCancelDeleteMessage","yesText","noText","render","behavior","chatContainer","paddingLeft","paddingRight","resizeMode","textAlign","alignSelf","margin","composerContainer","composerInputWrapper","borderBottomWidth","borderBottomColor","borderWidth","borderColor","borderTopWidth","borderTopColor","settingDropDownOpen","flexWrap","overflow","textShadowColor","textShadowOffset","mapStateToProps"],"sources":["PlussChat.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport {\n\tView,\n\tImage,\n\tImageBackground,\n\tTouchableOpacity,\n\tKeyboardAvoidingView,\n\tPlatform,\n\tScrollView,\n\tAlert,\n\tTextInput,\n} from \"react-native\";\nimport {\n\tGiftedChat,\n\tBubble,\n\tMessageText,\n\tSend,\n\tInputToolbar,\n} from \"react-native-gifted-chat\";\nimport { connect } from \"react-redux\";\nimport _ from \"lodash\";\nimport moment from \"moment\";\nimport { Icon } from \"@rneui/themed\";\nimport { getBottomSpace } from \"react-native-iphone-x-helper\";\nimport { Spinner } from \"./Spinner\";\nimport { ProfilePic } from \"./ProfilePic\";\nimport PlussChatTime from \"./PlussChatTime\";\nimport { PDFPopup } from \"./PDFPopup\";\nimport { Attachment } from \"./Attachment\";\nimport PlussChatMessage from \"./PlussChatMessage\";\nimport { Text } from \".\";\nimport { ConfirmPopup } from \"./ConfirmPopup\";\nimport {\n\tTEXT_DARK,\n\tLINEGREY,\n\tTEXT_DARKEST,\n\tgetMainBrandingColourFromState,\n\tgetLightBrandingColourFromState,\n\tBG_GREY,\n\tTEXT_BLUEGREY,\n} from \"../colours\";\nimport {\n\tgetEnabledTabsFromState,\n\tget1400,\n\tgetThumb300,\n\timageExists,\n\tisVideo,\n\tgetImageSource,\n\tgetFileName,\n} from \"../helper\";\nimport Config, { Services } from \"../config\";\nimport ImageUploader from \"./ImageUploader\";\nimport ImageUploadProgress from \"./ImageUploadProgress\";\nimport { ImagePopup } from \"./ImagePopup\";\nimport { VideoPopup } from \"./VideoPopup\";\n\nconst IMAGE_SIZE_SMALL = 55;\nconst IMAGE_SIZE_LARGE = 110;\nconst IMAGES_PER_ROW = 4;\nconst IMAGE_MARGIN = 2;\nconst IMAGE_PREVIEW_AREA_HEIGHT = 105;\nconst IMAGE_PREVIEW_SIZE = IMAGE_PREVIEW_AREA_HEIGHT - 25;\n\nclass PlussChat extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tconst isSingleTab = this.props.tabCount === 1 && getBottomSpace() > 0;\n\t\tthis.MIN_COMPOSER_HEIGHT = Platform.select({\n\t\t\tios: isSingleTab ? 42 : 33,\n\t\t\tandroid: 41,\n\t\t});\n\n\t\tthis.state = {\n\t\t\tcurrentUser: {\n\t\t\t\t_id: this.props.user.uid,\n\t\t\t\tname: this.props.user.displayName,\n\t\t\t\tavatar:\n\t\t\t\t\t!_.isUndefined(this.props.user.profilePic) &&\n\t\t\t\t\t!_.isEmpty(this.props.user.profilePic)\n\t\t\t\t\t\t? this.props.user.profilePic\n\t\t\t\t\t\t: Config.env.tinyChatDefault,\n\t\t\t},\n\n\t\t\tmessages: [],\n\t\t\timagePopupSource: [],\n\t\t\timagePopupIndex: 0,\n\t\t\timagePopupOpen: false,\n\t\t\timagesToUpload: [],\n\t\t\tshowFullscreenVideo: false,\n\t\t\tcurrentVideoUrl: \"\",\n\t\t\tshowDeleteMessageConfirm: false,\n\t\t\tmessageToDelete: null,\n\t\t\tcomposerHeight: this.MIN_COMPOSER_HEIGHT,\n\t\t};\n\t\tthis.checkThumb = null;\n\t}\n\n\tUNSAFE_componentWillMount() {\n\t\tthis.updateMessages(this.props);\n\t}\n\n\tUNSAFE_componentWillReceiveProps(nextProps) {\n\t\t// Only update if messages actually changed\n\t\tif (nextProps.messages !== this.props.messages) {\n\t\t\tthis.updateMessages(nextProps);\n\t\t}\n\t}\n\n\tupdateMessages(props) {\n\t\t// Only update if messages actually changed\n\t\tif (\n\t\t\t!_.isUndefined(props.messages) &&\n\t\t\t!_.isEqual(props.messages, this.state.messages)\n\t\t) {\n\t\t\tthis.setState({ messages: props.messages });\n\t\t}\n\t}\n\n\t/***\n\t *\n\t * Messaging functionality\n\t */\n\tonSend(messages = []) {\n\t\t// if (this.chatKey) {\n\t\t// this.sendMessage(messages[0]);\n\t\t// }\n\t}\n\n\tonPressEvent = (event) => {\n\t\tServices.navigation.navigate(\"eventDetail\", { event });\n\t};\n\tonPressAttachment = (attachment) => {\n\t\tswitch (attachment.Type) {\n\t\t\tcase \"Event\":\n\t\t\t\tServices.navigation.navigate(\"eventDetail\", { event: attachment });\n\t\t\t\tbreak;\n\t\t\tcase \"Place\":\n\t\t\t\tServices.navigation.navigate(\"placeDetail\", { place: attachment });\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t};\n\n\thasImagesAttached = (imagesToUpload = null) => {\n\t\treturn !_.isEmpty(imagesToUpload || this.state.imagesToUpload);\n\t};\n\n\thasImagesReady = (imagesToUpload = null) => {\n\t\tconst upload = imagesToUpload || this.state.imagesToUpload;\n\t\treturn (\n\t\t\tthis.hasImagesAttached(upload) &&\n\t\t\tupload.every((i) => !i.uploading && i.thumbNailExists)\n\t\t);\n\t};\n\n\twaitForThumbnails = () => {\n\t\tif (this.checkThumb) return;\n\n\t\tthis.checkThumb = setInterval(async () => {\n\t\t\tconst imagesToUpload = [];\n\t\t\tawait Promise.all(\n\t\t\t\tthis.state.imagesToUpload.map((image) => {\n\t\t\t\t\treturn new Promise(async (resolve) => {\n\t\t\t\t\t\tconst newImage = { ...image };\n\t\t\t\t\t\timagesToUpload.push(newImage);\n\t\t\t\t\t\tif (newImage.url && !newImage.thumbNailExists) {\n\t\t\t\t\t\t\tnewImage.uploading = false;\n\t\t\t\t\t\t\tnewImage.allowRetry = false;\n\t\t\t\t\t\t\tnewImage.thumbNailExists = await imageExists(\n\t\t\t\t\t\t\t\tnewImage.thumbNailUrl,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tresolve(newImage.thumbNailExists);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst thumbnailsExist = imagesToUpload.every(\n\t\t\t\t(image) => !image.url || image.thumbNailExists,\n\t\t\t);\n\t\t\tif (thumbnailsExist) {\n\t\t\t\tclearInterval(this.checkThumb);\n\t\t\t\tthis.checkThumb = null;\n\t\t\t\tthis.setState({ imagesToUpload });\n\t\t\t}\n\t\t}, 2000);\n\t};\n\n\tonOpenAttachment = (a) => {\n\t\tthis.setState({\n\t\t\tselectedPDF: a,\n\t\t});\n\t};\n\n\tonCloseAttachment = () => {\n\t\tthis.setState({\n\t\t\tselectedPDF: null,\n\t\t});\n\t};\n\n\tshowUploadMenu() {\n\t\tthis.imageUploader.showUploadMenu();\n\t}\n\n\tonFocusInput = () => {\n\t\tthis.setState({\n\t\t\tkeyboardOpen: true,\n\t\t});\n\t\tif (this.props.keyboardOpen) {\n\t\t\tthis.props.keyboardOpen();\n\t\t}\n\t};\n\n\tonBlurInput = () => {\n\t\tthis.setState({\n\t\t\tkeyboardOpen: false,\n\t\t});\n\t};\n\n\tonUploadStarted = (uploadUri, imageUri) => {\n\t\tconst imagesToUpload = [\n\t\t\t...this.state.imagesToUpload,\n\t\t\t{\n\t\t\t\tuploading: true,\n\t\t\t\tuploadProgress: \"0%\",\n\t\t\t\tuploadUri,\n\t\t\t\timageUri,\n\t\t\t\tallowRetry: true,\n\t\t\t},\n\t\t];\n\t\tthis.setState({ imagesToUpload });\n\t};\n\n\tonUploadProgress = (progress) => {\n\t\tconst imagesToUpload = [...this.state.imagesToUpload];\n\t\timagesToUpload.map((img) => {\n\t\t\tif (img.uploadUri === progress.uri) {\n\t\t\t\timg.uploadProgress = progress.percentage;\n\t\t\t\timg.uploading = true;\n\t\t\t\timg.allowRetry = true;\n\t\t\t}\n\t\t});\n\t\tthis.setState({ imagesToUpload });\n\t};\n\n\tonUploadSuccess = async (uri, uploadUri) => {\n\t\tconst imagesToUpload = [...this.state.imagesToUpload];\n\t\timagesToUpload.map((img) => {\n\t\t\tif (img.uploadUri === uploadUri && img.uploading) {\n\t\t\t\timg.url = uri.replace(\"/general/\", \"/general1400/\");\n\t\t\t\timg.thumbNailExists = false;\n\t\t\t\timg.thumbNailUrl = getThumb300(img.url);\n\t\t\t\timg.allowRetry = true;\n\t\t\t}\n\t\t});\n\t\tthis.setState({ imagesToUpload }, () => this.waitForThumbnails());\n\t};\n\n\tonUploadFailed = (uploadUri) => {\n\t\tconst imagesToUpload = [...this.state.imagesToUpload];\n\t\timagesToUpload.map((img) => {\n\t\t\tif (img.uploadUri === uploadUri) {\n\t\t\t\timg.uploading = true; // Requried for retry\n\t\t\t\timg.uploadProgress = \"\";\n\t\t\t\timg.allowRetry = true;\n\t\t\t}\n\t\t});\n\t\tthis.setState({ imagesToUpload });\n\t};\n\n\tonLibrarySelected = (uri) => {\n\t\tconst imagesToUpload = [\n\t\t\t...this.state.imagesToUpload,\n\t\t\t{\n\t\t\t\tuploading: false,\n\t\t\t\tallowRetry: false,\n\t\t\t\turl: get1400(uri),\n\t\t\t\tthumbNailExists: true,\n\t\t\t\tthumbNailUrl: getThumb300(uri),\n\t\t\t},\n\t\t];\n\t\tthis.setState({ imagesToUpload });\n\t};\n\n\tonPressImage = (images, selected) => {\n\t\tthis.setState({\n\t\t\timagePopupSource: images,\n\t\t\timagePopupIndex: images.indexOf(selected),\n\t\t\timagePopupOpen: true,\n\t\t});\n\t};\n\n\tonReply = (message) => {\n\t\tthis.setState({\n\t\t\treplyingTo: message,\n\t\t});\n\t};\n\n\tonDelete = (message) => {\n\t\t// Only proceed if delete handler is provided\n\t\tif (!this.props.onDeleteMessage) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only allow deletion of own messages\n\t\tif (message.user._id !== this.props.user.uid) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState({\n\t\t\tshowDeleteMessageConfirm: true,\n\t\t\tmessageToDelete: message,\n\t\t});\n\t};\n\n\tonCancelDeleteMessage = () => {\n\t\tthis.setState({\n\t\t\tshowDeleteMessageConfirm: false,\n\t\t\tmessageToDelete: null,\n\t\t});\n\t};\n\n\tonConfirmDeleteMessage = async () => {\n\t\tconst { messageToDelete } = this.state;\n\t\tif (!messageToDelete) return;\n\n\t\tthis.setState({\n\t\t\tshowDeleteMessageConfirm: false,\n\t\t});\n\n\t\ttry {\n\t\t\t// Call the parent's delete handler if provided\n\t\t\tif (this.props.onDeleteMessage) {\n\t\t\t\tawait this.props.onDeleteMessage(messageToDelete);\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\tmessageToDelete: null,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\t// Handle error gracefully if parent handler fails\n\t\t\tconsole.log(\"onConfirmDeleteMessage error\", error);\n\t\t\t// Error is already handled by parent component\n\t\t\tthis.setState({ messageToDelete: null });\n\t\t}\n\t};\n\n\tcloseGallery() {\n\t\tthis.setState({\n\t\t\timagePopupSource: [],\n\t\t\timagePopupIndex: 0,\n\t\t\timagePopupOpen: false,\n\t\t});\n\t}\n\n\tonRemoveImage = (url) => {\n\t\tconst imagesToUpload = this.state.imagesToUpload.filter(\n\t\t\t(image) => image.url !== url,\n\t\t);\n\t\tthis.setState({ imagesToUpload });\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\tsendMessages(messages) {\n\t\tif (this.hasImagesAttached()) {\n\t\t\t// Don't allow send if attached images aren't ready\n\t\t\tif (!this.hasImagesReady()) return;\n\t\t\tmessages[0].image = this.state.imagesToUpload.map((image) => image.url);\n\t\t}\n\t\tif (_.isEmpty(messages[0].text)) {\n\t\t\tmessages[0].text = \"\";\n\t\t}\n\t\tif (!messages[0].text && !messages[0].image) return;\n\n\t\tif (this.state.replyingTo) {\n\t\t\tmessages[0].replyingTo = this.state.replyingTo;\n\t\t}\n\n\t\tthis.props.onSend(messages);\n\t\tthis.setState({ imagesToUpload: [], replyingTo: null });\n\t}\n\n\t/**\n\t *\n\t * Render Functions\n\t */\n\trenderBubble(bubbleProps) {\n\t\tconst wrapperStyle = {};\n\t\tif (\n\t\t\t!_.isEmpty(bubbleProps.currentMessage.text) &&\n\t\t\t!_.isEmpty(bubbleProps.currentMessage.image)\n\t\t) {\n\t\t\twrapperStyle.paddingTop = 8;\n\t\t\twrapperStyle.paddingBottom = 16;\n\t\t\twrapperStyle.minWidth = 142; // 110 image width + 16 padding either side\n\t\t}\n\t\tif (!_.isEmpty(bubbleProps.currentMessage.attachments)) {\n\t\t\twrapperStyle.paddingTop = 8;\n\t\t\twrapperStyle.paddingBottom = 16;\n\t\t\twrapperStyle.paddingHorizontal = 16;\n\t\t}\n\t\treturn (\n\t\t\t<Bubble\n\t\t\t\t{...bubbleProps}\n\t\t\t\trenderMessageImage={() => null}\n\t\t\t\tisCustomViewBottom={true}\n\t\t\t\twrapperStyle={{\n\t\t\t\t\tleft: {\n\t\t\t\t\t\tbackgroundColor: LINEGREY,\n\t\t\t\t\t\tborderRadius: 25,\n\t\t\t\t\t\t...wrapperStyle,\n\t\t\t\t\t},\n\t\t\t\t\tright: {\n\t\t\t\t\t\tbackgroundColor: this.props.colourBrandingLight,\n\t\t\t\t\t\tborderRadius: 25,\n\t\t\t\t\t\t...wrapperStyle,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tcontainerToNextStyle={{\n\t\t\t\t\tleft: {\n\t\t\t\t\t\tborderBottomLeftRadius: 5,\n\t\t\t\t\t},\n\t\t\t\t\tright: {\n\t\t\t\t\t\tborderBottomRightRadius: 5,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tcontainerToPreviousStyle={{\n\t\t\t\t\tleft: {\n\t\t\t\t\t\tborderTopLeftRadius: 5,\n\t\t\t\t\t},\n\t\t\t\t\tright: {\n\t\t\t\t\t\tborderTopRightRadius: 5,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}\n\trenderMessage(props) {\n\t\treturn (\n\t\t\t<PlussChatMessage\n\t\t\t\tkey={props.RowId}\n\t\t\t\tcolourBrandingMain={this.props.colourBrandingMain}\n\t\t\t\tonPressReply={() => {\n\t\t\t\t\tthis.onReply(props.currentMessage);\n\t\t\t\t}}\n\t\t\t\tonPressDelete={\n\t\t\t\t\tthis.props.onDeleteMessage\n\t\t\t\t\t\t? () => {\n\t\t\t\t\t\t\t\tthis.onDelete(props.currentMessage);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: null\n\t\t\t\t}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n\trenderMessageText(messageTextProps) {\n\t\t// If message is deleted, show placeholder text\n\t\tconst props = messageTextProps.currentMessage.deleted\n\t\t\t? {\n\t\t\t\t\t...messageTextProps,\n\t\t\t\t\tcurrentMessage: {\n\t\t\t\t\t\t...messageTextProps.currentMessage,\n\t\t\t\t\t\ttext: \"[Message deleted]\",\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t: messageTextProps;\n\n\t\treturn (\n\t\t\t<MessageText\n\t\t\t\t{...props}\n\t\t\t\ttextStyle={{\n\t\t\t\t\tleft: {\n\t\t\t\t\t\tfontFamily: \"sf-regular\",\n\t\t\t\t\t\tfontSize: 16,\n\t\t\t\t\t\tcolor: TEXT_DARKEST,\n\t\t\t\t\t\tmarginTop: 10,\n\t\t\t\t\t\tmarginBottom: 10,\n\t\t\t\t\t\tmarginLeft: 15,\n\t\t\t\t\t\tmarginRight: 15,\n\t\t\t\t\t},\n\t\t\t\t\tright: {\n\t\t\t\t\t\tfontFamily: \"sf-regular\",\n\t\t\t\t\t\tfontSize: 16,\n\t\t\t\t\t\tcolor: this.props.colourBrandingMain,\n\t\t\t\t\t\tmarginTop: 10,\n\t\t\t\t\t\tmarginBottom: 10,\n\t\t\t\t\t\tmarginLeft: 15,\n\t\t\t\t\t\tmarginRight: 15,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tlinkStyle={{\n\t\t\t\t\tleft: {\n\t\t\t\t\t\tcolor: TEXT_DARKEST,\n\t\t\t\t\t},\n\t\t\t\t\tright: {\n\t\t\t\t\t\tcolor: this.props.colourBrandingMain,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\ttextProps={{\n\t\t\t\t\tselectable: true,\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}\n\trenderTime() {\n\t\treturn null;\n\t}\n\trenderDay(dayProps) {\n\t\treturn (\n\t\t\t<PlussChatTime\n\t\t\t\t{...dayProps}\n\t\t\t\ttextStyle={{\n\t\t\t\t\tfontFamily: \"sf-semibold\",\n\t\t\t\t\tcolor: TEXT_DARK,\n\t\t\t\t\tfontSize: 12,\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}\n\trenderCustomView({ currentMessage, position }) {\n\t\t// Don't show images or attachments for deleted messages\n\t\tif (currentMessage.deleted) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (currentMessage.image) {\n\t\t\tconst images =\n\t\t\t\ttypeof currentMessage.image === \"string\"\n\t\t\t\t\t? [currentMessage.image]\n\t\t\t\t\t: currentMessage.image;\n\t\t\tconst containerWidth = (() => {\n\t\t\t\tif (images.length === 0) return 0;\n\t\t\t\tif (images.length === 1) return IMAGE_SIZE_LARGE;\n\t\t\t\tif (images.length <= IMAGES_PER_ROW)\n\t\t\t\t\treturn (IMAGE_SIZE_SMALL + IMAGE_MARGIN) * images.length;\n\t\t\t\treturn (IMAGE_SIZE_SMALL + IMAGE_MARGIN) * IMAGES_PER_ROW;\n\t\t\t})();\n\t\t\treturn (\n\t\t\t\t<View\n\t\t\t\t\tstyle={[\n\t\t\t\t\t\tstyles.imagesContainer,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth: containerWidth,\n\t\t\t\t\t\t\tpaddingVertical: currentMessage.text ? 0 : 20,\n\t\t\t\t\t\t},\n\t\t\t\t\t]}\n\t\t\t\t>\n\t\t\t\t\t{images.map((img) => {\n\t\t\t\t\t\tconst thumb = getThumb300(img);\n\t\t\t\t\t\tif (isVideo(img)) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\t\tkey={thumb}\n\t\t\t\t\t\t\t\t\tonPress={this.toggleFullscreenVideo.bind(this, img)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ImageBackground\n\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\timages.length > 1\n\t\t\t\t\t\t\t\t\t\t\t\t? styles.messageImageSmall\n\t\t\t\t\t\t\t\t\t\t\t\t: styles.messageImageLarge\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsource={{ uri: thumb }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<View style={styles.imagePlayContainer}>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"play\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\t\t\t\ticonStyle={styles.imageControlIcon}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t</ImageBackground>\n\t\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\tkey={thumb}\n\t\t\t\t\t\t\t\tonPress={() => this.onPressImage(images, img)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\tsource={{ uri: thumb }}\n\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\timages.length > 1\n\t\t\t\t\t\t\t\t\t\t\t? styles.messageImageSmall\n\t\t\t\t\t\t\t\t\t\t\t: styles.messageImageLarge\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\t\tif (!_.isEmpty(currentMessage.attachments)) {\n\t\t\treturn (\n\t\t\t\t<View>\n\t\t\t\t\t{currentMessage.attachments.map((url, i) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Attachment\n\t\t\t\t\t\t\t\tonPress={() => {\n\t\t\t\t\t\t\t\t\tthis.onOpenAttachment(url);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\ttitle={getFileName(url)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\t\tif (currentMessage.event) {\n\t\t\treturn (\n\t\t\t\t<TouchableOpacity\n\t\t\t\t\tonPress={this.onPressEvent.bind(this, currentMessage.event)}\n\t\t\t\t>\n\t\t\t\t\t<View style={styles.eventContainer[position]}>\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tstyle={[styles.eventImage, styles.eventImageMargin[position]]}\n\t\t\t\t\t\t\tsource={{ uri: currentMessage.event.Thumbnail }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View style={styles.eventInfo}>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tnumberOfLines={3}\n\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\tstyles.eventTitle,\n\t\t\t\t\t\t\t\t\tstyles.eventInfoAlign[position],\n\t\t\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{currentMessage.event.Title}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\tstyles.eventDate,\n\t\t\t\t\t\t\t\t\tstyles.eventInfoAlign[position],\n\t\t\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{moment\n\t\t\t\t\t\t\t\t\t.utc(currentMessage.event.StartTime)\n\t\t\t\t\t\t\t\t\t.local()\n\t\t\t\t\t\t\t\t\t.format(\"ddd D MMM\")}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</TouchableOpacity>\n\t\t\t);\n\t\t}\n\t\tif (currentMessage.attachment) {\n\t\t\treturn (\n\t\t\t\t<TouchableOpacity\n\t\t\t\t\tonPress={this.onPressAttachment.bind(this, currentMessage.attachment)}\n\t\t\t\t>\n\t\t\t\t\t<View style={styles.eventContainer[position]}>\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tstyle={[styles.eventImage, styles.eventImageMargin[position]]}\n\t\t\t\t\t\t\tsource={{ uri: currentMessage.attachment.Thumbnail }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View style={styles.eventInfo}>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tnumberOfLines={3}\n\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\tstyles.eventTitle,\n\t\t\t\t\t\t\t\t\tstyles.eventInfoAlign[position],\n\t\t\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{currentMessage.attachment.Title}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t{currentMessage.attachment.StartTime && (\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\tstyles.eventDate,\n\t\t\t\t\t\t\t\t\t\tstyles.eventInfoAlign[position],\n\t\t\t\t\t\t\t\t\t\t{ color: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{moment\n\t\t\t\t\t\t\t\t\t\t.utc(currentMessage.attachment.StartTime)\n\t\t\t\t\t\t\t\t\t\t.local()\n\t\t\t\t\t\t\t\t\t\t.format(\"ddd D MMM\")}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</TouchableOpacity>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\n\trenderSend(props) {\n\t\tconst buttonTopOffset = this.state.replyingTo ? 46 : 4;\n\t\tconst showSendButton =\n\t\t\t!_.isEmpty(props.text) || this.hasImagesReady(props.imagesToUpload);\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={{\n\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\ttop: buttonTopOffset,\n\t\t\t\t\tright: 8,\n\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{/* Image upload button - always visible */}\n\t\t\t\t<TouchableOpacity\n\t\t\t\t\tonPress={this.showUploadMenu.bind(this)}\n\t\t\t\t\tstyle={[\n\t\t\t\t\t\tstyles.sendContainer,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tright:\n\t\t\t\t\t\t\t\t_.isEmpty(props.text) &&\n\t\t\t\t\t\t\t\t!this.hasImagesReady(props.imagesToUpload)\n\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t: this.MIN_COMPOSER_HEIGHT,\n\n\t\t\t\t\t\t\twidth: this.MIN_COMPOSER_HEIGHT,\n\t\t\t\t\t\t\theight: this.MIN_COMPOSER_HEIGHT,\n\t\t\t\t\t\t},\n\t\t\t\t\t]}\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname={\"picture-o\"}\n\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\ticonStyle={[styles.send, { width: this.MIN_COMPOSER_HEIGHT }]}\n\t\t\t\t\t/>\n\t\t\t\t</TouchableOpacity>\n\n\t\t\t\t{/* Send button - only visible when there's text or images */}\n\t\t\t\t{showSendButton && (\n\t\t\t\t\t<Send\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t\talwaysShowSend={true}\n\t\t\t\t\t\tonSend={props.onSend}\n\t\t\t\t\t\ttext={props.text || \" \"}\n\t\t\t\t\t\tcontainerStyle={[\n\t\t\t\t\t\t\tstyles.sendContainer,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\twidth: this.MIN_COMPOSER_HEIGHT,\n\t\t\t\t\t\t\t\theight: this.MIN_COMPOSER_HEIGHT,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tname={\"paper-plane\"}\n\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\ticonStyle={[styles.send, { width: this.MIN_COMPOSER_HEIGHT }]}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Send>\n\t\t\t\t)}\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderAccessory(props) {\n\t\tconst hasAttachment = this.hasImagesAttached(props.imagesToUpload);\n\t\tif (!hasAttachment) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<ScrollView horizontal style={styles.uploadImagesContainer}>\n\t\t\t\t{props.imagesToUpload.map((image) => {\n\t\t\t\t\tif (image.uploading) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ImageUploadProgress\n\t\t\t\t\t\t\t\tkey={image.uploadUri}\n\t\t\t\t\t\t\t\tuploader={this.imageUploader}\n\t\t\t\t\t\t\t\timage={image}\n\t\t\t\t\t\t\t\tcolor={this.props.colourBrandingMain}\n\t\t\t\t\t\t\t\tstyle={{ width: IMAGE_PREVIEW_SIZE, marginRight: 10 }}\n\t\t\t\t\t\t\t\tprogressTextStyle={{ fontSize: 10 }}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tconst isVideoUrl = isVideo(image.url);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<View key={image.url} style={styles.accessoryImageContainer}>\n\t\t\t\t\t\t\t<ImageBackground\n\t\t\t\t\t\t\t\tstyle={styles.accessoryImage}\n\t\t\t\t\t\t\t\timageStyle={styles.accessoryImageBorder}\n\t\t\t\t\t\t\t\tsource={getImageSource(\n\t\t\t\t\t\t\t\t\timage.thumbNailExists ? image.thumbNailUrl : image.url,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{isVideoUrl && (\n\t\t\t\t\t\t\t\t\t<View style={styles.imagePlayContainer}>\n\t\t\t\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\t\t\t\tonPress={this.toggleFullscreenVideo.bind(this, image.url)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"play\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\t\t\t\ticonStyle={styles.imageControlIcon}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</ImageBackground>\n\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\tstyle={styles.previewItemRemoveButton}\n\t\t\t\t\t\t\t\tonPress={() => this.onRemoveImage(image.url)}\n\t\t\t\t\t\t\t\thitSlop={{ top: 8, right: 8, bottom: 8, left: 8 }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\tstyles.previewItemRemoveContainer,\n\t\t\t\t\t\t\t\t\t\t{ backgroundColor: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tname=\"times\"\n\t\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\t\ticonStyle={styles.previewItemRemoveIcon}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ScrollView>\n\t\t);\n\t}\n\n\trenderInputToolbar(props) {\n\t\tconst hasAttachment = this.hasImagesAttached(props.imagesToUpload);\n\t\treturn (\n\t\t\t<InputToolbar\n\t\t\t\t{...props}\n\t\t\t\tcontainerStyle={styles.inputContainer}\n\t\t\t\trenderComposer={this.renderComposer.bind(this)}\n\t\t\t\trenderAccessory={hasAttachment ? this.renderAccessory.bind(this) : null}\n\t\t\t\taccessoryStyle={hasAttachment && styles.accessory}\n\t\t\t/>\n\t\t);\n\t}\n\trenderFooter() {\n\t\t// if (this.state.keyboardOpen) {\n\t\t// return null;\n\t\t// }\n\t\t// fixes an issue where there's no gap between bottom message and reply container\n\t\treturn <View style={{ height: 10 }} />;\n\t}\n\trenderLoading() {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={{\n\t\t\t\t\tmarginTop: 15,\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\talignContent: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Spinner size={\"small\"} color={this.props.colourBrandingMain} />\n\t\t\t</View>\n\t\t);\n\t}\n\trenderAvatar(props) {\n\t\treturn (\n\t\t\t<View style={{ marginRight: 2 }}>\n\t\t\t\t<ProfilePic\n\t\t\t\t\tProfilePic={props.currentMessage.user.avatar}\n\t\t\t\t\tDiameter={28}\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\trenderComposer(props) {\n\t\treturn (\n\t\t\t<View style={{ width: \"100%\" }}>\n\t\t\t\t{/* Replying to section - stacked vertically on top */}\n\t\t\t\t{this.state.replyingTo && (\n\t\t\t\t\t<View style={styles.replyingTo}>\n\t\t\t\t\t\t<Text type=\"body\">\n\t\t\t\t\t\t\tReplying to{\" \"}\n\t\t\t\t\t\t\t{_.isEmpty(this.state.replyingTo?.user?.name)\n\t\t\t\t\t\t\t\t? \"message\"\n\t\t\t\t\t\t\t\t: this.state.replyingTo?.user?.name}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\tstyle={styles.replyingRemoveButton}\n\t\t\t\t\t\t\tonPress={() => this.onReply(null)}\n\t\t\t\t\t\t\thitSlop={{ top: 8, right: 8, bottom: 8, left: 8 }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\tstyles.replyingRemoveContainer,\n\t\t\t\t\t\t\t\t\t{ backgroundColor: this.props.colourBrandingMain },\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tname=\"times\"\n\t\t\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\t\t\ticonStyle={styles.replyingRemoveIcon}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t</View>\n\t\t\t\t)}\n\t\t\t\t{/* Horizontal row for input - buttons are absolutely positioned via renderSend */}\n\t\t\t\t<View\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\tpaddingBottom: 8,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\tstyles.input,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\t\t\tmarginRight:\n\t\t\t\t\t\t\t\t\t_.isEmpty(props.text) &&\n\t\t\t\t\t\t\t\t\t!this.hasImagesReady(props.imagesToUpload)\n\t\t\t\t\t\t\t\t\t\t? 16 + this.MIN_COMPOSER_HEIGHT\n\t\t\t\t\t\t\t\t\t\t: 2 * (this.MIN_COMPOSER_HEIGHT + 8),\n\t\t\t\t\t\t\t\tpaddingHorizontal: 12,\n\t\t\t\t\t\t\t\tpaddingVertical: Platform.select({ ios: 8, android: 6 }),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextInput\n\t\t\t\t\t\t\tmaxFontSizeMultiplier={1.2}\n\t\t\t\t\t\t\tplaceholder=\"Type a message...\"\n\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\tvalue={props.text}\n\t\t\t\t\t\t\tonChangeText={props.onTextChanged}\n\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\tstyles.inputText,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlineHeight: 20,\n\t\t\t\t\t\t\t\t\tminHeight: this.MIN_COMPOSER_HEIGHT - 16,\n\t\t\t\t\t\t\t\t\tmaxHeight: 100,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\tonFocus={this.onFocusInput.bind(this)}\n\t\t\t\t\t\t\tonBlur={this.onBlurInput.bind(this)}\n\t\t\t\t\t\t\tplaceholderTextColor=\"#999\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</View>\n\t\t);\n\t}\n\n\t/***\n\t * Main Render\n\t */\n\trenderChat() {\n\t\tconst minInputToolbarHeight =\n\t\t\tthis.MIN_COMPOSER_HEIGHT +\n\t\t\t32 +\n\t\t\t(this.state.replyingTo ? 38 : 0) +\n\t\t\t(this.hasImagesAttached() ? IMAGE_PREVIEW_AREA_HEIGHT : 0);\n\n\t\treturn (\n\t\t\t<GiftedChat\n\t\t\t\tisKeyboardInternallyHandled={false}\n\t\t\t\talwaysShowSend={false}\n\t\t\t\tkeyboardShouldPersistTaps={\"never\"}\n\t\t\t\trenderAvatarOnTop\n\t\t\t\tminInputToolbarHeight={minInputToolbarHeight}\n\t\t\t\tminComposerHeight={this.MIN_COMPOSER_HEIGHT}\n\t\t\t\tbottomOffset={0}\n\t\t\t\tonSend={this.sendMessages.bind(this)}\n\t\t\t\tmessages={this.state.messages}\n\t\t\t\tuser={this.state.currentUser}\n\t\t\t\trenderBubble={this.renderBubble.bind(this)}\n\t\t\t\trenderMessage={this.renderMessage.bind(this)}\n\t\t\t\trenderMessageText={this.renderMessageText.bind(this)}\n\t\t\t\trenderTime={this.renderTime.bind(this)}\n\t\t\t\trenderDay={this.renderDay.bind(this)}\n\t\t\t\trenderCustomView={this.renderCustomView.bind(this)}\n\t\t\t\trenderSend={this.renderSend.bind(this)}\n\t\t\t\trenderInputToolbar={this.renderInputToolbar.bind(this)}\n\t\t\t\trenderFooter={this.renderFooter.bind(this)}\n\t\t\t\trenderLoading={this.renderLoading.bind(this)}\n\t\t\t\trenderAvatar={this.renderAvatar.bind(this)}\n\t\t\t\timagesToUpload={this.state.imagesToUpload}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderImageUploader() {\n\t\treturn (\n\t\t\t<ImageUploader\n\t\t\t\tref={(ref) => (this.imageUploader = ref)}\n\t\t\t\tonUploadStarted={this.onUploadStarted}\n\t\t\t\tonUploadProgress={this.onUploadProgress}\n\t\t\t\tonUploadSuccess={this.onUploadSuccess}\n\t\t\t\tonUploadFailed={this.onUploadFailed}\n\t\t\t\tonLibrarySelected={this.onLibrarySelected}\n\t\t\t\tquality={0.8}\n\t\t\t\tallowsEditing={false}\n\t\t\t\tfileName={\"imageInput\"}\n\t\t\t\tpopupTitle={\"Add Image\"}\n\t\t\t\tuserId={this.props.user.uid}\n\t\t\t\tmultiple\n\t\t\t\tallowVideo\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderImagePopup() {\n\t\tconst { imagePopupOpen, imagePopupSource, imagePopupIndex } = this.state;\n\t\treturn (\n\t\t\t<ImagePopup\n\t\t\t\tvisible={imagePopupOpen}\n\t\t\t\timages={imagePopupSource}\n\t\t\t\tindex={imagePopupIndex}\n\t\t\t\tonClose={this.closeGallery.bind(this)}\n\t\t\t/>\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\trenderPDF() {\n\t\tif (_.isEmpty(this.state.selectedPDF)) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<PDFPopup\n\t\t\t\tsource={this.state.selectedPDF}\n\t\t\t\tonClose={this.onCloseAttachment}\n\t\t\t\ttitle={getFileName(this.state.selectedPDF)}\n\t\t\t\tpdfCount={1}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderDeleteConfirmPopup() {\n\t\treturn (\n\t\t\t<ConfirmPopup\n\t\t\t\tvisible={this.state.showDeleteMessageConfirm}\n\t\t\t\tonConfirm={this.onConfirmDeleteMessage}\n\t\t\t\tonCancel={this.onCancelDeleteMessage}\n\t\t\t\ttext=\"Are you sure you want to delete this message?\"\n\t\t\t\tyesText=\"Delete\"\n\t\t\t\tnoText=\"Cancel\"\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<KeyboardAvoidingView behavior=\"padding\" style={styles.chatContainer}>\n\t\t\t\t{this.renderChat()}\n\t\t\t\t{this.renderImageUploader()}\n\t\t\t\t{this.renderImagePopup()}\n\t\t\t\t{this.renderVideoPlayerPopup()}\n\t\t\t\t{this.renderPDF()}\n\t\t\t\t{this.renderDeleteConfirmPopup()}\n\t\t\t</KeyboardAvoidingView>\n\t\t);\n\t}\n}\n\nconst styles = {\n\tchatContainer: {\n\t\tflex: 1,\n\t\tjustifyContent: \"center\",\n\t},\n\teventContainer: {\n\t\tleft: {\n\t\t\tpaddingTop: 5,\n\t\t\tpaddingLeft: 15,\n\t\t\tpaddingRight: 15,\n\t\t\tpaddingBottom: 5,\n\t\t\tflexDirection: \"row\",\n\t\t},\n\t\tright: {\n\t\t\tpaddingTop: 5,\n\t\t\tpaddingLeft: 15,\n\t\t\tpaddingRight: 15,\n\t\t\tpaddingBottom: 5,\n\t\t\tflexDirection: \"row-reverse\",\n\t\t},\n\t},\n\teventImage: {\n\t\twidth: 80,\n\t\theight: 80,\n\t\tresizeMode: \"cover\",\n\t\tborderRadius: 2,\n\t},\n\teventImageMargin: {\n\t\tright: {\n\t\t\tmarginLeft: 15,\n\t\t},\n\t\tleft: {\n\t\t\tmarginRight: 15,\n\t\t},\n\t},\n\teventInfo: {\n\t\tminHeight: 80,\n\t\twidth: 150,\n\t},\n\teventTitle: {\n\t\tfontSize: 12,\n\t\tfontFamily: \"sf-bold\",\n\t\tbackgroundColor: \"rgba(255,255,255,0)\",\n\t},\n\teventInfoAlign: {\n\t\tleft: {\n\t\t\ttextAlign: \"left\",\n\t\t},\n\t\tright: {\n\t\t\ttextAlign: \"right\",\n\t\t},\n\t},\n\tmessageImageLarge: {\n\t\twidth: IMAGE_SIZE_LARGE,\n\t\theight: IMAGE_SIZE_LARGE,\n\t\tborderRadius: 2,\n\t\talignSelf: \"center\",\n\t},\n\tmessageImageSmall: {\n\t\twidth: IMAGE_SIZE_SMALL,\n\t\theight: IMAGE_SIZE_SMALL,\n\t\tborderRadius: 2,\n\t\talignSelf: \"center\",\n\t\tmarginRight: IMAGE_MARGIN,\n\t\tmarginBottom: IMAGE_MARGIN,\n\t},\n\teventDate: {\n\t\tfontSize: 12,\n\t\tfontFamily: \"sf-regular\",\n\t\tbackgroundColor: \"rgba(255,255,255,0)\",\n\t},\n\tinputContainer: {\n\t\tbackgroundColor: \"#fff\",\n\t\tpaddingVertical: 8,\n\t\tpaddingHorizontal: 8,\n\t},\n\tinputText: {\n\t\tcolor: TEXT_DARKEST,\n\t\tfontSize: 14,\n\t\tfontFamily: \"sf-medium\",\n\t},\n\tinput: {\n\t\tmargin: 0,\n\t\tbackgroundColor: BG_GREY,\n\t\tborderRadius: 5,\n\t\tflex: 1,\n\t},\n\tcomposerContainer: {\n\t\tflex: 1,\n\t},\n\tcomposerInputWrapper: {\n\t\tflex: 1,\n\t\tflexDirection: \"row\",\n\t},\n\treplyingTo: {\n\t\tminHeight: 30,\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\tborderBottomWidth: 1,\n\t\tborderBottomColor: LINEGREY,\n\t\tmarginBottom: 8,\n\t},\n\treplyingRemoveButton: {\n\t\tmarginLeft: 10,\n\t},\n\treplyingRemoveContainer: {\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 10,\n\t\twidth: 20,\n\t\theight: 20,\n\t\tborderWidth: 2,\n\t\tborderColor: \"#fff\",\n\t},\n\treplyingRemoveIcon: {\n\t\tfontSize: 10,\n\t\tcolor: \"#fff\",\n\t\tmarginBottom: 1,\n\t},\n\tsendContainer: {\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tright: 0,\n\t\theight: 30,\n\t\twidth: 30,\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\tbackgroundColor: \"#fff\",\n\t},\n\tsend: {\n\t\tfontSize: 15,\n\t\tcolor: TEXT_BLUEGREY,\n\t\tfontSize: 24,\n\t\ttextAlign: \"center\",\n\t},\n\taccessory: {\n\t\theight: IMAGE_PREVIEW_AREA_HEIGHT,\n\t\tborderTopWidth: 1,\n\t\tborderTopColor: LINEGREY,\n\t\tpaddingTop: 8,\n\t\tmarginTop: 8,\n\t},\n\taccessoryImageContainer: {\n\t\tpaddingRight: 8,\n\t\tpaddingTop: 8,\n\t\tmarginRight: 5,\n\t},\n\taccessoryImage: {\n\t\twidth: IMAGE_PREVIEW_SIZE,\n\t\theight: IMAGE_PREVIEW_SIZE,\n\t},\n\taccessoryImageBorder: {\n\t\tborderRadius: 2,\n\t},\n\tsettingDropDownOpen: {\n\t\theight: \"auto\",\n\t},\n\timagesContainer: {\n\t\tmarginLeft: 10,\n\t\tmarginRight: 10,\n\t\tflexDirection: \"row\",\n\t\tflexWrap: \"wrap\",\n\t},\n\tuploadImagesContainer: {\n\t\tflexDirection: \"row\",\n\t\toverflow: \"visible\",\n\t},\n\tpreviewItemRemoveButton: {\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tright: 0,\n\t},\n\tpreviewItemRemoveContainer: {\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tborderRadius: 10,\n\t\twidth: 20,\n\t\theight: 20,\n\t\tborderWidth: 2,\n\t\tborderColor: \"#fff\",\n\t},\n\tpreviewItemRemoveIcon: {\n\t\tfontSize: 10,\n\t\tcolor: \"#fff\",\n\t\tmarginBottom: 1,\n\t},\n\timagePlayContainer: {\n\t\tposition: \"absolute\",\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbottom: 0,\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t},\n\timageControlIcon: {\n\t\tcolor: \"#fff\",\n\t\tfontSize: 20,\n\t\ttextShadowColor: \"rgba(0,0,0,0.3)\",\n\t\ttextShadowOffset: { width: 2, height: 2 },\n\t},\n};\n\nconst mapStateToProps = (state) => {\n\treturn {\n\t\tuser: state.user,\n\t\tcolourBrandingMain: getMainBrandingColourFromState(state),\n\t\tcolourBrandingLight: getLightBrandingColourFromState(state),\n\t\ttabCount: getEnabledTabsFromState(state).length,\n\t};\n};\n\nexport default connect(mapStateToProps, {})(PlussChat);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","_","TouchableOpacity","StyleSheet","View","Alert","Text","Icon","File","Paths","Sharing","MediaLibrary","StatusBarHeight","isVideo","getMimeType","MiddlePopup","Config","SharingTools","constructor","props","_defineProperty","_parts$","remoteUrl","uri","Error","parts","split","splice","mediaId","extension","file","downloadFileAsync","cache","idempotent","localUrl","status","requestPermissionsAsync","alert","text","setState","message","downloadMedia","saveToLibraryAsync","setTimeout","error","console","log","isAvailableAsync","video","mimeType","fileDetails","shareOptions","dialogTitle","UTI","shareAsync","state","renderTools","createElement","style","styles","toolsContainer","env","allowMediaDownload","onPress","onSave","activeOpacity","name","type","iconStyle","toolIcon","toolIconContainer","allowMediaSharing","onShare","renderMessage","visible","isEmpty","messageContainer","messageText","render","container","create","position","flexDirection","justifyContent","left","zIndex","top","width","height","fontSize","padding","textAlign","color","backgroundColor","borderRadius","paddingVertical","paddingHorizontal","fontFamily"],"sources":["SharingTools.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport _ from \"lodash\";\nimport { TouchableOpacity, StyleSheet, View, Alert } from \"react-native\";\nimport { Text } from \"./Text\";\nimport { Icon } from \"@rneui/themed\";\nimport { File, Paths } from \"expo-file-system\";\nimport * as Sharing from \"expo-sharing\";\nimport * as MediaLibrary from \"expo-media-library\";\nimport { StatusBarHeight, isVideo, getMimeType } from \"../helper\";\nimport { MiddlePopup } from \"./MiddlePopup\";\nimport Config from \"../config\";\n\nclass SharingTools extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n message: \"\",\n };\n }\n\n downloadMedia = async () => {\n const remoteUrl = this.props.uri;\n if (!remoteUrl) {\n throw new Error(\"No media URL provided\");\n }\n\n const parts = remoteUrl.split(\"/\").splice(-2);\n const mediaId = parts[0];\n const extension = parts[1]?.split(\".\").splice(-1)[0] || \"jpg\";\n\n const file = await File.downloadFileAsync(\n remoteUrl,\n new File(Paths.cache, `${mediaId}.${extension}`),\n { idempotent: true },\n );\n return { localUrl: file.uri, extension };\n };\n\n onSave = async () => {\n try {\n // Request permissions first\n const { status } = await MediaLibrary.requestPermissionsAsync();\n if (status !== \"granted\") {\n Alert.alert(\n \"Permission Required\",\n \"Please allow access to your photo library to save photos.\",\n [{ text: \"OK\" }],\n );\n return;\n }\n\n this.setState({ message: \"Saving...\" });\n\n const { localUrl } = await this.downloadMedia();\n await MediaLibrary.saveToLibraryAsync(localUrl);\n\n this.setState({ message: \"Saved\" }, () => {\n setTimeout(() => {\n this.setState({ message: \"\" });\n }, 2000);\n });\n } catch (error) {\n console.log(\"SharingTools onSave error:\", error);\n this.setState({ message: \"\" });\n Alert.alert(\"Save Failed\", \"Unable to save photo. Please try again.\", [\n { text: \"OK\" },\n ]);\n }\n };\n\n onShare = async () => {\n if (!(await Sharing.isAvailableAsync())) {\n Alert.alert(\n \"Sharing Unavailable\",\n \"Sharing is not available on this device.\",\n [{ text: \"OK\" }],\n );\n return;\n }\n\n try {\n this.setState({ message: \"Preparing...\" });\n\n const { localUrl, extension } = await this.downloadMedia();\n\n const video = isVideo(localUrl);\n const mimeType = getMimeType(localUrl);\n const fileDetails = {\n extension: `.${extension}`,\n shareOptions: {\n mimeType,\n dialogTitle: video ? \"Share video\" : \"Share photo\",\n UTI: mimeType,\n },\n };\n\n await Sharing.shareAsync(localUrl, fileDetails.shareOptions);\n this.setState({ message: \"\" });\n } catch (error) {\n console.log(\"SharingTools onShare error:\", error);\n this.setState({ message: \"\" });\n Alert.alert(\"Share Failed\", \"Unable to share photo. Please try again.\", [\n { text: \"OK\" },\n ]);\n }\n };\n\n renderTools() {\n return (\n <View style={styles.toolsContainer}>\n {Config.env.allowMediaDownload && (\n <TouchableOpacity onPress={this.onSave} activeOpacity={0.6}>\n <Icon\n name=\"download\"\n type=\"font-awesome\"\n iconStyle={styles.toolIcon}\n style={styles.toolIconContainer}\n />\n </TouchableOpacity>\n )}\n {Config.env.allowMediaSharing && (\n <TouchableOpacity onPress={this.onShare} activeOpacity={0.6}>\n <Icon\n name=\"share-square-o\"\n type=\"font-awesome\"\n iconStyle={styles.toolIcon}\n style={styles.toolIconContainer}\n />\n </TouchableOpacity>\n )}\n </View>\n );\n }\n\n renderMessage() {\n return (\n <MiddlePopup visible={!_.isEmpty(this.state.message)}>\n <View style={styles.messageContainer}>\n <Text style={styles.messageText}>{this.state.message}</Text>\n </View>\n </MiddlePopup>\n );\n }\n\n render() {\n return (\n <View style={styles.container}>\n {this.renderTools()}\n {this.renderMessage()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n position: \"absolute\",\n },\n toolsContainer: {\n position: \"absolute\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n left: 0,\n zIndex: 3,\n top: StatusBarHeight(0),\n },\n toolIconContainer: {\n width: 55,\n height: 55,\n },\n toolIcon: {\n fontSize: 25,\n padding: 15,\n width: 55,\n textAlign: \"center\",\n color: \"#fff\",\n zIndex: 3,\n },\n messageContainer: {\n backgroundColor: \"#000\",\n borderRadius: 10,\n paddingVertical: 10,\n paddingHorizontal: 30,\n },\n messageText: {\n fontFamily: \"sf-bold\",\n fontSize: 24,\n color: \"#fff\",\n },\n});\n\nexport { SharingTools };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Component","_","TouchableOpacity","StyleSheet","View","Alert","Text","Icon","File","Paths","Sharing","MediaLibrary","StatusBarHeight","isVideo","getMimeType","MiddlePopup","Config","SharingTools","constructor","props","_defineProperty","_parts$","remoteUrl","uri","Error","parts","split","splice","mediaId","extension","file","downloadFileAsync","cache","idempotent","localUrl","status","requestPermissionsAsync","alert","text","setState","message","downloadMedia","saveToLibraryAsync","setTimeout","error","console","log","isAvailableAsync","video","mimeType","fileDetails","shareOptions","dialogTitle","UTI","shareAsync","state","renderTools","createElement","style","styles","toolsContainer","env","allowMediaDownload","onPress","onSave","activeOpacity","name","type","iconStyle","toolIcon","toolIconContainer","allowMediaSharing","onShare","renderMessage","visible","isEmpty","messageContainer","messageText","render","container","create","position","flexDirection","justifyContent","left","zIndex","top","width","height","fontSize","padding","textAlign","color","backgroundColor","borderRadius","paddingVertical","paddingHorizontal","fontFamily"],"sources":["SharingTools.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport _ from \"lodash\";\nimport { TouchableOpacity, StyleSheet, View, Alert } from \"react-native\";\nimport { Text } from \"./Text\";\nimport { Icon } from \"@rneui/themed\";\nimport { File, Paths } from \"expo-file-system\";\nimport * as Sharing from \"expo-sharing\";\nimport * as MediaLibrary from \"expo-media-library\";\nimport { StatusBarHeight, isVideo, getMimeType } from \"../helper\";\nimport { MiddlePopup } from \"./MiddlePopup\";\nimport Config from \"../config\";\n\nclass SharingTools extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tmessage: \"\",\n\t\t};\n\t}\n\n\tdownloadMedia = async () => {\n\t\tconst remoteUrl = this.props.uri;\n\t\tif (!remoteUrl) {\n\t\t\tthrow new Error(\"No media URL provided\");\n\t\t}\n\n\t\tconst parts = remoteUrl.split(\"/\").splice(-2);\n\t\tconst mediaId = parts[0];\n\t\tconst extension = parts[1]?.split(\".\").splice(-1)[0] || \"jpg\";\n\n\t\tconst file = await File.downloadFileAsync(\n\t\t\tremoteUrl,\n\t\t\tnew File(Paths.cache, `${mediaId}.${extension}`),\n\t\t\t{ idempotent: true },\n\t\t);\n\t\treturn { localUrl: file.uri, extension };\n\t};\n\n\tonSave = async () => {\n\t\ttry {\n\t\t\t// Request permissions first\n\t\t\tconst { status } = await MediaLibrary.requestPermissionsAsync();\n\t\t\tif (status !== \"granted\") {\n\t\t\t\tAlert.alert(\n\t\t\t\t\t\"Permission Required\",\n\t\t\t\t\t\"Please allow access to your photo library to save photos.\",\n\t\t\t\t\t[{ text: \"OK\" }],\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.setState({ message: \"Saving...\" });\n\n\t\t\tconst { localUrl } = await this.downloadMedia();\n\t\t\tawait MediaLibrary.saveToLibraryAsync(localUrl);\n\n\t\t\tthis.setState({ message: \"Saved\" }, () => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.setState({ message: \"\" });\n\t\t\t\t}, 2000);\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.log(\"SharingTools onSave error:\", error);\n\t\t\tthis.setState({ message: \"\" });\n\t\t\tAlert.alert(\"Save Failed\", \"Unable to save photo. Please try again.\", [\n\t\t\t\t{ text: \"OK\" },\n\t\t\t]);\n\t\t}\n\t};\n\n\tonShare = async () => {\n\t\tif (!(await Sharing.isAvailableAsync())) {\n\t\t\tAlert.alert(\n\t\t\t\t\"Sharing Unavailable\",\n\t\t\t\t\"Sharing is not available on this device.\",\n\t\t\t\t[{ text: \"OK\" }],\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tthis.setState({ message: \"Preparing...\" });\n\n\t\t\tconst { localUrl, extension } = await this.downloadMedia();\n\n\t\t\tconst video = isVideo(localUrl);\n\t\t\tconst mimeType = getMimeType(localUrl);\n\t\t\tconst fileDetails = {\n\t\t\t\textension: `.${extension}`,\n\t\t\t\tshareOptions: {\n\t\t\t\t\tmimeType,\n\t\t\t\t\tdialogTitle: video ? \"Share video\" : \"Share photo\",\n\t\t\t\t\tUTI: mimeType,\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tawait Sharing.shareAsync(localUrl, fileDetails.shareOptions);\n\t\t\tthis.setState({ message: \"\" });\n\t\t} catch (error) {\n\t\t\tconsole.log(\"SharingTools onShare error:\", error);\n\t\t\tthis.setState({ message: \"\" });\n\t\t\tAlert.alert(\"Share Failed\", \"Unable to share photo. Please try again.\", [\n\t\t\t\t{ text: \"OK\" },\n\t\t\t]);\n\t\t}\n\t};\n\n\trenderTools() {\n\t\treturn (\n\t\t\t<View style={styles.toolsContainer}>\n\t\t\t\t{Config.env.allowMediaDownload && (\n\t\t\t\t\t<TouchableOpacity onPress={this.onSave} activeOpacity={0.6}>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tname=\"download\"\n\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\ticonStyle={styles.toolIcon}\n\t\t\t\t\t\t\tstyle={styles.toolIconContainer}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t)}\n\t\t\t\t{Config.env.allowMediaSharing && (\n\t\t\t\t\t<TouchableOpacity onPress={this.onShare} activeOpacity={0.6}>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tname=\"share-square-o\"\n\t\t\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\t\t\ticonStyle={styles.toolIcon}\n\t\t\t\t\t\t\tstyle={styles.toolIconContainer}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t)}\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderMessage() {\n\t\treturn (\n\t\t\t<MiddlePopup visible={!_.isEmpty(this.state.message)}>\n\t\t\t\t<View style={styles.messageContainer}>\n\t\t\t\t\t<Text style={styles.messageText}>{this.state.message}</Text>\n\t\t\t\t</View>\n\t\t\t</MiddlePopup>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<View style={styles.container}>\n\t\t\t\t{this.renderTools()}\n\t\t\t\t{this.renderMessage()}\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nconst styles = StyleSheet.create({\n\tcontainer: {\n\t\tposition: \"absolute\",\n\t},\n\ttoolsContainer: {\n\t\tposition: \"absolute\",\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t\tleft: 0,\n\t\tzIndex: 3,\n\t\ttop: StatusBarHeight(0),\n\t},\n\ttoolIconContainer: {\n\t\twidth: 55,\n\t\theight: 55,\n\t},\n\ttoolIcon: {\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\tmessageContainer: {\n\t\tbackgroundColor: \"#000\",\n\t\tborderRadius: 10,\n\t\tpaddingVertical: 10,\n\t\tpaddingHorizontal: 30,\n\t},\n\tmessageText: {\n\t\tfontFamily: \"sf-bold\",\n\t\tfontSize: 24,\n\t\tcolor: \"#fff\",\n\t},\n});\n\nexport { SharingTools };\n"],"mappings":"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","ignoreList":[]}
|