@plusscommunities/pluss-core-app 1.6.4 → 1.6.7-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module/components/Attachment.js +1 -1
- package/dist/module/components/Attachment.js.map +1 -1
- package/dist/module/components/AudienceSelectorPage.js +1 -1
- package/dist/module/components/AudienceSelectorPage.js.map +1 -1
- package/dist/module/components/CommentReply.js +1 -1
- package/dist/module/components/CommentReply.js.map +1 -1
- package/dist/module/components/CommentSection.js +1 -1
- package/dist/module/components/CommentSection.js.map +1 -1
- package/dist/module/components/DropDownItem.js +1 -1
- package/dist/module/components/DropDownItem.js.map +1 -1
- package/dist/module/components/FormCardSectionOptionLauncher.js +1 -1
- package/dist/module/components/FormCardSectionOptionLauncher.js.map +1 -1
- package/dist/module/components/GenericInput.js +1 -1
- package/dist/module/components/GenericInput.js.map +1 -1
- package/dist/module/components/GenericInputSection.js +1 -1
- package/dist/module/components/GenericInputSection.js.map +1 -1
- package/dist/module/components/Header.js +1 -1
- package/dist/module/components/Header.js.map +1 -1
- package/dist/module/components/ImagePopup.js +1 -1
- package/dist/module/components/ImagePopup.js.map +1 -1
- package/dist/module/components/ImageUploader.js +1 -1
- package/dist/module/components/ImageUploader.js.map +1 -1
- package/dist/module/components/PDFPopup.js +1 -1
- package/dist/module/components/PDFPopup.js.map +1 -1
- package/dist/module/components/PlussChat.js +1 -1
- package/dist/module/components/PlussChat.js.map +1 -1
- package/dist/module/components/PositionedImage.js +1 -1
- package/dist/module/components/PositionedImage.js.map +1 -1
- package/dist/module/components/SharingTools.js +1 -1
- package/dist/module/components/SharingTools.js.map +1 -1
- package/dist/module/components/expo-image-picker-multiple/ImageTile.js +1 -1
- package/dist/module/components/expo-image-picker-multiple/ImageTile.js.map +1 -1
- package/package.json +18 -17
- package/src/components/Attachment.js +1 -1
- package/src/components/AudienceSelectorPage.js +1 -1
- package/src/components/CommentReply.js +1 -1
- package/src/components/CommentSection.js +1 -1
- package/src/components/DropDownItem.js +1 -1
- package/src/components/FormCardSectionOptionLauncher.js +1 -1
- package/src/components/GenericInput.js +1 -1
- package/src/components/GenericInputSection.js +1 -1
- package/src/components/Header.js +1 -1
- package/src/components/ImagePopup.js +1 -1
- package/src/components/ImageUploader.js +1 -1
- package/src/components/PDFPopup.js +1 -1
- package/src/components/PlussChat.js +1 -1
- package/src/components/PositionedImage.js +1 -1
- package/src/components/SharingTools.js +1 -1
- package/src/components/expo-image-picker-multiple/ImageTile.js +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { PureComponent } from 'react';
|
|
2
2
|
import { TouchableOpacity, View, Text } from 'react-native';
|
|
3
3
|
import { connect } from 'react-redux';
|
|
4
|
-
import { Icon } from '
|
|
4
|
+
import { Icon } from '@rneui/themed';
|
|
5
5
|
import { getLightBrandingColourFromState, getMainBrandingColourFromState } from '../colours';
|
|
6
6
|
|
|
7
7
|
class Attachment extends PureComponent {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Attachment.js"],"names":["React","PureComponent","TouchableOpacity","View","Text","connect","Icon","getLightBrandingColourFromState","getMainBrandingColourFromState","Attachment","render","props","key","onPress","styles","pdfAttachment","backgroundColor","colourBrandingLight","pdfAttachmentIcon","color","colourBrandingMain","pdfAttachmentText","title","padding","flexDirection","borderRadius","marginTop","alignItems","alignSelf","fontSize","marginRight","fontFamily","mapStateToProps","state","attachment"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAqC,OAArC;AACA,SAASC,gBAAT,EAA2BC,IAA3B,EAAiCC,IAAjC,QAA6C,cAA7C;AACA,SAASC,OAAT,QAAwB,aAAxB;AACA,SAASC,IAAT,QAAqB,
|
|
1
|
+
{"version":3,"sources":["Attachment.js"],"names":["React","PureComponent","TouchableOpacity","View","Text","connect","Icon","getLightBrandingColourFromState","getMainBrandingColourFromState","Attachment","render","props","key","onPress","styles","pdfAttachment","backgroundColor","colourBrandingLight","pdfAttachmentIcon","color","colourBrandingMain","pdfAttachmentText","title","padding","flexDirection","borderRadius","marginTop","alignItems","alignSelf","fontSize","marginRight","fontFamily","mapStateToProps","state","attachment"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAqC,OAArC;AACA,SAASC,gBAAT,EAA2BC,IAA3B,EAAiCC,IAAjC,QAA6C,cAA7C;AACA,SAASC,OAAT,QAAwB,aAAxB;AACA,SAASC,IAAT,QAAqB,eAArB;AACA,SAASC,+BAAT,EAA0CC,8BAA1C,QAAgF,YAAhF;;AAEA,MAAMC,UAAN,SAAyBR,aAAzB,CAAuC;AACrCS,EAAAA,MAAM,GAAG;AACP,wBACE,oBAAC,gBAAD;AAAkB,MAAA,GAAG,EAAE,KAAKC,KAAL,CAAWC,GAAlC;AAAuC,MAAA,OAAO,EAAE,KAAKD,KAAL,CAAWE;AAA3D,oBACE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE,CAACC,MAAM,CAACC,aAAR,EAAuB;AAAEC,QAAAA,eAAe,EAAE,KAAKL,KAAL,CAAWM;AAA9B,OAAvB;AAAb,oBACE,oBAAC,IAAD;AAAM,MAAA,IAAI,EAAC,WAAX;AAAuB,MAAA,IAAI,EAAC,cAA5B;AAA2C,MAAA,SAAS,EAAE,CAACH,MAAM,CAACI,iBAAR,EAA2B;AAAEC,QAAAA,KAAK,EAAE,KAAKR,KAAL,CAAWS;AAApB,OAA3B;AAAtD,MADF,eAEE,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE,CAACN,MAAM,CAACO,iBAAR,EAA2B;AAAEF,QAAAA,KAAK,EAAE,KAAKR,KAAL,CAAWS;AAApB,OAA3B;AAAb,OAAoF,KAAKT,KAAL,CAAWW,KAA/F,CAFF,CADF,CADF;AAQD;;AAVoC;;AAavC,MAAMR,MAAM,GAAG;AACbC,EAAAA,aAAa,EAAE;AACbQ,IAAAA,OAAO,EAAE,CADI;AAEbC,IAAAA,aAAa,EAAE,KAFF;AAGbC,IAAAA,YAAY,EAAE,CAHD;AAIbC,IAAAA,SAAS,EAAE,CAJE;AAKbC,IAAAA,UAAU,EAAE,QALC;AAMbC,IAAAA,SAAS,EAAE;AANE,GADF;AASbV,EAAAA,iBAAiB,EAAE;AACjBW,IAAAA,QAAQ,EAAE,EADO;AAEjBC,IAAAA,WAAW,EAAE;AAFI,GATN;AAabT,EAAAA,iBAAiB,EAAE;AACjBU,IAAAA,UAAU,EAAE,aADK;AAEjBF,IAAAA,QAAQ,EAAE;AAFO;AAbN,CAAf;;AAmBA,MAAMG,eAAe,GAAGC,KAAK,IAAI;AAC/B,SAAO;AACLb,IAAAA,kBAAkB,EAAEZ,8BAA8B,CAACyB,KAAD,CAD7C;AAELhB,IAAAA,mBAAmB,EAAEV,+BAA+B,CAAC0B,KAAD;AAF/C,GAAP;AAID,CALD;;AAOA,MAAMC,UAAU,GAAG7B,OAAO,CAAC2B,eAAD,EAAkB,EAAlB,CAAP,CAA6BvB,UAA7B,CAAnB;AACA,SAASyB,UAAU,IAAIzB,UAAvB","sourcesContent":["import React, { PureComponent } from 'react';\nimport { TouchableOpacity, View, Text } from 'react-native';\nimport { connect } from 'react-redux';\nimport { Icon } from '@rneui/themed';\nimport { getLightBrandingColourFromState, getMainBrandingColourFromState } from '../colours';\n\nclass Attachment extends PureComponent {\n render() {\n return (\n <TouchableOpacity key={this.props.key} onPress={this.props.onPress}>\n <View style={[styles.pdfAttachment, { backgroundColor: this.props.colourBrandingLight }]}>\n <Icon name=\"paperclip\" type=\"font-awesome\" iconStyle={[styles.pdfAttachmentIcon, { color: this.props.colourBrandingMain }]} />\n <Text style={[styles.pdfAttachmentText, { color: this.props.colourBrandingMain }]}>{this.props.title}</Text>\n </View>\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = {\n pdfAttachment: {\n padding: 4,\n flexDirection: 'row',\n borderRadius: 2,\n marginTop: 8,\n alignItems: 'center',\n alignSelf: 'flex-start',\n },\n pdfAttachmentIcon: {\n fontSize: 16,\n marginRight: 4,\n },\n pdfAttachmentText: {\n fontFamily: 'sf-semibold',\n fontSize: 13,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n colourBrandingLight: getLightBrandingColourFromState(state),\n };\n};\n\nconst attachment = connect(mapStateToProps, {})(Attachment);\nexport { attachment as Attachment };\n"]}
|
|
@@ -4,7 +4,7 @@ import React, { Component } from 'react';
|
|
|
4
4
|
import { connect } from 'react-redux';
|
|
5
5
|
import _ from 'lodash';
|
|
6
6
|
import { TouchableOpacity, View, ScrollView, Text, StyleSheet } from 'react-native';
|
|
7
|
-
import { Icon } from '
|
|
7
|
+
import { Icon } from '@rneui/themed';
|
|
8
8
|
import { Services } from '../config';
|
|
9
9
|
import { FormCard } from './FormCard';
|
|
10
10
|
import { FormCardSection } from './FormCardSection';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["AudienceSelectorPage.js"],"names":["React","Component","connect","_","TouchableOpacity","View","ScrollView","Text","StyleSheet","Icon","Services","FormCard","FormCardSection","InlineButton","Header","Spinner","TEXT_DARK","COLOUR_GREEN","BG_GREY","INACTIVE_BUTTON","TEXT_LIGHT","getMainBrandingColourFromState","typeActions","profileActions","AudienceSelectorPage","constructor","props","setState","loading","getUserTypes","getUserTags","combinedList","getAvailableAudienceTags","error","console","data","site","forEach","e","name","category","toUpperCase","substring","displayName","key","typeName","types","getUserTagsBySite","Title","Id","tags","categories","state","audienceTypeSelection","categoryTags","map","c","AudienceType","AudienceTypeSelection","Selected","some","i","userTypeTags","t","userTagTags","navigation","goBack","newList","seeAll","option","selected","find","onChange","filter","length","renderOption","label","onSelect","hasUnderline","styles","labelContainer","labelText","color","fontSize","renderSelectAll","allSelected","selectAllContainer","onSelectAll","renderSelection","selectedText","join","hasSelected","isEmpty","selectionContainer","selectionContainerInner","selectionTitle","onSeeAll","seeAllButton","selectionText","renderTips","tipContainer","tipText","fontFamily","renderAvailableAudiences","availableScrollContainer","availabelScrollContent","index","notLast","onToggleAudienceOption","renderButtons","doneButtonContainer","colourBrandingMain","onDone","doneButton","render","container","onPressBack","create","flex","position","backgroundColor","marginTop","padding","flexDirection","justifyContent","marginLeft","flexGrow","description","paddingTop","paddingBottom","marginHorizontal","mapStateToProps"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { TouchableOpacity, View, ScrollView, Text, StyleSheet } from 'react-native';\nimport { Icon } from 'react-native-elements';\nimport { Services } from '../config';\nimport { FormCard } from './FormCard';\nimport { FormCardSection } from './FormCardSection';\nimport { InlineButton } from './InlineButton';\nimport Header from './Header';\nimport { Spinner } from './Spinner';\nimport { TEXT_DARK, COLOUR_GREEN, BG_GREY, INACTIVE_BUTTON, TEXT_LIGHT, getMainBrandingColourFromState } from '../colours';\nimport { typeActions, profileActions } from '../apis';\n\nclass AudienceSelectorPage extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n loading: false,\n categories: [\n {\n name: 'All Primary Users',\n key: 'resident',\n },\n {\n name: 'All Staff Users',\n key: 'staff',\n },\n {\n name: 'All Linked Users',\n key: 'family',\n },\n ],\n types: [],\n tags: [],\n combinedList: [],\n seeAll: false,\n };\n }\n\n componentDidMount = async () => {\n try {\n this.setState({ loading: true });\n await this.getUserTypes();\n await this.getUserTags();\n this.setState({ loading: false, combinedList: this.getAvailableAudienceTags() });\n } catch (error) {\n console.error('loading types error', error);\n this.setState({ loading: false });\n }\n };\n\n getUserTypes = async () => {\n const { data } = await typeActions.getUserTypes(this.props.site);\n data.forEach(e => {\n e.name = e.category ? `(${e.category[0].toUpperCase() + e.category.substring(1)}) ${e.displayName}` : e.displayName;\n e.key = e.typeName;\n });\n // console.log('getUserTypes', data);\n this.setState({ types: data });\n };\n\n getUserTags = async () => {\n const { data } = await profileActions.getUserTagsBySite(this.props.site);\n data.forEach(e => {\n e.name = e.Title;\n e.key = e.Id;\n });\n // console.log('getUserTags', data);\n this.setState({ tags: data });\n };\n\n getAvailableAudienceTags = () => {\n const { categories, types, tags } = this.state;\n const { audienceTypeSelection } = this.props;\n\n const categoryTags = categories.map(c => {\n const Id = `category_${c.key}`;\n return {\n AudienceType: 'Category',\n AudienceTypeSelection: c.key,\n Id,\n Title: c.name,\n Selected: audienceTypeSelection.some(i => i.Id === Id),\n };\n });\n const userTypeTags = types.map(t => {\n const Id = `userType_${t.typeName}`;\n return {\n AudienceType: 'UserType',\n AudienceTypeSelection: t.typeName,\n Id,\n Title: `User Type: ${t.displayName}`,\n Selected: audienceTypeSelection.some(i => i.Id === Id),\n };\n });\n const userTagTags = tags.map(t => {\n const Id = `userTag_${t.Id}`;\n return {\n AudienceType: 'UserTags',\n AudienceTypeSelection: t.Id,\n Id,\n Title: `User Tag: ${t.Title}`,\n Selected: audienceTypeSelection.some(i => i.Id === Id),\n };\n });\n return [...categoryTags, ...userTypeTags, ...userTagTags];\n };\n\n onPressBack = () => {\n Services.navigation.goBack();\n };\n\n onSelectAll = () => {\n const newList = [...this.state.combinedList];\n newList.forEach(i => (i.Selected = false));\n this.setState({ combinedList: newList });\n };\n\n onSeeAll = () => {\n this.setState({ seeAll: !this.state.seeAll });\n };\n\n onToggleAudienceOption = option => {\n const newList = [...this.state.combinedList];\n const selected = newList.find(i => i.Id === option.Id);\n if (selected) {\n selected.Selected = !selected.Selected;\n this.setState({ combinedList: newList });\n }\n };\n\n onDone = () => {\n if (this.props.onChange) {\n const { combinedList } = this.state;\n const selected = combinedList.filter(i => i.Selected);\n if (selected && selected.length > 0) {\n this.props.onChange('Custom', selected);\n } else {\n this.props.onChange(null, null);\n }\n }\n Services.navigation.goBack();\n };\n\n renderOption(label, selected, onSelect, key = null, hasUnderline = true) {\n return (\n <TouchableOpacity key={key} onPress={onSelect}>\n <FormCardSection hasUnderline={hasUnderline} hasContent>\n <View style={styles.labelContainer}>\n <Text style={styles.labelText}>{label}</Text>\n <Icon\n name=\"check-circle\"\n type=\"font-awesome\"\n iconStyle={[{ color: INACTIVE_BUTTON, fontSize: 20 }, selected && { color: COLOUR_GREEN }]}\n />\n </View>\n </FormCardSection>\n </TouchableOpacity>\n );\n }\n\n renderSelectAll() {\n const { combinedList, loading } = this.state;\n const allSelected = !combinedList.find(i => i.Selected);\n if (loading) return null;\n\n return (\n <FormCard style={styles.selectAllContainer}>{this.renderOption('All Users', allSelected, this.onSelectAll, null, false)}</FormCard>\n );\n }\n\n renderSelection() {\n const { loading, combinedList, seeAll } = this.state;\n if (loading) return null;\n\n const selectedText = combinedList\n .filter(i => i.Selected)\n .map(i => i.Title)\n .join(', ');\n const hasSelected = !_.isEmpty(selectedText);\n\n return (\n <View style={styles.selectionContainer}>\n <View style={styles.selectionContainerInner}>\n <Text style={styles.selectionTitle}>or select from below</Text>\n {hasSelected ? (\n <TouchableOpacity onPress={this.onSeeAll}>\n <Text style={styles.seeAllButton}>{seeAll ? 'See less' : 'See all'}</Text>\n </TouchableOpacity>\n ) : null}\n </View>\n {hasSelected ? (\n <Text style={styles.selectionText} numberOfLines={seeAll ? null : 1}>{`Current selection: ${selectedText}`}</Text>\n ) : null}\n </View>\n );\n }\n\n renderTips() {\n return (\n <View style={styles.tipContainer}>\n <Text style={styles.tipText}>\n <Text style={{ fontFamily: 'sf-semibold' }}>Tip: </Text>\n Group your users using User Tags from your website Community Manager\n </Text>\n </View>\n );\n }\n\n renderAvailableAudiences() {\n const { loading, combinedList } = this.state;\n\n return (\n <ScrollView style={styles.availableScrollContainer} contentContainerStyle={styles.availabelScrollContent}>\n <FormCard>\n {combinedList.map((option, index) => {\n const notLast = index < combinedList.length - 1;\n return this.renderOption(option.Title, option.Selected, () => this.onToggleAudienceOption(option), index, notLast);\n })}\n </FormCard>\n {loading ? <Spinner /> : null}\n {this.renderTips()}\n </ScrollView>\n );\n }\n\n renderButtons() {\n const { loading } = this.state;\n\n return (\n <View style={styles.doneButtonContainer}>\n <InlineButton\n color={loading ? INACTIVE_BUTTON : this.props.colourBrandingMain}\n onPress={this.onDone}\n touchableStyle={styles.doneButton}\n fillTouchable\n large\n disabled={loading}\n >\n Done\n </InlineButton>\n </View>\n );\n }\n\n render() {\n return (\n <View style={styles.container}>\n <Header leftIcon=\"angle-left\" onPressLeft={this.onPressBack} text={'Select Audience'} />\n {this.renderSelectAll()}\n {this.renderSelection()}\n {this.renderAvailableAudiences()}\n {this.renderButtons()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n position: 'relative',\n backgroundColor: BG_GREY,\n },\n selectAllContainer: {\n marginTop: 20,\n },\n selectionContainer: {\n padding: 20,\n },\n selectionContainerInner: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n selectionTitle: {\n fontFamily: 'sf-bold',\n fontSize: 14,\n color: TEXT_DARK,\n },\n selectionText: {\n fontFamily: 'sf-bold',\n fontSize: 14,\n color: TEXT_DARK,\n marginTop: 10,\n },\n seeAllButton: {\n marginLeft: 10,\n fontFamily: 'sf-bold',\n fontSize: 14,\n color: TEXT_LIGHT,\n },\n availableScrollContainer: {\n flex: 1,\n },\n availabelScrollContent: {\n flexGrow: 1,\n justifyContent: 'space-between',\n flexDirection: 'column',\n },\n tipContainer: {\n padding: 10,\n },\n tipText: {\n fontSize: 14,\n fontFamily: 'sf-regular',\n color: TEXT_DARK,\n },\n labelContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n labelText: {\n fontFamily: 'sf-medium',\n fontSize: 16,\n color: TEXT_DARK,\n },\n description: {\n marginTop: 5,\n fontSize: 14,\n fontFamily: 'sf-regular',\n color: TEXT_DARK,\n },\n doneButtonContainer: {\n backgroundColor: '#fff',\n marginTop: 1,\n flexDirection: 'row',\n paddingTop: 10,\n paddingBottom: 20,\n },\n doneButton: {\n flex: 1,\n marginHorizontal: 6,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {})(AudienceSelectorPage);\n"]}
|
|
1
|
+
{"version":3,"sources":["AudienceSelectorPage.js"],"names":["React","Component","connect","_","TouchableOpacity","View","ScrollView","Text","StyleSheet","Icon","Services","FormCard","FormCardSection","InlineButton","Header","Spinner","TEXT_DARK","COLOUR_GREEN","BG_GREY","INACTIVE_BUTTON","TEXT_LIGHT","getMainBrandingColourFromState","typeActions","profileActions","AudienceSelectorPage","constructor","props","setState","loading","getUserTypes","getUserTags","combinedList","getAvailableAudienceTags","error","console","data","site","forEach","e","name","category","toUpperCase","substring","displayName","key","typeName","types","getUserTagsBySite","Title","Id","tags","categories","state","audienceTypeSelection","categoryTags","map","c","AudienceType","AudienceTypeSelection","Selected","some","i","userTypeTags","t","userTagTags","navigation","goBack","newList","seeAll","option","selected","find","onChange","filter","length","renderOption","label","onSelect","hasUnderline","styles","labelContainer","labelText","color","fontSize","renderSelectAll","allSelected","selectAllContainer","onSelectAll","renderSelection","selectedText","join","hasSelected","isEmpty","selectionContainer","selectionContainerInner","selectionTitle","onSeeAll","seeAllButton","selectionText","renderTips","tipContainer","tipText","fontFamily","renderAvailableAudiences","availableScrollContainer","availabelScrollContent","index","notLast","onToggleAudienceOption","renderButtons","doneButtonContainer","colourBrandingMain","onDone","doneButton","render","container","onPressBack","create","flex","position","backgroundColor","marginTop","padding","flexDirection","justifyContent","marginLeft","flexGrow","description","paddingTop","paddingBottom","marginHorizontal","mapStateToProps"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { TouchableOpacity, View, ScrollView, Text, StyleSheet } from 'react-native';\nimport { Icon } from '@rneui/themed';\nimport { Services } from '../config';\nimport { FormCard } from './FormCard';\nimport { FormCardSection } from './FormCardSection';\nimport { InlineButton } from './InlineButton';\nimport Header from './Header';\nimport { Spinner } from './Spinner';\nimport { TEXT_DARK, COLOUR_GREEN, BG_GREY, INACTIVE_BUTTON, TEXT_LIGHT, getMainBrandingColourFromState } from '../colours';\nimport { typeActions, profileActions } from '../apis';\n\nclass AudienceSelectorPage extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n loading: false,\n categories: [\n {\n name: 'All Primary Users',\n key: 'resident',\n },\n {\n name: 'All Staff Users',\n key: 'staff',\n },\n {\n name: 'All Linked Users',\n key: 'family',\n },\n ],\n types: [],\n tags: [],\n combinedList: [],\n seeAll: false,\n };\n }\n\n componentDidMount = async () => {\n try {\n this.setState({ loading: true });\n await this.getUserTypes();\n await this.getUserTags();\n this.setState({ loading: false, combinedList: this.getAvailableAudienceTags() });\n } catch (error) {\n console.error('loading types error', error);\n this.setState({ loading: false });\n }\n };\n\n getUserTypes = async () => {\n const { data } = await typeActions.getUserTypes(this.props.site);\n data.forEach(e => {\n e.name = e.category ? `(${e.category[0].toUpperCase() + e.category.substring(1)}) ${e.displayName}` : e.displayName;\n e.key = e.typeName;\n });\n // console.log('getUserTypes', data);\n this.setState({ types: data });\n };\n\n getUserTags = async () => {\n const { data } = await profileActions.getUserTagsBySite(this.props.site);\n data.forEach(e => {\n e.name = e.Title;\n e.key = e.Id;\n });\n // console.log('getUserTags', data);\n this.setState({ tags: data });\n };\n\n getAvailableAudienceTags = () => {\n const { categories, types, tags } = this.state;\n const { audienceTypeSelection } = this.props;\n\n const categoryTags = categories.map(c => {\n const Id = `category_${c.key}`;\n return {\n AudienceType: 'Category',\n AudienceTypeSelection: c.key,\n Id,\n Title: c.name,\n Selected: audienceTypeSelection.some(i => i.Id === Id),\n };\n });\n const userTypeTags = types.map(t => {\n const Id = `userType_${t.typeName}`;\n return {\n AudienceType: 'UserType',\n AudienceTypeSelection: t.typeName,\n Id,\n Title: `User Type: ${t.displayName}`,\n Selected: audienceTypeSelection.some(i => i.Id === Id),\n };\n });\n const userTagTags = tags.map(t => {\n const Id = `userTag_${t.Id}`;\n return {\n AudienceType: 'UserTags',\n AudienceTypeSelection: t.Id,\n Id,\n Title: `User Tag: ${t.Title}`,\n Selected: audienceTypeSelection.some(i => i.Id === Id),\n };\n });\n return [...categoryTags, ...userTypeTags, ...userTagTags];\n };\n\n onPressBack = () => {\n Services.navigation.goBack();\n };\n\n onSelectAll = () => {\n const newList = [...this.state.combinedList];\n newList.forEach(i => (i.Selected = false));\n this.setState({ combinedList: newList });\n };\n\n onSeeAll = () => {\n this.setState({ seeAll: !this.state.seeAll });\n };\n\n onToggleAudienceOption = option => {\n const newList = [...this.state.combinedList];\n const selected = newList.find(i => i.Id === option.Id);\n if (selected) {\n selected.Selected = !selected.Selected;\n this.setState({ combinedList: newList });\n }\n };\n\n onDone = () => {\n if (this.props.onChange) {\n const { combinedList } = this.state;\n const selected = combinedList.filter(i => i.Selected);\n if (selected && selected.length > 0) {\n this.props.onChange('Custom', selected);\n } else {\n this.props.onChange(null, null);\n }\n }\n Services.navigation.goBack();\n };\n\n renderOption(label, selected, onSelect, key = null, hasUnderline = true) {\n return (\n <TouchableOpacity key={key} onPress={onSelect}>\n <FormCardSection hasUnderline={hasUnderline} hasContent>\n <View style={styles.labelContainer}>\n <Text style={styles.labelText}>{label}</Text>\n <Icon\n name=\"check-circle\"\n type=\"font-awesome\"\n iconStyle={[{ color: INACTIVE_BUTTON, fontSize: 20 }, selected && { color: COLOUR_GREEN }]}\n />\n </View>\n </FormCardSection>\n </TouchableOpacity>\n );\n }\n\n renderSelectAll() {\n const { combinedList, loading } = this.state;\n const allSelected = !combinedList.find(i => i.Selected);\n if (loading) return null;\n\n return (\n <FormCard style={styles.selectAllContainer}>{this.renderOption('All Users', allSelected, this.onSelectAll, null, false)}</FormCard>\n );\n }\n\n renderSelection() {\n const { loading, combinedList, seeAll } = this.state;\n if (loading) return null;\n\n const selectedText = combinedList\n .filter(i => i.Selected)\n .map(i => i.Title)\n .join(', ');\n const hasSelected = !_.isEmpty(selectedText);\n\n return (\n <View style={styles.selectionContainer}>\n <View style={styles.selectionContainerInner}>\n <Text style={styles.selectionTitle}>or select from below</Text>\n {hasSelected ? (\n <TouchableOpacity onPress={this.onSeeAll}>\n <Text style={styles.seeAllButton}>{seeAll ? 'See less' : 'See all'}</Text>\n </TouchableOpacity>\n ) : null}\n </View>\n {hasSelected ? (\n <Text style={styles.selectionText} numberOfLines={seeAll ? null : 1}>{`Current selection: ${selectedText}`}</Text>\n ) : null}\n </View>\n );\n }\n\n renderTips() {\n return (\n <View style={styles.tipContainer}>\n <Text style={styles.tipText}>\n <Text style={{ fontFamily: 'sf-semibold' }}>Tip: </Text>\n Group your users using User Tags from your website Community Manager\n </Text>\n </View>\n );\n }\n\n renderAvailableAudiences() {\n const { loading, combinedList } = this.state;\n\n return (\n <ScrollView style={styles.availableScrollContainer} contentContainerStyle={styles.availabelScrollContent}>\n <FormCard>\n {combinedList.map((option, index) => {\n const notLast = index < combinedList.length - 1;\n return this.renderOption(option.Title, option.Selected, () => this.onToggleAudienceOption(option), index, notLast);\n })}\n </FormCard>\n {loading ? <Spinner /> : null}\n {this.renderTips()}\n </ScrollView>\n );\n }\n\n renderButtons() {\n const { loading } = this.state;\n\n return (\n <View style={styles.doneButtonContainer}>\n <InlineButton\n color={loading ? INACTIVE_BUTTON : this.props.colourBrandingMain}\n onPress={this.onDone}\n touchableStyle={styles.doneButton}\n fillTouchable\n large\n disabled={loading}\n >\n Done\n </InlineButton>\n </View>\n );\n }\n\n render() {\n return (\n <View style={styles.container}>\n <Header leftIcon=\"angle-left\" onPressLeft={this.onPressBack} text={'Select Audience'} />\n {this.renderSelectAll()}\n {this.renderSelection()}\n {this.renderAvailableAudiences()}\n {this.renderButtons()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n position: 'relative',\n backgroundColor: BG_GREY,\n },\n selectAllContainer: {\n marginTop: 20,\n },\n selectionContainer: {\n padding: 20,\n },\n selectionContainerInner: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n selectionTitle: {\n fontFamily: 'sf-bold',\n fontSize: 14,\n color: TEXT_DARK,\n },\n selectionText: {\n fontFamily: 'sf-bold',\n fontSize: 14,\n color: TEXT_DARK,\n marginTop: 10,\n },\n seeAllButton: {\n marginLeft: 10,\n fontFamily: 'sf-bold',\n fontSize: 14,\n color: TEXT_LIGHT,\n },\n availableScrollContainer: {\n flex: 1,\n },\n availabelScrollContent: {\n flexGrow: 1,\n justifyContent: 'space-between',\n flexDirection: 'column',\n },\n tipContainer: {\n padding: 10,\n },\n tipText: {\n fontSize: 14,\n fontFamily: 'sf-regular',\n color: TEXT_DARK,\n },\n labelContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n labelText: {\n fontFamily: 'sf-medium',\n fontSize: 16,\n color: TEXT_DARK,\n },\n description: {\n marginTop: 5,\n fontSize: 14,\n fontFamily: 'sf-regular',\n color: TEXT_DARK,\n },\n doneButtonContainer: {\n backgroundColor: '#fff',\n marginTop: 1,\n flexDirection: 'row',\n paddingTop: 10,\n paddingBottom: 20,\n },\n doneButton: {\n flex: 1,\n marginHorizontal: 6,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {})(AudienceSelectorPage);\n"]}
|
|
@@ -3,7 +3,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
3
3
|
import React, { Component } from 'react';
|
|
4
4
|
import { connect } from 'react-redux';
|
|
5
5
|
import { Keyboard, TextInput, View, ImageBackground, TouchableOpacity, Dimensions } from 'react-native';
|
|
6
|
-
import { Icon } from '
|
|
6
|
+
import { Icon } from '@rneui/themed';
|
|
7
7
|
import { getBottomSpace } from 'react-native-iphone-x-helper';
|
|
8
8
|
import _ from 'lodash';
|
|
9
9
|
import { getApiError } from '../session';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CommentReply.js"],"names":["React","Component","connect","Keyboard","TextInput","View","ImageBackground","TouchableOpacity","Dimensions","Icon","getBottomSpace","_","getApiError","getShadowStyle","TEXT_BLUEGREY","TEXT_DARKEST","BG_GREY","Spinner","ImageUploader","reactionActions","SCREEN_HEIGHT","get","height","CommentReply","constructor","props","setState","uploadingCommentImage","setTimeout","noScroll","scrollView","current","scrollToEnd","animated","uri","commentImageInput","replace","state","commentInput","commentsLoading","addingComment","componentDidMount","commentSection","isLoading","focusInput","refs","replyInput","focus","loadingStarted","loadingCompleted","shouldShowImageInput","isEmpty","addComment","text","image","dismiss","startedAddingComment","entityId","entityType","entityName","site","threadId","then","res","commentAdded","data","catch","err","console","log","removeImage","showUploadMenu","commentImageUploader","renderImageAttachment","styles","accessoryImage","accessoryImageBorder","borderWidth","borderColor","accessoryImageClose","bind","top","right","bottom","left","accessoryImageCloseIcon","accessoryImageCloseIconContainer","renderImageUploader","ref","onUploadStarted","onUploadSuccess","onUploadFailed","user","uid","render","includes","hidden","inputContainer","style","input","marginRight","value","inputText","sendContainer","padding","width","send","marginTop","borderRadius","position","backgroundColor","alignItems","justifyContent","fontSize","color","textAlign","paddingVertical","paddingHorizontal","paddingBottom","flexGrow","fontFamily","margin","maxHeight","mapStateToProps","commentReply","forwardRef"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { Keyboard, TextInput, View, ImageBackground, TouchableOpacity, Dimensions } from 'react-native';\nimport { Icon } from 'react-native-elements';\nimport { getBottomSpace } from 'react-native-iphone-x-helper';\nimport _ from 'lodash';\nimport { getApiError } from '../session';\nimport { getShadowStyle } from '../helper';\nimport { TEXT_BLUEGREY, TEXT_DARKEST, BG_GREY } from '../colours';\nimport { Spinner } from './Spinner';\nimport ImageUploader from './ImageUploader';\nimport { reactionActions } from '../apis';\n\nconst SCREEN_HEIGHT = Dimensions.get('window').height;\n\nclass CommentReply extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n commentImageInput: '',\n commentInput: '',\n uploadingCommentImage: false,\n commentsLoading: true,\n addingComment: false,\n };\n }\n\n componentDidMount() {\n if (this.props.commentSection && this.props.commentSection.current) {\n this.setState({\n commentsLoading: this.props.commentSection.current.isLoading(),\n });\n }\n }\n\n onUploadStarted = () => {\n this.setState({\n uploadingCommentImage: true,\n });\n setTimeout(() => {\n if (!this.props.noScroll) {\n this.props.scrollView?.current?.scrollToEnd({ animated: true });\n }\n }, 500);\n };\n\n onUploadSuccess = uri => {\n this.setState({\n uploadingCommentImage: false,\n commentImageInput: uri.replace('/general/', '/general1400/'),\n });\n };\n\n onUploadFailed = () => {\n this.setState({\n uploadingCommentImage: false,\n commentImageInput: null,\n });\n };\n\n focusInput() {\n this.refs.replyInput.focus();\n }\n\n loadingStarted() {\n this.setState({\n commentsLoading: true,\n });\n }\n\n loadingCompleted() {\n this.setState({\n commentsLoading: false,\n });\n }\n\n shouldShowImageInput() {\n return this.state.uploadingCommentImage || !_.isEmpty(this.state.commentImageInput);\n }\n\n addComment() {\n setTimeout(() => {\n if (!this.props.noScroll) {\n this.props.scrollView?.current?.scrollToEnd({ animated: true });\n }\n }, 500);\n const text = this.state.commentInput;\n const image = this.state.commentImageInput;\n this.setState({\n addingComment: true,\n commentInput: '',\n commentImageInput: '',\n });\n Keyboard.dismiss();\n if (this.props.commentSection) {\n this.props.commentSection?.current?.startedAddingComment();\n }\n reactionActions\n .addComment(this.props.entityId, this.props.entityType, this.props.entityName, this.props.site, text, image, this.props.threadId)\n .then(res => {\n if (this.props.commentSection) {\n this.props.commentSection?.current?.commentAdded(res.data);\n }\n this.setState({\n addingComment: false,\n });\n setTimeout(() => {\n if (!this.props.noScroll) {\n this.props.scrollView?.current?.scrollToEnd({ animated: true });\n }\n }, 500);\n })\n .catch(err => {\n console.log(getApiError(err));\n });\n }\n\n removeImage() {\n this.setState({\n commentImageInput: null,\n });\n }\n\n showUploadMenu() {\n if (this.state.uploadingCommentImage || !_.isEmpty(this.state.commentImageInput)) {\n return;\n }\n this.commentImageUploader.showUploadMenu();\n }\n\n renderImageAttachment() {\n if (_.isEmpty(this.state.commentImageInput) && !this.state.uploadingCommentImage) {\n return null;\n }\n if (this.state.uploadingCommentImage) {\n return (\n <View style={[styles.accessoryImage, styles.accessoryImageBorder, { borderWidth: 1, borderColor: BG_GREY }]}>\n <Spinner />\n </View>\n );\n }\n return (\n <ImageBackground\n style={styles.accessoryImage}\n imageStyle={styles.accessoryImageBorder}\n source={{ uri: this.state.commentImageInput }}\n >\n <TouchableOpacity\n style={styles.accessoryImageClose}\n onPress={this.removeImage.bind(this)}\n hitSlop={{ top: 8, right: 8, bottom: 8, left: 8 }}\n >\n <Icon\n name=\"remove\"\n type=\"font-awesome\"\n iconStyle={styles.accessoryImageCloseIcon}\n style={styles.accessoryImageCloseIconContainer}\n />\n </TouchableOpacity>\n </ImageBackground>\n );\n }\n\n renderImageUploader() {\n return (\n <ImageUploader\n ref={ref => (this.commentImageUploader = ref)}\n onUploadStarted={this.onUploadStarted}\n onUploadSuccess={this.onUploadSuccess}\n onUploadFailed={this.onUploadFailed}\n onLibrarySelected={this.onUploadSuccess}\n quality={0.8}\n allowsEditing={false}\n fileName=\"commentImage\"\n popupTitle=\"Add Image\"\n userId={this.props.user.uid}\n hideLibrary\n />\n );\n }\n\n render() {\n if (_.includes(this.props.user.hidden, 'addComment')) {\n return null;\n }\n if (this.state.commentsLoading) {\n return null;\n }\n return (\n <View style={[styles.inputContainer, getShadowStyle(), this.props.style]}>\n <View\n style={[\n styles.input,\n {\n marginRight: _.isEmpty(this.state.commentInput) && _.isEmpty(this.state.commentImageInput) ? 40 : 80,\n },\n ]}\n >\n <TextInput\n ref=\"replyInput\"\n placeholder=\"Enter your comment here\"\n value={this.state.commentInput}\n onFocus={() => {\n if (!this.props.noScroll) {\n this.props.scrollView?.current?.scrollToEnd({ animated: true });\n }\n }}\n onChangeText={value => {\n if (!this.props.noScroll) {\n this.props.scrollView?.current?.scrollToEnd({ animated: false });\n }\n this.setState({\n commentInput: value,\n });\n }}\n style={styles.inputText}\n autoCapitalize=\"sentences\"\n multiline\n autoCorrect\n autoGrow\n />\n </View>\n {(!_.isEmpty(this.state.commentInput) || !_.isEmpty(this.state.commentImageInput)) && !this.state.addingComment && (\n <TouchableOpacity\n onPress={this.addComment.bind(this)}\n style={[\n styles.sendContainer,\n {\n right: 4,\n padding: 4,\n width: 40,\n height: 40,\n },\n ]}\n >\n <Icon name=\"paper-plane\" type=\"font-awesome\" iconStyle={[styles.send, { width: 40 }]} />\n </TouchableOpacity>\n )}\n <TouchableOpacity\n onPress={this.showUploadMenu.bind(this)}\n style={[\n styles.sendContainer,\n {\n right: _.isEmpty(this.state.commentInput) && _.isEmpty(this.state.commentImageInput) ? 4 : 44,\n padding: 4,\n width: 40,\n height: 40,\n },\n ]}\n >\n <Icon name=\"picture-o\" type=\"font-awesome\" iconStyle={[styles.send, { width: 40 }]} />\n </TouchableOpacity>\n {this.renderImageAttachment()}\n {this.renderImageUploader()}\n </View>\n );\n }\n}\n\nconst styles = {\n accessoryImage: {\n marginTop: 8,\n width: 60,\n height: 60,\n },\n accessoryImageBorder: {\n borderRadius: 2,\n },\n accessoryImageClose: {\n width: 14,\n height: 14,\n borderRadius: 7,\n position: 'absolute',\n top: -7,\n right: -7,\n backgroundColor: TEXT_BLUEGREY,\n },\n accessoryImageCloseIconContainer: {\n width: 14,\n height: 14,\n alignItems: 'center',\n justifyContent: 'center',\n },\n accessoryImageCloseIcon: {\n fontSize: 10,\n color: '#fff',\n textAlign: 'center',\n },\n inputContainer: {\n backgroundColor: '#fff',\n paddingVertical: 8,\n paddingHorizontal: 8,\n paddingBottom: 8 + getBottomSpace(),\n flexGrow: 1,\n },\n inputText: {\n color: TEXT_DARKEST,\n fontSize: 14,\n fontFamily: 'sf-medium',\n },\n input: {\n fontSize: 14,\n color: TEXT_DARKEST,\n fontFamily: 'sf-medium',\n margin: 0,\n backgroundColor: BG_GREY,\n borderRadius: 5,\n padding: 8,\n maxHeight: SCREEN_HEIGHT / 3,\n },\n sendContainer: {\n position: 'absolute',\n top: 8,\n right: 8,\n height: 30,\n width: 30,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#fff',\n },\n send: {\n color: TEXT_BLUEGREY,\n fontSize: 24,\n textAlign: 'center',\n },\n};\n\nconst mapStateToProps = state => {\n const { user } = state;\n return { user };\n};\n\nconst commentReply = connect(mapStateToProps, {}, null, { forwardRef: true })(CommentReply);\nexport { commentReply as CommentReply };\n"]}
|
|
1
|
+
{"version":3,"sources":["CommentReply.js"],"names":["React","Component","connect","Keyboard","TextInput","View","ImageBackground","TouchableOpacity","Dimensions","Icon","getBottomSpace","_","getApiError","getShadowStyle","TEXT_BLUEGREY","TEXT_DARKEST","BG_GREY","Spinner","ImageUploader","reactionActions","SCREEN_HEIGHT","get","height","CommentReply","constructor","props","setState","uploadingCommentImage","setTimeout","noScroll","scrollView","current","scrollToEnd","animated","uri","commentImageInput","replace","state","commentInput","commentsLoading","addingComment","componentDidMount","commentSection","isLoading","focusInput","refs","replyInput","focus","loadingStarted","loadingCompleted","shouldShowImageInput","isEmpty","addComment","text","image","dismiss","startedAddingComment","entityId","entityType","entityName","site","threadId","then","res","commentAdded","data","catch","err","console","log","removeImage","showUploadMenu","commentImageUploader","renderImageAttachment","styles","accessoryImage","accessoryImageBorder","borderWidth","borderColor","accessoryImageClose","bind","top","right","bottom","left","accessoryImageCloseIcon","accessoryImageCloseIconContainer","renderImageUploader","ref","onUploadStarted","onUploadSuccess","onUploadFailed","user","uid","render","includes","hidden","inputContainer","style","input","marginRight","value","inputText","sendContainer","padding","width","send","marginTop","borderRadius","position","backgroundColor","alignItems","justifyContent","fontSize","color","textAlign","paddingVertical","paddingHorizontal","paddingBottom","flexGrow","fontFamily","margin","maxHeight","mapStateToProps","commentReply","forwardRef"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { Keyboard, TextInput, View, ImageBackground, TouchableOpacity, Dimensions } from 'react-native';\nimport { Icon } from '@rneui/themed';\nimport { getBottomSpace } from 'react-native-iphone-x-helper';\nimport _ from 'lodash';\nimport { getApiError } from '../session';\nimport { getShadowStyle } from '../helper';\nimport { TEXT_BLUEGREY, TEXT_DARKEST, BG_GREY } from '../colours';\nimport { Spinner } from './Spinner';\nimport ImageUploader from './ImageUploader';\nimport { reactionActions } from '../apis';\n\nconst SCREEN_HEIGHT = Dimensions.get('window').height;\n\nclass CommentReply extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n commentImageInput: '',\n commentInput: '',\n uploadingCommentImage: false,\n commentsLoading: true,\n addingComment: false,\n };\n }\n\n componentDidMount() {\n if (this.props.commentSection && this.props.commentSection.current) {\n this.setState({\n commentsLoading: this.props.commentSection.current.isLoading(),\n });\n }\n }\n\n onUploadStarted = () => {\n this.setState({\n uploadingCommentImage: true,\n });\n setTimeout(() => {\n if (!this.props.noScroll) {\n this.props.scrollView?.current?.scrollToEnd({ animated: true });\n }\n }, 500);\n };\n\n onUploadSuccess = uri => {\n this.setState({\n uploadingCommentImage: false,\n commentImageInput: uri.replace('/general/', '/general1400/'),\n });\n };\n\n onUploadFailed = () => {\n this.setState({\n uploadingCommentImage: false,\n commentImageInput: null,\n });\n };\n\n focusInput() {\n this.refs.replyInput.focus();\n }\n\n loadingStarted() {\n this.setState({\n commentsLoading: true,\n });\n }\n\n loadingCompleted() {\n this.setState({\n commentsLoading: false,\n });\n }\n\n shouldShowImageInput() {\n return this.state.uploadingCommentImage || !_.isEmpty(this.state.commentImageInput);\n }\n\n addComment() {\n setTimeout(() => {\n if (!this.props.noScroll) {\n this.props.scrollView?.current?.scrollToEnd({ animated: true });\n }\n }, 500);\n const text = this.state.commentInput;\n const image = this.state.commentImageInput;\n this.setState({\n addingComment: true,\n commentInput: '',\n commentImageInput: '',\n });\n Keyboard.dismiss();\n if (this.props.commentSection) {\n this.props.commentSection?.current?.startedAddingComment();\n }\n reactionActions\n .addComment(this.props.entityId, this.props.entityType, this.props.entityName, this.props.site, text, image, this.props.threadId)\n .then(res => {\n if (this.props.commentSection) {\n this.props.commentSection?.current?.commentAdded(res.data);\n }\n this.setState({\n addingComment: false,\n });\n setTimeout(() => {\n if (!this.props.noScroll) {\n this.props.scrollView?.current?.scrollToEnd({ animated: true });\n }\n }, 500);\n })\n .catch(err => {\n console.log(getApiError(err));\n });\n }\n\n removeImage() {\n this.setState({\n commentImageInput: null,\n });\n }\n\n showUploadMenu() {\n if (this.state.uploadingCommentImage || !_.isEmpty(this.state.commentImageInput)) {\n return;\n }\n this.commentImageUploader.showUploadMenu();\n }\n\n renderImageAttachment() {\n if (_.isEmpty(this.state.commentImageInput) && !this.state.uploadingCommentImage) {\n return null;\n }\n if (this.state.uploadingCommentImage) {\n return (\n <View style={[styles.accessoryImage, styles.accessoryImageBorder, { borderWidth: 1, borderColor: BG_GREY }]}>\n <Spinner />\n </View>\n );\n }\n return (\n <ImageBackground\n style={styles.accessoryImage}\n imageStyle={styles.accessoryImageBorder}\n source={{ uri: this.state.commentImageInput }}\n >\n <TouchableOpacity\n style={styles.accessoryImageClose}\n onPress={this.removeImage.bind(this)}\n hitSlop={{ top: 8, right: 8, bottom: 8, left: 8 }}\n >\n <Icon\n name=\"remove\"\n type=\"font-awesome\"\n iconStyle={styles.accessoryImageCloseIcon}\n style={styles.accessoryImageCloseIconContainer}\n />\n </TouchableOpacity>\n </ImageBackground>\n );\n }\n\n renderImageUploader() {\n return (\n <ImageUploader\n ref={ref => (this.commentImageUploader = ref)}\n onUploadStarted={this.onUploadStarted}\n onUploadSuccess={this.onUploadSuccess}\n onUploadFailed={this.onUploadFailed}\n onLibrarySelected={this.onUploadSuccess}\n quality={0.8}\n allowsEditing={false}\n fileName=\"commentImage\"\n popupTitle=\"Add Image\"\n userId={this.props.user.uid}\n hideLibrary\n />\n );\n }\n\n render() {\n if (_.includes(this.props.user.hidden, 'addComment')) {\n return null;\n }\n if (this.state.commentsLoading) {\n return null;\n }\n return (\n <View style={[styles.inputContainer, getShadowStyle(), this.props.style]}>\n <View\n style={[\n styles.input,\n {\n marginRight: _.isEmpty(this.state.commentInput) && _.isEmpty(this.state.commentImageInput) ? 40 : 80,\n },\n ]}\n >\n <TextInput\n ref=\"replyInput\"\n placeholder=\"Enter your comment here\"\n value={this.state.commentInput}\n onFocus={() => {\n if (!this.props.noScroll) {\n this.props.scrollView?.current?.scrollToEnd({ animated: true });\n }\n }}\n onChangeText={value => {\n if (!this.props.noScroll) {\n this.props.scrollView?.current?.scrollToEnd({ animated: false });\n }\n this.setState({\n commentInput: value,\n });\n }}\n style={styles.inputText}\n autoCapitalize=\"sentences\"\n multiline\n autoCorrect\n autoGrow\n />\n </View>\n {(!_.isEmpty(this.state.commentInput) || !_.isEmpty(this.state.commentImageInput)) && !this.state.addingComment && (\n <TouchableOpacity\n onPress={this.addComment.bind(this)}\n style={[\n styles.sendContainer,\n {\n right: 4,\n padding: 4,\n width: 40,\n height: 40,\n },\n ]}\n >\n <Icon name=\"paper-plane\" type=\"font-awesome\" iconStyle={[styles.send, { width: 40 }]} />\n </TouchableOpacity>\n )}\n <TouchableOpacity\n onPress={this.showUploadMenu.bind(this)}\n style={[\n styles.sendContainer,\n {\n right: _.isEmpty(this.state.commentInput) && _.isEmpty(this.state.commentImageInput) ? 4 : 44,\n padding: 4,\n width: 40,\n height: 40,\n },\n ]}\n >\n <Icon name=\"picture-o\" type=\"font-awesome\" iconStyle={[styles.send, { width: 40 }]} />\n </TouchableOpacity>\n {this.renderImageAttachment()}\n {this.renderImageUploader()}\n </View>\n );\n }\n}\n\nconst styles = {\n accessoryImage: {\n marginTop: 8,\n width: 60,\n height: 60,\n },\n accessoryImageBorder: {\n borderRadius: 2,\n },\n accessoryImageClose: {\n width: 14,\n height: 14,\n borderRadius: 7,\n position: 'absolute',\n top: -7,\n right: -7,\n backgroundColor: TEXT_BLUEGREY,\n },\n accessoryImageCloseIconContainer: {\n width: 14,\n height: 14,\n alignItems: 'center',\n justifyContent: 'center',\n },\n accessoryImageCloseIcon: {\n fontSize: 10,\n color: '#fff',\n textAlign: 'center',\n },\n inputContainer: {\n backgroundColor: '#fff',\n paddingVertical: 8,\n paddingHorizontal: 8,\n paddingBottom: 8 + getBottomSpace(),\n flexGrow: 1,\n },\n inputText: {\n color: TEXT_DARKEST,\n fontSize: 14,\n fontFamily: 'sf-medium',\n },\n input: {\n fontSize: 14,\n color: TEXT_DARKEST,\n fontFamily: 'sf-medium',\n margin: 0,\n backgroundColor: BG_GREY,\n borderRadius: 5,\n padding: 8,\n maxHeight: SCREEN_HEIGHT / 3,\n },\n sendContainer: {\n position: 'absolute',\n top: 8,\n right: 8,\n height: 30,\n width: 30,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#fff',\n },\n send: {\n color: TEXT_BLUEGREY,\n fontSize: 24,\n textAlign: 'center',\n },\n};\n\nconst mapStateToProps = state => {\n const { user } = state;\n return { user };\n};\n\nconst commentReply = connect(mapStateToProps, {}, null, { forwardRef: true })(CommentReply);\nexport { commentReply as CommentReply };\n"]}
|
|
@@ -5,7 +5,7 @@ import { View, Text, TouchableOpacity, Image, StyleSheet } from 'react-native';
|
|
|
5
5
|
import _ from 'lodash';
|
|
6
6
|
import moment from 'moment';
|
|
7
7
|
import { connect } from 'react-redux';
|
|
8
|
-
import { Icon } from '
|
|
8
|
+
import { Icon } from '@rneui/themed';
|
|
9
9
|
import { getPluralS, getThumb300, get1400, getSiteSettingFromState, getFirstName, getPluralOptions } from '../helper';
|
|
10
10
|
import { getMainBrandingColourFromState, TEXT_DARKEST, BG_GREY, TEXT_LIGHT, LINEGREY } from '../colours';
|
|
11
11
|
import { reactionActions, notificationActions } from '../apis';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CommentSection.js"],"names":["React","Component","View","Text","TouchableOpacity","Image","StyleSheet","_","moment","connect","Icon","getPluralS","getThumb300","get1400","getSiteSettingFromState","getFirstName","getPluralOptions","getMainBrandingColourFromState","TEXT_DARKEST","BG_GREY","TEXT_LIGHT","LINEGREY","reactionActions","notificationActions","blockUser","unblockUser","ConfirmPopup","ProfilePic","ImagePopup","InlineButton","Spinner","Services","CommentSection","constructor","props","c","setState","commentToDelete","removeComment","state","Id","then","res","console","log","newComments","filter","comments","commentToReport","commentToBlock","userId","UserId","commentToUnblock","commentId","reportLoading","reportComment","commentReportedStatus","catch","error","comment","navigation","navigate","threadId","entityType","entityId","processing","data","muteEntity","muteExpiry","Expiry","unmuteEntity","actual","duration","diff","asHours","Math","abs","ceil","notificationsForComments","getEntityNotificationSetting","muteLoaded","commentsLoading","includes","blockedUsers","user","uid","isUserBlocked","hideReplyButton","threadComments","innerC","ParentId","content","isEmpty","styles","commentRepliesText","color","colourBrandingMain","User","displayName","profilePics","take","uniqBy","multiReplyContainer","map","i","marginRight","profilePic","marginLeft","length","commentReplies","onOpenThread","addingComment","componentDidMount","getNotificationSate","hidden","getComments","componentWillUnmount","loadTimer","clearTimeout","onPressCommentImage","image","imagePopupSource","imagePopupOpen","onGoToAdd","commentReply","focusInput","getAdjustedSize","size","scaleFont","fontScale","commentsLoadStarted","current","loadingStarted","loadComments","minTime","maxBy","Timestamp","sortBy","concat","onCommentsLoaded","loadingCompleted","live","setTimeout","refreshFrequency","startedAddingComment","commentAdded","push","onCommentAdded","canRemoveComment","permissions","adminPermission","closeCommentGallery","renderCommentDeleteConfirm","onPressConfirmDelete","onPressCancelDelete","renderCommentReportConfirm","onPressConfirmReport","onPressCancelReport","commentReportText","renderCommentBlockConfirm","onPressConfirmBlock","onPressCancelBlock","renderCommentUnblockConfirm","onPressConfirmUnblock","onPressCancelUnblock","renderCommentReportStatus","isSuccess","onPressConfirmReportStatus","renderCommentImage","commentImageContainer","bind","commentImage","uri","renderComment","commentFlex","commentProfilePic","commentBlock","commentTitleRow","onPressDeleteComment","commentButtonContainer","backgroundColor","commentButtonIcon","disableFlag","onPressReportComment","canBlockComment","onPressUnblockUser","onPressBlockUser","commentName","fontSize","Comment","commentText","commentBottom","commentTime","utc","local","format","renderReplyText","renderMute","muteSpinnerContainer","isMuted","hours","getMuteRemaining","mutedFor","muteContainer","mutedForText","onUnmute","onMute","borderColor","muteButton","muteButtonInner","muteButtonIcon","muteButtonText","renderComments","commentSection","isNil","placeHolder","commentsEmpty","source","reverseOrder","reverse","showReplies","commentSectionTitleRow","alignItems","hideAddComment","goToText","commentCount","renderCommentImagePopup","renderReportLoading","reportLoadingContainer","render","commentSectionOuter","style","create","flex","paddingHorizontal","paddingVertical","borderTopColor","borderTopWidth","fontFamily","marginTop","flexDirection","borderRadius","padding","width","height","justifyContent","textAlign","paddingLeft","marginBottom","borderWidth","mapStateToProps","userSettings","forwardRef"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { View, Text, TouchableOpacity, Image, StyleSheet } from 'react-native';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { connect } from 'react-redux';\nimport { Icon } from 'react-native-elements';\nimport { getPluralS, getThumb300, get1400, getSiteSettingFromState, getFirstName, getPluralOptions } from '../helper';\nimport { getMainBrandingColourFromState, TEXT_DARKEST, BG_GREY, TEXT_LIGHT, LINEGREY } from '../colours';\nimport { reactionActions, notificationActions } from '../apis';\nimport { blockUser, unblockUser } from '../actions';\nimport { ConfirmPopup } from './ConfirmPopup';\nimport { ProfilePic } from './ProfilePic';\nimport { ImagePopup } from './ImagePopup';\nimport { InlineButton } from './InlineButton';\nimport { Spinner } from './Spinner';\nimport { Services } from '../config';\n\nclass CommentSection extends Component {\n constructor(props) {\n super(props);\n this.state = {\n commentsLoading: false,\n comments: [],\n addingComment: false,\n commentToDelete: null,\n commentToReport: null,\n commentReportedStatus: null,\n reportLoading: false,\n processing: false,\n muteExpiry: null,\n muteLoaded: false,\n };\n }\n\n componentDidMount() {\n this.getNotificationSate();\n\n if (!_.includes(this.props.user.hidden, 'viewComment')) {\n this.getComments();\n }\n }\n\n componentWillUnmount() {\n if (this.loadTimer) {\n clearTimeout(this.loadTimer);\n }\n }\n\n onPressDeleteComment = c => {\n this.setState({ commentToDelete: c });\n };\n\n onPressConfirmDelete = () => {\n reactionActions.removeComment(this.state.commentToDelete.Id).then(res => {\n console.log('deleted');\n });\n const newComments = _.filter(this.state.comments, c => {\n return c.Id !== this.state.commentToDelete.Id;\n });\n this.setState({\n comments: newComments,\n commentToDelete: null,\n });\n };\n\n onPressCancelDelete = () => {\n this.setState({ commentToDelete: null });\n };\n\n onPressReportComment = c => {\n this.setState({ commentToReport: c });\n };\n\n onPressBlockUser = c => {\n this.setState({ commentToBlock: c });\n };\n\n onPressConfirmBlock = () => {\n const userId = this.state.commentToBlock.UserId;\n this.props.blockUser(userId);\n this.setState({ commentToBlock: null });\n };\n\n onPressCancelBlock = () => {\n this.setState({ commentToBlock: null });\n };\n\n onPressUnblockUser = c => {\n this.setState({ commentToUnblock: c });\n };\n\n onPressConfirmUnblock = () => {\n const userId = this.state.commentToUnblock.UserId;\n this.props.unblockUser(userId);\n this.setState({ commentToUnblock: null });\n };\n\n onPressCancelUnblock = () => {\n this.setState({ commentToUnblock: null });\n };\n\n onPressConfirmReport = () => {\n const commentId = this.state.commentToReport.Id;\n this.setState({ reportLoading: true, commentToReport: null }, () => {\n reactionActions\n .reportComment(commentId)\n .then(res => {\n this.setState({ commentReportedStatus: 'success', reportLoading: false });\n })\n .catch(error => {\n console.log('reportComment', error);\n this.setState({ commentReportedStatus: 'fail', reportLoading: false });\n });\n });\n };\n\n onPressCancelReport = () => {\n this.setState({ commentToReport: null });\n };\n\n onPressConfirmReportStatus = () => {\n this.setState({ commentReportedStatus: null });\n };\n\n onPressCommentImage(image) {\n this.setState({\n imagePopupSource: [image],\n imagePopupOpen: true,\n });\n }\n\n onGoToAdd() {\n this.props.commentReply.focusInput();\n }\n\n onOpenThread = comment => {\n Services.navigation.navigate('thread', { ...this.props, threadId: comment.Id });\n };\n\n onMute = () => {\n const { entityType, entityId } = this.props;\n this.setState({ processing: true }, async () => {\n try {\n const { data } = await notificationActions.muteEntity(entityType, entityId);\n // console.log('onMute', data);\n const muteExpiry = moment(data.Expiry);\n this.setState({ muteExpiry, processing: false });\n } catch (error) {\n console.error('onMute', error);\n this.setState({ processing: false });\n }\n });\n };\n\n onUnmute = () => {\n const { entityType, entityId } = this.props;\n this.setState({ processing: true }, async () => {\n try {\n const { data } = await notificationActions.unmuteEntity(entityType, entityId);\n // console.log('onUnmute', data);\n this.setState({ muteExpiry: null, processing: false });\n } catch (error) {\n console.error('onUnmute', error);\n this.setState({ processing: false });\n }\n });\n };\n\n isMuted = () => {\n const { muteExpiry } = this.state;\n return muteExpiry && moment() <= muteExpiry;\n };\n\n getMuteRemaining = () => {\n const { muteExpiry } = this.state;\n const actual = muteExpiry ? moment.duration(muteExpiry.diff(moment())).asHours() : 0;\n return Math.abs(Math.ceil(actual));\n };\n\n getNotificationSate = () => {\n const { processing } = this.state;\n const { entityType, entityId, notificationsForComments } = this.props;\n if (processing || !notificationsForComments) return;\n\n this.setState({ processing: true }, async () => {\n try {\n const { data } = await notificationActions.getEntityNotificationSetting(entityType, entityId);\n // console.log('getNotificationSate', data);\n const muteExpiry = data ? moment(data.Expiry) : null;\n this.setState({ muteExpiry, muteLoaded: true, processing: false });\n } catch (error) {\n console.error('getNotificationSate', error);\n this.setState({ processing: false });\n }\n });\n };\n\n getAdjustedSize(size) {\n if (this.props.scaleFont) {\n return size + this.props.user.fontScale;\n }\n return size;\n }\n\n getComments() {\n if (!this.state.commentsLoadStarted) {\n this.setState({\n commentsLoadStarted: true,\n commentsLoading: true,\n });\n this.props.commentReply?.current?.loadingStarted();\n\n this.loadComments();\n }\n }\n\n isEmpty() {\n return _.isEmpty(this.state.comments);\n }\n\n loadComments() {\n const minTime = this.isEmpty()\n ? 0\n : _.maxBy(this.state.comments, c => {\n return c.Timestamp;\n }).Timestamp;\n reactionActions.getComments(this.props.entityId, this.props.entityType, minTime).then(res => {\n this.setState(\n {\n comments: _.sortBy(\n _.uniqBy(\n _.filter(_.concat(this.state.comments, res.data), c => {\n if (!this.props.threadId) {\n return true;\n }\n return c.Id === this.props.threadId || c.ParentId === this.props.threadId;\n }),\n c => {\n return c.Id;\n },\n ),\n 'Timestamp',\n ),\n commentsLoading: false,\n },\n () => {\n if (this.props.onCommentsLoaded) {\n this.props.onCommentsLoaded(this.state.comments.length);\n }\n },\n );\n //if (this.props.commentReply) {\n this.props.commentReply?.current?.loadingCompleted();\n //}\n if (this.props.live) {\n this.loadTimer = setTimeout(() => {\n this.loadComments();\n }, this.props.refreshFrequency || 2000);\n }\n });\n }\n\n isLoading = () => {\n return this.state.commentsLoading;\n };\n\n startedAddingComment() {\n this.setState({\n addingComment: true,\n });\n }\n\n commentAdded(comment) {\n const newComments = this.state.comments;\n newComments.push(comment);\n this.setState(\n {\n addingComment: false,\n comments: newComments,\n },\n () => {\n if (this.props.onCommentAdded) {\n this.props.onCommentAdded();\n }\n },\n );\n }\n\n isUserBlocked = c => {\n return _.includes(this.props.blockedUsers, c.UserId);\n };\n\n canBlockComment = c => {\n return this.props.user.uid !== c.UserId;\n };\n\n canRemoveComment(c) {\n if (this.props.user.uid === c.UserId) {\n return true;\n }\n return _.includes(this.props.user.permissions, this.props.adminPermission);\n }\n\n closeCommentGallery() {\n this.setState({\n imagePopupSource: [],\n imagePopupOpen: false,\n });\n }\n\n renderCommentDeleteConfirm() {\n return (\n <ConfirmPopup\n visible={!!this.state.commentToDelete}\n onConfirm={this.onPressConfirmDelete}\n onCancel={this.onPressCancelDelete}\n onClose={this.onPressCancelDelete}\n text=\"Are you sure you want to delete this comment?\"\n />\n );\n }\n\n renderCommentReportConfirm() {\n return (\n <ConfirmPopup\n visible={!!this.state.commentToReport}\n onConfirm={this.onPressConfirmReport}\n onCancel={this.onPressCancelReport}\n onClose={this.onPressCancelReport}\n text=\"Are you sure you want to report this comment?\"\n extraContent={<Text style={styles.commentReportText}>This comment will be reported to our team and considered for deletion</Text>}\n />\n );\n }\n\n renderCommentBlockConfirm() {\n return (\n <ConfirmPopup\n visible={!!this.state.commentToBlock}\n onConfirm={this.onPressConfirmBlock}\n onCancel={this.onPressCancelBlock}\n onClose={this.onPressCancelBlock}\n text=\"Are you sure you want to block this user?\"\n extraContent={<Text style={styles.commentReportText}>You will no longer see comments made by this user</Text>}\n />\n );\n }\n\n renderCommentUnblockConfirm() {\n return (\n <ConfirmPopup\n visible={!!this.state.commentToUnblock}\n onConfirm={this.onPressConfirmUnblock}\n onCancel={this.onPressCancelUnblock}\n onClose={this.onPressCancelUnblock}\n text=\"Are you sure you want to unblock this user?\"\n extraContent={<Text style={styles.commentReportText}>You will once again see comments made by this user</Text>}\n />\n );\n }\n\n renderCommentReportStatus() {\n const { commentReportedStatus } = this.state;\n const isSuccess = commentReportedStatus === 'success';\n return (\n <ConfirmPopup\n visible={!!commentReportedStatus}\n onConfirm={this.onPressConfirmReportStatus}\n text={isSuccess ? 'Thank you for reporting' : 'Unable to report'}\n extraContent={\n <Text style={styles.commentReportText}>\n {isSuccess ? 'We will review the comment within 24 hours' : 'There was a problem reporting the comment please try again later'}\n </Text>\n }\n hideNo\n yesText={'Done'}\n />\n );\n }\n\n renderCommentImage(c) {\n if (_.isEmpty(c.Image)) {\n return null;\n }\n return (\n <TouchableOpacity style={styles.commentImageContainer} onPress={this.onPressCommentImage.bind(this, get1400(c.Image))}>\n <Image style={styles.commentImage} source={{ uri: getThumb300(c.Image) }} />\n </TouchableOpacity>\n );\n }\n\n renderReplyText = (c, isUserBlocked) => {\n if (this.props.threadId || this.props.hideReplyButton) {\n return null;\n }\n\n const threadComments = _.filter(this.state.comments, innerC => {\n return innerC.ParentId === c.Id;\n });\n\n let content = null;\n\n if (_.isEmpty(threadComments)) {\n // no replies\n content = (\n <Text style={[styles.commentRepliesText, { color: this.props.colourBrandingMain }]}>{`Reply to ${getFirstName(\n !isUserBlocked && c.User ? c.User.displayName : 'comment',\n )}`}</Text>\n );\n } else {\n // existing replies\n const profilePics = _.take(\n _.uniqBy(threadComments, c => c.UserId),\n 3,\n );\n content = (\n <View style={styles.multiReplyContainer}>\n {profilePics.map((c, i) => {\n return <ProfilePic style={{ marginRight: -10 }} Diameter={20} ProfilePic={c.User.profilePic} />;\n })}\n <Text style={[styles.commentRepliesText, { marginLeft: 20, color: this.props.colourBrandingMain }]}>{`${\n threadComments.length\n } repl${getPluralOptions(threadComments.length, 'y', 'ies')}`}</Text>\n </View>\n );\n }\n\n return (\n <View style={styles.commentReplies}>\n <TouchableOpacity\n onPress={() => {\n this.onOpenThread(c);\n }}\n >\n {content}\n </TouchableOpacity>\n </View>\n );\n };\n\n renderComment(c) {\n const isUserBlocked = this.isUserBlocked(c);\n return (\n <View style={styles.comment} key={c.Id}>\n <View style={styles.commentFlex}>\n <ProfilePic ProfilePic={isUserBlocked ? null : c.User.profilePic} Diameter={40} style={styles.commentProfilePic} />\n <View style={styles.commentBlock}>\n <View style={styles.commentTitleRow}>\n {this.canRemoveComment(c) ? (\n <TouchableOpacity onPress={this.onPressDeleteComment.bind(this, c)}>\n <View style={[styles.commentButtonContainer, { backgroundColor: this.props.colourBrandingMain }]}>\n <Icon name=\"trash\" type=\"font-awesome\" iconStyle={styles.commentButtonIcon} />\n </View>\n </TouchableOpacity>\n ) : (\n !this.props.disableFlag && (\n <TouchableOpacity onPress={this.onPressReportComment.bind(this, c)}>\n <View style={[styles.commentButtonContainer, { backgroundColor: this.props.colourBrandingMain }]}>\n <Icon name=\"flag\" type=\"font-awesome\" iconStyle={styles.commentButtonIcon} />\n </View>\n </TouchableOpacity>\n )\n )}\n {!this.props.disableFlag &&\n this.canBlockComment(c) &&\n (isUserBlocked ? (\n <TouchableOpacity style={{ marginRight: 8 }} onPress={this.onPressUnblockUser.bind(this, c)}>\n <View style={[styles.commentButtonContainer, { backgroundColor: this.props.colourBrandingMain }]}>\n <Icon name=\"user-plus\" type=\"font-awesome\" iconStyle={styles.commentButtonIcon} />\n </View>\n </TouchableOpacity>\n ) : (\n <TouchableOpacity style={{ marginRight: 8 }} onPress={this.onPressBlockUser.bind(this, c)}>\n <View style={[styles.commentButtonContainer, { backgroundColor: this.props.colourBrandingMain }]}>\n <Icon name=\"user-times\" type=\"font-awesome\" iconStyle={styles.commentButtonIcon} />\n </View>\n </TouchableOpacity>\n ))}\n <Text style={[styles.commentName, { fontSize: this.getAdjustedSize(13) }]}>\n {isUserBlocked ? '[blocked user]' : c.User.displayName}\n </Text>\n </View>\n {!_.isEmpty(c.Comment) && (\n <Text style={[styles.commentText, { fontSize: this.getAdjustedSize(13) }]}>{isUserBlocked ? '[hidden]' : c.Comment}</Text>\n )}\n {!isUserBlocked && this.renderCommentImage(c)}\n </View>\n </View>\n <View style={styles.commentBottom}>\n <Text style={[styles.commentTime, { fontSize: this.getAdjustedSize(13) }]}>\n {moment\n .utc(c.Timestamp)\n .local()\n .format('D MMM • h:mma')}\n </Text>\n {this.renderReplyText(c, isUserBlocked)}\n </View>\n </View>\n );\n }\n\n renderMute() {\n const { notificationsForComments } = this.props;\n const { muteLoaded, muteExpiry, processing } = this.state;\n if (!notificationsForComments || !muteLoaded) return null;\n\n if (processing)\n return (\n <View style={styles.muteSpinnerContainer}>\n <Spinner size={'small'} color={this.props.colourBrandingMain} />\n </View>\n );\n\n const isMuted = this.isMuted();\n const hours = this.getMuteRemaining();\n const mutedFor = `Muted for ${hours} hour${getPluralS(hours)}`;\n // console.log(muteExpiry.format('DD MMM YYYY hh:mm a'));\n\n return (\n <View style={styles.muteContainer}>\n {isMuted && muteExpiry ? <Text style={[{ color: this.props.colourBrandingMain }, styles.mutedForText]}>{mutedFor}</Text> : null}\n <InlineButton\n onPress={isMuted ? this.onUnmute : this.onMute}\n color=\"#fff\"\n style={[{ borderColor: this.props.colourBrandingMain }, styles.muteButton]}\n disabled={processing}\n disabledOpacity\n noText\n >\n <View style={styles.muteButtonInner}>\n <Icon\n name={isMuted ? 'bell-o' : 'bell-slash-o'}\n type={'font-awesome'}\n iconStyle={[{ color: this.props.colourBrandingMain }, styles.muteButtonIcon]}\n />\n <Text style={[{ color: this.props.colourBrandingMain }, styles.muteButtonText]}>{isMuted ? 'Unmute' : 'Mute'}</Text>\n </View>\n </InlineButton>\n </View>\n );\n }\n\n renderComments() {\n if (this.state.commentsLoading) {\n return (\n <View style={styles.commentSection}>\n <Spinner color={this.props.colourBrandingMain} />\n </View>\n );\n }\n if (this.isEmpty() && !this.state.addingComment) {\n if (_.includes(this.props.user.hidden, 'addComment')) {\n return null;\n }\n if (!_.isNil(this.props.placeHolder) && _.isEmpty(this.props.placeHolder)) return null;\n return (\n <View style={styles.commentSection}>\n <Text style={[styles.commentsEmpty, { fontSize: this.getAdjustedSize(15) }]}>\n {_.isNil(this.props.placeHolder) ? 'Be the first to add a comment!' : this.props.placeHolder}\n </Text>\n </View>\n );\n }\n let source = [...this.state.comments];\n if (this.props.reverseOrder) {\n source = source.reverse();\n }\n if (!this.props.showReplies && !this.props.threadId) {\n source = _.filter(source, c => {\n return !c.ParentId;\n });\n }\n return (\n <View style={styles.commentSection}>\n {!this.isEmpty() && (\n <View style={styles.commentSectionTitleRow}>\n <View style={{ alignItems: 'flex-end' }}>\n {this.renderMute()}\n {!this.props.hideAddComment && this.state.comments.length > 2 && (\n <TouchableOpacity onPress={this.onGoToAdd.bind(this)}>\n <Text style={[styles.goToText, { color: this.props.colourBrandingMain }]}>Add a comment</Text>\n </TouchableOpacity>\n )}\n </View>\n <Text style={[styles.commentCount, { fontSize: this.getAdjustedSize(15) }]}>\n {this.state.comments.length}\n {` comment${getPluralS(this.state.comments.length)}`}\n </Text>\n </View>\n )}\n {this.props.reverseOrder && this.state.addingComment && <Spinner color={this.props.colourBrandingMain} />}\n {source.map(c => {\n return this.renderComment(c);\n })}\n {!this.props.reverseOrder && this.state.addingComment && <Spinner color={this.props.colourBrandingMain} />}\n </View>\n );\n }\n\n renderCommentImagePopup() {\n return (\n <ImagePopup\n visible={this.state.imagePopupOpen}\n images={this.state.imagePopupSource}\n onClose={this.closeCommentGallery.bind(this)}\n ref=\"commentImagePopup\"\n />\n );\n }\n\n renderReportLoading() {\n if (!this.state.reportLoading) return null;\n return (\n <View style={styles.reportLoadingContainer}>\n <Spinner color={this.props.colourBrandingMain} />\n </View>\n );\n }\n\n render() {\n if (_.includes(this.props.user.hidden, 'viewComment')) {\n return null;\n }\n return (\n <View style={[styles.commentSectionOuter, this.props.style]}>\n {this.renderComments()}\n {this.renderReportLoading()}\n {this.renderCommentDeleteConfirm()}\n {this.renderCommentReportConfirm()}\n {this.renderCommentBlockConfirm()}\n {this.renderCommentUnblockConfirm()}\n {this.renderCommentReportStatus()}\n {this.renderCommentImagePopup()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n commentSectionOuter: {\n flex: 1,\n paddingHorizontal: 16,\n },\n commentSection: {\n flex: 1,\n paddingVertical: 12,\n borderTopColor: LINEGREY,\n borderTopWidth: 1,\n },\n commentCount: {\n fontFamily: 'sf-semibold',\n color: TEXT_DARKEST,\n flex: 1,\n marginTop: 4,\n },\n comment: {\n marginTop: 16,\n },\n commentFlex: {\n flexDirection: 'row',\n },\n commentProfilePic: {\n marginRight: 8,\n },\n commentBlock: {\n flex: 1,\n backgroundColor: BG_GREY,\n borderRadius: 5,\n padding: 8,\n },\n commentTitleRow: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n },\n commentButtonContainer: {\n width: 24,\n height: 24,\n borderRadius: 12,\n alignItems: 'center',\n justifyContent: 'center',\n },\n commentButtonIcon: {\n fontSize: 13,\n color: '#fff',\n },\n commentName: {\n fontFamily: 'sf-semibold',\n color: TEXT_DARKEST,\n flex: 1,\n },\n commentText: {\n marginTop: 8,\n fontFamily: 'sf-regular',\n color: TEXT_DARKEST,\n },\n commentBottom: {\n flexDirection: 'row-reverse',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n commentTime: {\n fontFamily: 'sf-regular',\n marginTop: 4,\n color: TEXT_LIGHT,\n textAlign: 'right',\n },\n commentReplies: {\n flex: 1,\n paddingLeft: 48,\n },\n commentRepliesText: {\n fontFamily: 'sf-semibold',\n fontSize: 15,\n },\n multiReplyContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingVertical: 4,\n },\n commentImageContainer: {\n marginTop: 8,\n width: 60,\n height: 60,\n },\n commentImage: {\n width: 60,\n height: 60,\n borderRadius: 2,\n },\n commentsEmpty: {\n fontFamily: 'sf-semibold',\n color: TEXT_DARKEST,\n },\n commentSectionTitleRow: {\n flexDirection: 'row-reverse',\n },\n commentReportText: {\n fontFamily: 'sf-regular',\n fontSize: 14,\n paddingHorizontal: 22,\n textAlign: 'center',\n },\n reportLoadingContainer: {\n paddingVertical: 10,\n },\n goToText: {\n marginTop: 4,\n },\n muteSpinnerContainer: {\n width: 100,\n marginBottom: 6,\n },\n muteContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n marginBottom: 6,\n },\n mutedForText: {\n fontFamily: 'sf-semibold',\n fontSize: 13,\n marginRight: 8,\n },\n muteButton: {\n borderWidth: 1,\n paddingHorizontal: 8,\n },\n muteButtonInner: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n muteButtonIcon: {\n fontSize: 14,\n },\n muteButtonText: {\n fontFamily: 'sf-semibold',\n fontSize: 14,\n marginLeft: 6,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n user: state.user,\n notificationsForComments: getSiteSettingFromState(state, 'NotificationsForComments', false),\n blockedUsers: state.userSettings.blockedUsers || [],\n };\n};\n\nconst commentSection = connect(mapStateToProps, { blockUser, unblockUser }, null, { forwardRef: true })(CommentSection);\nexport { commentSection as CommentSection };\n"]}
|
|
1
|
+
{"version":3,"sources":["CommentSection.js"],"names":["React","Component","View","Text","TouchableOpacity","Image","StyleSheet","_","moment","connect","Icon","getPluralS","getThumb300","get1400","getSiteSettingFromState","getFirstName","getPluralOptions","getMainBrandingColourFromState","TEXT_DARKEST","BG_GREY","TEXT_LIGHT","LINEGREY","reactionActions","notificationActions","blockUser","unblockUser","ConfirmPopup","ProfilePic","ImagePopup","InlineButton","Spinner","Services","CommentSection","constructor","props","c","setState","commentToDelete","removeComment","state","Id","then","res","console","log","newComments","filter","comments","commentToReport","commentToBlock","userId","UserId","commentToUnblock","commentId","reportLoading","reportComment","commentReportedStatus","catch","error","comment","navigation","navigate","threadId","entityType","entityId","processing","data","muteEntity","muteExpiry","Expiry","unmuteEntity","actual","duration","diff","asHours","Math","abs","ceil","notificationsForComments","getEntityNotificationSetting","muteLoaded","commentsLoading","includes","blockedUsers","user","uid","isUserBlocked","hideReplyButton","threadComments","innerC","ParentId","content","isEmpty","styles","commentRepliesText","color","colourBrandingMain","User","displayName","profilePics","take","uniqBy","multiReplyContainer","map","i","marginRight","profilePic","marginLeft","length","commentReplies","onOpenThread","addingComment","componentDidMount","getNotificationSate","hidden","getComments","componentWillUnmount","loadTimer","clearTimeout","onPressCommentImage","image","imagePopupSource","imagePopupOpen","onGoToAdd","commentReply","focusInput","getAdjustedSize","size","scaleFont","fontScale","commentsLoadStarted","current","loadingStarted","loadComments","minTime","maxBy","Timestamp","sortBy","concat","onCommentsLoaded","loadingCompleted","live","setTimeout","refreshFrequency","startedAddingComment","commentAdded","push","onCommentAdded","canRemoveComment","permissions","adminPermission","closeCommentGallery","renderCommentDeleteConfirm","onPressConfirmDelete","onPressCancelDelete","renderCommentReportConfirm","onPressConfirmReport","onPressCancelReport","commentReportText","renderCommentBlockConfirm","onPressConfirmBlock","onPressCancelBlock","renderCommentUnblockConfirm","onPressConfirmUnblock","onPressCancelUnblock","renderCommentReportStatus","isSuccess","onPressConfirmReportStatus","renderCommentImage","commentImageContainer","bind","commentImage","uri","renderComment","commentFlex","commentProfilePic","commentBlock","commentTitleRow","onPressDeleteComment","commentButtonContainer","backgroundColor","commentButtonIcon","disableFlag","onPressReportComment","canBlockComment","onPressUnblockUser","onPressBlockUser","commentName","fontSize","Comment","commentText","commentBottom","commentTime","utc","local","format","renderReplyText","renderMute","muteSpinnerContainer","isMuted","hours","getMuteRemaining","mutedFor","muteContainer","mutedForText","onUnmute","onMute","borderColor","muteButton","muteButtonInner","muteButtonIcon","muteButtonText","renderComments","commentSection","isNil","placeHolder","commentsEmpty","source","reverseOrder","reverse","showReplies","commentSectionTitleRow","alignItems","hideAddComment","goToText","commentCount","renderCommentImagePopup","renderReportLoading","reportLoadingContainer","render","commentSectionOuter","style","create","flex","paddingHorizontal","paddingVertical","borderTopColor","borderTopWidth","fontFamily","marginTop","flexDirection","borderRadius","padding","width","height","justifyContent","textAlign","paddingLeft","marginBottom","borderWidth","mapStateToProps","userSettings","forwardRef"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport { View, Text, TouchableOpacity, Image, StyleSheet } from 'react-native';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { connect } from 'react-redux';\nimport { Icon } from '@rneui/themed';\nimport { getPluralS, getThumb300, get1400, getSiteSettingFromState, getFirstName, getPluralOptions } from '../helper';\nimport { getMainBrandingColourFromState, TEXT_DARKEST, BG_GREY, TEXT_LIGHT, LINEGREY } from '../colours';\nimport { reactionActions, notificationActions } from '../apis';\nimport { blockUser, unblockUser } from '../actions';\nimport { ConfirmPopup } from './ConfirmPopup';\nimport { ProfilePic } from './ProfilePic';\nimport { ImagePopup } from './ImagePopup';\nimport { InlineButton } from './InlineButton';\nimport { Spinner } from './Spinner';\nimport { Services } from '../config';\n\nclass CommentSection extends Component {\n constructor(props) {\n super(props);\n this.state = {\n commentsLoading: false,\n comments: [],\n addingComment: false,\n commentToDelete: null,\n commentToReport: null,\n commentReportedStatus: null,\n reportLoading: false,\n processing: false,\n muteExpiry: null,\n muteLoaded: false,\n };\n }\n\n componentDidMount() {\n this.getNotificationSate();\n\n if (!_.includes(this.props.user.hidden, 'viewComment')) {\n this.getComments();\n }\n }\n\n componentWillUnmount() {\n if (this.loadTimer) {\n clearTimeout(this.loadTimer);\n }\n }\n\n onPressDeleteComment = c => {\n this.setState({ commentToDelete: c });\n };\n\n onPressConfirmDelete = () => {\n reactionActions.removeComment(this.state.commentToDelete.Id).then(res => {\n console.log('deleted');\n });\n const newComments = _.filter(this.state.comments, c => {\n return c.Id !== this.state.commentToDelete.Id;\n });\n this.setState({\n comments: newComments,\n commentToDelete: null,\n });\n };\n\n onPressCancelDelete = () => {\n this.setState({ commentToDelete: null });\n };\n\n onPressReportComment = c => {\n this.setState({ commentToReport: c });\n };\n\n onPressBlockUser = c => {\n this.setState({ commentToBlock: c });\n };\n\n onPressConfirmBlock = () => {\n const userId = this.state.commentToBlock.UserId;\n this.props.blockUser(userId);\n this.setState({ commentToBlock: null });\n };\n\n onPressCancelBlock = () => {\n this.setState({ commentToBlock: null });\n };\n\n onPressUnblockUser = c => {\n this.setState({ commentToUnblock: c });\n };\n\n onPressConfirmUnblock = () => {\n const userId = this.state.commentToUnblock.UserId;\n this.props.unblockUser(userId);\n this.setState({ commentToUnblock: null });\n };\n\n onPressCancelUnblock = () => {\n this.setState({ commentToUnblock: null });\n };\n\n onPressConfirmReport = () => {\n const commentId = this.state.commentToReport.Id;\n this.setState({ reportLoading: true, commentToReport: null }, () => {\n reactionActions\n .reportComment(commentId)\n .then(res => {\n this.setState({ commentReportedStatus: 'success', reportLoading: false });\n })\n .catch(error => {\n console.log('reportComment', error);\n this.setState({ commentReportedStatus: 'fail', reportLoading: false });\n });\n });\n };\n\n onPressCancelReport = () => {\n this.setState({ commentToReport: null });\n };\n\n onPressConfirmReportStatus = () => {\n this.setState({ commentReportedStatus: null });\n };\n\n onPressCommentImage(image) {\n this.setState({\n imagePopupSource: [image],\n imagePopupOpen: true,\n });\n }\n\n onGoToAdd() {\n this.props.commentReply.focusInput();\n }\n\n onOpenThread = comment => {\n Services.navigation.navigate('thread', { ...this.props, threadId: comment.Id });\n };\n\n onMute = () => {\n const { entityType, entityId } = this.props;\n this.setState({ processing: true }, async () => {\n try {\n const { data } = await notificationActions.muteEntity(entityType, entityId);\n // console.log('onMute', data);\n const muteExpiry = moment(data.Expiry);\n this.setState({ muteExpiry, processing: false });\n } catch (error) {\n console.error('onMute', error);\n this.setState({ processing: false });\n }\n });\n };\n\n onUnmute = () => {\n const { entityType, entityId } = this.props;\n this.setState({ processing: true }, async () => {\n try {\n const { data } = await notificationActions.unmuteEntity(entityType, entityId);\n // console.log('onUnmute', data);\n this.setState({ muteExpiry: null, processing: false });\n } catch (error) {\n console.error('onUnmute', error);\n this.setState({ processing: false });\n }\n });\n };\n\n isMuted = () => {\n const { muteExpiry } = this.state;\n return muteExpiry && moment() <= muteExpiry;\n };\n\n getMuteRemaining = () => {\n const { muteExpiry } = this.state;\n const actual = muteExpiry ? moment.duration(muteExpiry.diff(moment())).asHours() : 0;\n return Math.abs(Math.ceil(actual));\n };\n\n getNotificationSate = () => {\n const { processing } = this.state;\n const { entityType, entityId, notificationsForComments } = this.props;\n if (processing || !notificationsForComments) return;\n\n this.setState({ processing: true }, async () => {\n try {\n const { data } = await notificationActions.getEntityNotificationSetting(entityType, entityId);\n // console.log('getNotificationSate', data);\n const muteExpiry = data ? moment(data.Expiry) : null;\n this.setState({ muteExpiry, muteLoaded: true, processing: false });\n } catch (error) {\n console.error('getNotificationSate', error);\n this.setState({ processing: false });\n }\n });\n };\n\n getAdjustedSize(size) {\n if (this.props.scaleFont) {\n return size + this.props.user.fontScale;\n }\n return size;\n }\n\n getComments() {\n if (!this.state.commentsLoadStarted) {\n this.setState({\n commentsLoadStarted: true,\n commentsLoading: true,\n });\n this.props.commentReply?.current?.loadingStarted();\n\n this.loadComments();\n }\n }\n\n isEmpty() {\n return _.isEmpty(this.state.comments);\n }\n\n loadComments() {\n const minTime = this.isEmpty()\n ? 0\n : _.maxBy(this.state.comments, c => {\n return c.Timestamp;\n }).Timestamp;\n reactionActions.getComments(this.props.entityId, this.props.entityType, minTime).then(res => {\n this.setState(\n {\n comments: _.sortBy(\n _.uniqBy(\n _.filter(_.concat(this.state.comments, res.data), c => {\n if (!this.props.threadId) {\n return true;\n }\n return c.Id === this.props.threadId || c.ParentId === this.props.threadId;\n }),\n c => {\n return c.Id;\n },\n ),\n 'Timestamp',\n ),\n commentsLoading: false,\n },\n () => {\n if (this.props.onCommentsLoaded) {\n this.props.onCommentsLoaded(this.state.comments.length);\n }\n },\n );\n //if (this.props.commentReply) {\n this.props.commentReply?.current?.loadingCompleted();\n //}\n if (this.props.live) {\n this.loadTimer = setTimeout(() => {\n this.loadComments();\n }, this.props.refreshFrequency || 2000);\n }\n });\n }\n\n isLoading = () => {\n return this.state.commentsLoading;\n };\n\n startedAddingComment() {\n this.setState({\n addingComment: true,\n });\n }\n\n commentAdded(comment) {\n const newComments = this.state.comments;\n newComments.push(comment);\n this.setState(\n {\n addingComment: false,\n comments: newComments,\n },\n () => {\n if (this.props.onCommentAdded) {\n this.props.onCommentAdded();\n }\n },\n );\n }\n\n isUserBlocked = c => {\n return _.includes(this.props.blockedUsers, c.UserId);\n };\n\n canBlockComment = c => {\n return this.props.user.uid !== c.UserId;\n };\n\n canRemoveComment(c) {\n if (this.props.user.uid === c.UserId) {\n return true;\n }\n return _.includes(this.props.user.permissions, this.props.adminPermission);\n }\n\n closeCommentGallery() {\n this.setState({\n imagePopupSource: [],\n imagePopupOpen: false,\n });\n }\n\n renderCommentDeleteConfirm() {\n return (\n <ConfirmPopup\n visible={!!this.state.commentToDelete}\n onConfirm={this.onPressConfirmDelete}\n onCancel={this.onPressCancelDelete}\n onClose={this.onPressCancelDelete}\n text=\"Are you sure you want to delete this comment?\"\n />\n );\n }\n\n renderCommentReportConfirm() {\n return (\n <ConfirmPopup\n visible={!!this.state.commentToReport}\n onConfirm={this.onPressConfirmReport}\n onCancel={this.onPressCancelReport}\n onClose={this.onPressCancelReport}\n text=\"Are you sure you want to report this comment?\"\n extraContent={<Text style={styles.commentReportText}>This comment will be reported to our team and considered for deletion</Text>}\n />\n );\n }\n\n renderCommentBlockConfirm() {\n return (\n <ConfirmPopup\n visible={!!this.state.commentToBlock}\n onConfirm={this.onPressConfirmBlock}\n onCancel={this.onPressCancelBlock}\n onClose={this.onPressCancelBlock}\n text=\"Are you sure you want to block this user?\"\n extraContent={<Text style={styles.commentReportText}>You will no longer see comments made by this user</Text>}\n />\n );\n }\n\n renderCommentUnblockConfirm() {\n return (\n <ConfirmPopup\n visible={!!this.state.commentToUnblock}\n onConfirm={this.onPressConfirmUnblock}\n onCancel={this.onPressCancelUnblock}\n onClose={this.onPressCancelUnblock}\n text=\"Are you sure you want to unblock this user?\"\n extraContent={<Text style={styles.commentReportText}>You will once again see comments made by this user</Text>}\n />\n );\n }\n\n renderCommentReportStatus() {\n const { commentReportedStatus } = this.state;\n const isSuccess = commentReportedStatus === 'success';\n return (\n <ConfirmPopup\n visible={!!commentReportedStatus}\n onConfirm={this.onPressConfirmReportStatus}\n text={isSuccess ? 'Thank you for reporting' : 'Unable to report'}\n extraContent={\n <Text style={styles.commentReportText}>\n {isSuccess ? 'We will review the comment within 24 hours' : 'There was a problem reporting the comment please try again later'}\n </Text>\n }\n hideNo\n yesText={'Done'}\n />\n );\n }\n\n renderCommentImage(c) {\n if (_.isEmpty(c.Image)) {\n return null;\n }\n return (\n <TouchableOpacity style={styles.commentImageContainer} onPress={this.onPressCommentImage.bind(this, get1400(c.Image))}>\n <Image style={styles.commentImage} source={{ uri: getThumb300(c.Image) }} />\n </TouchableOpacity>\n );\n }\n\n renderReplyText = (c, isUserBlocked) => {\n if (this.props.threadId || this.props.hideReplyButton) {\n return null;\n }\n\n const threadComments = _.filter(this.state.comments, innerC => {\n return innerC.ParentId === c.Id;\n });\n\n let content = null;\n\n if (_.isEmpty(threadComments)) {\n // no replies\n content = (\n <Text style={[styles.commentRepliesText, { color: this.props.colourBrandingMain }]}>{`Reply to ${getFirstName(\n !isUserBlocked && c.User ? c.User.displayName : 'comment',\n )}`}</Text>\n );\n } else {\n // existing replies\n const profilePics = _.take(\n _.uniqBy(threadComments, c => c.UserId),\n 3,\n );\n content = (\n <View style={styles.multiReplyContainer}>\n {profilePics.map((c, i) => {\n return <ProfilePic style={{ marginRight: -10 }} Diameter={20} ProfilePic={c.User.profilePic} />;\n })}\n <Text style={[styles.commentRepliesText, { marginLeft: 20, color: this.props.colourBrandingMain }]}>{`${\n threadComments.length\n } repl${getPluralOptions(threadComments.length, 'y', 'ies')}`}</Text>\n </View>\n );\n }\n\n return (\n <View style={styles.commentReplies}>\n <TouchableOpacity\n onPress={() => {\n this.onOpenThread(c);\n }}\n >\n {content}\n </TouchableOpacity>\n </View>\n );\n };\n\n renderComment(c) {\n const isUserBlocked = this.isUserBlocked(c);\n return (\n <View style={styles.comment} key={c.Id}>\n <View style={styles.commentFlex}>\n <ProfilePic ProfilePic={isUserBlocked ? null : c.User.profilePic} Diameter={40} style={styles.commentProfilePic} />\n <View style={styles.commentBlock}>\n <View style={styles.commentTitleRow}>\n {this.canRemoveComment(c) ? (\n <TouchableOpacity onPress={this.onPressDeleteComment.bind(this, c)}>\n <View style={[styles.commentButtonContainer, { backgroundColor: this.props.colourBrandingMain }]}>\n <Icon name=\"trash\" type=\"font-awesome\" iconStyle={styles.commentButtonIcon} />\n </View>\n </TouchableOpacity>\n ) : (\n !this.props.disableFlag && (\n <TouchableOpacity onPress={this.onPressReportComment.bind(this, c)}>\n <View style={[styles.commentButtonContainer, { backgroundColor: this.props.colourBrandingMain }]}>\n <Icon name=\"flag\" type=\"font-awesome\" iconStyle={styles.commentButtonIcon} />\n </View>\n </TouchableOpacity>\n )\n )}\n {!this.props.disableFlag &&\n this.canBlockComment(c) &&\n (isUserBlocked ? (\n <TouchableOpacity style={{ marginRight: 8 }} onPress={this.onPressUnblockUser.bind(this, c)}>\n <View style={[styles.commentButtonContainer, { backgroundColor: this.props.colourBrandingMain }]}>\n <Icon name=\"user-plus\" type=\"font-awesome\" iconStyle={styles.commentButtonIcon} />\n </View>\n </TouchableOpacity>\n ) : (\n <TouchableOpacity style={{ marginRight: 8 }} onPress={this.onPressBlockUser.bind(this, c)}>\n <View style={[styles.commentButtonContainer, { backgroundColor: this.props.colourBrandingMain }]}>\n <Icon name=\"user-times\" type=\"font-awesome\" iconStyle={styles.commentButtonIcon} />\n </View>\n </TouchableOpacity>\n ))}\n <Text style={[styles.commentName, { fontSize: this.getAdjustedSize(13) }]}>\n {isUserBlocked ? '[blocked user]' : c.User.displayName}\n </Text>\n </View>\n {!_.isEmpty(c.Comment) && (\n <Text style={[styles.commentText, { fontSize: this.getAdjustedSize(13) }]}>{isUserBlocked ? '[hidden]' : c.Comment}</Text>\n )}\n {!isUserBlocked && this.renderCommentImage(c)}\n </View>\n </View>\n <View style={styles.commentBottom}>\n <Text style={[styles.commentTime, { fontSize: this.getAdjustedSize(13) }]}>\n {moment\n .utc(c.Timestamp)\n .local()\n .format('D MMM • h:mma')}\n </Text>\n {this.renderReplyText(c, isUserBlocked)}\n </View>\n </View>\n );\n }\n\n renderMute() {\n const { notificationsForComments } = this.props;\n const { muteLoaded, muteExpiry, processing } = this.state;\n if (!notificationsForComments || !muteLoaded) return null;\n\n if (processing)\n return (\n <View style={styles.muteSpinnerContainer}>\n <Spinner size={'small'} color={this.props.colourBrandingMain} />\n </View>\n );\n\n const isMuted = this.isMuted();\n const hours = this.getMuteRemaining();\n const mutedFor = `Muted for ${hours} hour${getPluralS(hours)}`;\n // console.log(muteExpiry.format('DD MMM YYYY hh:mm a'));\n\n return (\n <View style={styles.muteContainer}>\n {isMuted && muteExpiry ? <Text style={[{ color: this.props.colourBrandingMain }, styles.mutedForText]}>{mutedFor}</Text> : null}\n <InlineButton\n onPress={isMuted ? this.onUnmute : this.onMute}\n color=\"#fff\"\n style={[{ borderColor: this.props.colourBrandingMain }, styles.muteButton]}\n disabled={processing}\n disabledOpacity\n noText\n >\n <View style={styles.muteButtonInner}>\n <Icon\n name={isMuted ? 'bell-o' : 'bell-slash-o'}\n type={'font-awesome'}\n iconStyle={[{ color: this.props.colourBrandingMain }, styles.muteButtonIcon]}\n />\n <Text style={[{ color: this.props.colourBrandingMain }, styles.muteButtonText]}>{isMuted ? 'Unmute' : 'Mute'}</Text>\n </View>\n </InlineButton>\n </View>\n );\n }\n\n renderComments() {\n if (this.state.commentsLoading) {\n return (\n <View style={styles.commentSection}>\n <Spinner color={this.props.colourBrandingMain} />\n </View>\n );\n }\n if (this.isEmpty() && !this.state.addingComment) {\n if (_.includes(this.props.user.hidden, 'addComment')) {\n return null;\n }\n if (!_.isNil(this.props.placeHolder) && _.isEmpty(this.props.placeHolder)) return null;\n return (\n <View style={styles.commentSection}>\n <Text style={[styles.commentsEmpty, { fontSize: this.getAdjustedSize(15) }]}>\n {_.isNil(this.props.placeHolder) ? 'Be the first to add a comment!' : this.props.placeHolder}\n </Text>\n </View>\n );\n }\n let source = [...this.state.comments];\n if (this.props.reverseOrder) {\n source = source.reverse();\n }\n if (!this.props.showReplies && !this.props.threadId) {\n source = _.filter(source, c => {\n return !c.ParentId;\n });\n }\n return (\n <View style={styles.commentSection}>\n {!this.isEmpty() && (\n <View style={styles.commentSectionTitleRow}>\n <View style={{ alignItems: 'flex-end' }}>\n {this.renderMute()}\n {!this.props.hideAddComment && this.state.comments.length > 2 && (\n <TouchableOpacity onPress={this.onGoToAdd.bind(this)}>\n <Text style={[styles.goToText, { color: this.props.colourBrandingMain }]}>Add a comment</Text>\n </TouchableOpacity>\n )}\n </View>\n <Text style={[styles.commentCount, { fontSize: this.getAdjustedSize(15) }]}>\n {this.state.comments.length}\n {` comment${getPluralS(this.state.comments.length)}`}\n </Text>\n </View>\n )}\n {this.props.reverseOrder && this.state.addingComment && <Spinner color={this.props.colourBrandingMain} />}\n {source.map(c => {\n return this.renderComment(c);\n })}\n {!this.props.reverseOrder && this.state.addingComment && <Spinner color={this.props.colourBrandingMain} />}\n </View>\n );\n }\n\n renderCommentImagePopup() {\n return (\n <ImagePopup\n visible={this.state.imagePopupOpen}\n images={this.state.imagePopupSource}\n onClose={this.closeCommentGallery.bind(this)}\n ref=\"commentImagePopup\"\n />\n );\n }\n\n renderReportLoading() {\n if (!this.state.reportLoading) return null;\n return (\n <View style={styles.reportLoadingContainer}>\n <Spinner color={this.props.colourBrandingMain} />\n </View>\n );\n }\n\n render() {\n if (_.includes(this.props.user.hidden, 'viewComment')) {\n return null;\n }\n return (\n <View style={[styles.commentSectionOuter, this.props.style]}>\n {this.renderComments()}\n {this.renderReportLoading()}\n {this.renderCommentDeleteConfirm()}\n {this.renderCommentReportConfirm()}\n {this.renderCommentBlockConfirm()}\n {this.renderCommentUnblockConfirm()}\n {this.renderCommentReportStatus()}\n {this.renderCommentImagePopup()}\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n commentSectionOuter: {\n flex: 1,\n paddingHorizontal: 16,\n },\n commentSection: {\n flex: 1,\n paddingVertical: 12,\n borderTopColor: LINEGREY,\n borderTopWidth: 1,\n },\n commentCount: {\n fontFamily: 'sf-semibold',\n color: TEXT_DARKEST,\n flex: 1,\n marginTop: 4,\n },\n comment: {\n marginTop: 16,\n },\n commentFlex: {\n flexDirection: 'row',\n },\n commentProfilePic: {\n marginRight: 8,\n },\n commentBlock: {\n flex: 1,\n backgroundColor: BG_GREY,\n borderRadius: 5,\n padding: 8,\n },\n commentTitleRow: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n },\n commentButtonContainer: {\n width: 24,\n height: 24,\n borderRadius: 12,\n alignItems: 'center',\n justifyContent: 'center',\n },\n commentButtonIcon: {\n fontSize: 13,\n color: '#fff',\n },\n commentName: {\n fontFamily: 'sf-semibold',\n color: TEXT_DARKEST,\n flex: 1,\n },\n commentText: {\n marginTop: 8,\n fontFamily: 'sf-regular',\n color: TEXT_DARKEST,\n },\n commentBottom: {\n flexDirection: 'row-reverse',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n commentTime: {\n fontFamily: 'sf-regular',\n marginTop: 4,\n color: TEXT_LIGHT,\n textAlign: 'right',\n },\n commentReplies: {\n flex: 1,\n paddingLeft: 48,\n },\n commentRepliesText: {\n fontFamily: 'sf-semibold',\n fontSize: 15,\n },\n multiReplyContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingVertical: 4,\n },\n commentImageContainer: {\n marginTop: 8,\n width: 60,\n height: 60,\n },\n commentImage: {\n width: 60,\n height: 60,\n borderRadius: 2,\n },\n commentsEmpty: {\n fontFamily: 'sf-semibold',\n color: TEXT_DARKEST,\n },\n commentSectionTitleRow: {\n flexDirection: 'row-reverse',\n },\n commentReportText: {\n fontFamily: 'sf-regular',\n fontSize: 14,\n paddingHorizontal: 22,\n textAlign: 'center',\n },\n reportLoadingContainer: {\n paddingVertical: 10,\n },\n goToText: {\n marginTop: 4,\n },\n muteSpinnerContainer: {\n width: 100,\n marginBottom: 6,\n },\n muteContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n marginBottom: 6,\n },\n mutedForText: {\n fontFamily: 'sf-semibold',\n fontSize: 13,\n marginRight: 8,\n },\n muteButton: {\n borderWidth: 1,\n paddingHorizontal: 8,\n },\n muteButtonInner: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n muteButtonIcon: {\n fontSize: 14,\n },\n muteButtonText: {\n fontFamily: 'sf-semibold',\n fontSize: 14,\n marginLeft: 6,\n },\n});\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n user: state.user,\n notificationsForComments: getSiteSettingFromState(state, 'NotificationsForComments', false),\n blockedUsers: state.userSettings.blockedUsers || [],\n };\n};\n\nconst commentSection = connect(mapStateToProps, { blockUser, unblockUser }, null, { forwardRef: true })(CommentSection);\nexport { commentSection as CommentSection };\n"]}
|
|
@@ -3,7 +3,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
3
3
|
import React, { Component } from 'react';
|
|
4
4
|
import _ from 'lodash';
|
|
5
5
|
import { Text, TouchableOpacity } from 'react-native';
|
|
6
|
-
import { Icon } from '
|
|
6
|
+
import { Icon } from '@rneui/themed';
|
|
7
7
|
import { connect } from 'react-redux';
|
|
8
8
|
import { TEXT_DARK, getMainBrandingColourFromState } from '../colours';
|
|
9
9
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DropDownItem.js"],"names":["React","Component","_","Text","TouchableOpacity","Icon","connect","TEXT_DARK","getMainBrandingColourFromState","DropDownItem","renderIcon","isUndefined","props","icon","styles","dropDownItem_Icon","dropDownItem_IconStyle","fontSize","color","colourBrandingMain","render","container","last","marginBottom","style","onPress","text","textStyle","flexDirection","minHeight","width","position","fontFamily","lineHeight","backgroundColor","marginRight","alignSelf","textAlign","mapStateToProps","state","dropDownItem"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,CAAP,MAAc,QAAd;AACA,SAASC,IAAT,EAAeC,gBAAf,QAAuC,cAAvC;AACA,SAASC,IAAT,QAAqB,
|
|
1
|
+
{"version":3,"sources":["DropDownItem.js"],"names":["React","Component","_","Text","TouchableOpacity","Icon","connect","TEXT_DARK","getMainBrandingColourFromState","DropDownItem","renderIcon","isUndefined","props","icon","styles","dropDownItem_Icon","dropDownItem_IconStyle","fontSize","color","colourBrandingMain","render","container","last","marginBottom","style","onPress","text","textStyle","flexDirection","minHeight","width","position","fontFamily","lineHeight","backgroundColor","marginRight","alignSelf","textAlign","mapStateToProps","state","dropDownItem"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,CAAP,MAAc,QAAd;AACA,SAASC,IAAT,EAAeC,gBAAf,QAAuC,cAAvC;AACA,SAASC,IAAT,QAAqB,eAArB;AACA,SAASC,OAAT,QAAwB,aAAxB;AACA,SAASC,SAAT,EAAoBC,8BAApB,QAA0D,YAA1D;;AAEA,MAAMC,YAAN,SAA2BR,SAA3B,CAAqC;AAAA;AAAA;;AAAA,mCAC3B,EAD2B;AAAA;;AAGnCS,EAAAA,UAAU,GAAG;AACX,QAAI,CAACR,CAAC,CAACS,WAAF,CAAc,KAAKC,KAAL,CAAWC,IAAzB,CAAL,EAAqC;AACnC,0BACE,oBAAC,IAAD;AACE,QAAA,IAAI,EAAE,KAAKD,KAAL,CAAWC,IADnB;AAEE,QAAA,IAAI,EAAC,cAFP;AAGE,QAAA,KAAK,EAAEC,MAAM,CAACC,iBAHhB;AAIE,QAAA,SAAS,EAAE,CAACD,MAAM,CAACE,sBAAR,EAAgC;AAAEC,UAAAA,QAAQ,EAAE,EAAZ;AAAgBC,UAAAA,KAAK,EAAE,KAAKN,KAAL,CAAWO;AAAlC,SAAhC;AAJb,QADF;AAQD;;AACD,WAAO,IAAP;AACD;;AAEDC,EAAAA,MAAM,GAAG;AACP,wBACE,oBAAC,gBAAD;AACE,MAAA,KAAK,EAAE,CAACN,MAAM,CAACO,SAAR,EAAmB,KAAKT,KAAL,CAAWU,IAAX,IAAmB;AAAEC,QAAAA,YAAY,EAAE;AAAhB,OAAtC,EAA2D,KAAKX,KAAL,CAAWY,KAAtE,CADT;AAEE,MAAA,OAAO,EAAE,KAAKZ,KAAL,CAAWa,OAFtB;AAGE,MAAA,aAAa,EAAE;AAHjB,OAKG,KAAKf,UAAL,EALH,eAME,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAE,CAACI,MAAM,CAACY,IAAR,EAAc,KAAKd,KAAL,CAAWe,SAAzB;AAAb,OAAmD,KAAKf,KAAL,CAAWc,IAA9D,CANF,CADF;AAUD;;AA5BkC;;AA+BrC,MAAMZ,MAAM,GAAG;AACbO,EAAAA,SAAS,EAAE;AACTO,IAAAA,aAAa,EAAE,KADN;AAETL,IAAAA,YAAY,EAAE,EAFL;AAGTM,IAAAA,SAAS,EAAE,EAHF;AAITC,IAAAA,KAAK,EAAE,MAJE;AAKTC,IAAAA,QAAQ,EAAE;AALD,GADE;AAQbL,EAAAA,IAAI,EAAE;AACJM,IAAAA,UAAU,EAAE,WADR;AAEJf,IAAAA,QAAQ,EAAE,EAFN;AAGJgB,IAAAA,UAAU,EAAE,EAHR;AAIJf,IAAAA,KAAK,EAAEX,SAJH;AAKJ2B,IAAAA,eAAe,EAAE;AALb,GARO;AAebnB,EAAAA,iBAAiB,EAAE;AACjBoB,IAAAA,WAAW,EAAE,CADI;AAEjBL,IAAAA,KAAK,EAAE,EAFU;AAGjBM,IAAAA,SAAS,EAAE;AAHM,GAfN;AAoBbpB,EAAAA,sBAAsB,EAAE;AACtBC,IAAAA,QAAQ,EAAE,EADY;AAEtBgB,IAAAA,UAAU,EAAE,EAFU;AAGtBI,IAAAA,SAAS,EAAE;AAHW;AApBX,CAAf;;AA2BA,MAAMC,eAAe,GAAGC,KAAK,IAAI;AAC/B,SAAO;AACLpB,IAAAA,kBAAkB,EAAEX,8BAA8B,CAAC+B,KAAD;AAD7C,GAAP;AAGD,CAJD;;AAMA,MAAMC,YAAY,GAAGlC,OAAO,CAACgC,eAAD,EAAkB,EAAlB,CAAP,CAA6B7B,YAA7B,CAArB;AACA,SAAS+B,YAAY,IAAI/B,YAAzB","sourcesContent":["import React, { Component } from 'react';\nimport _ from 'lodash';\nimport { Text, TouchableOpacity } from 'react-native';\nimport { Icon } from '@rneui/themed';\nimport { connect } from 'react-redux';\nimport { TEXT_DARK, getMainBrandingColourFromState } from '../colours';\n\nclass DropDownItem extends Component {\n state = {};\n\n renderIcon() {\n if (!_.isUndefined(this.props.icon)) {\n return (\n <Icon\n name={this.props.icon}\n type=\"font-awesome\"\n style={styles.dropDownItem_Icon}\n iconStyle={[styles.dropDownItem_IconStyle, { fontSize: 16, color: this.props.colourBrandingMain }]}\n />\n );\n }\n return null;\n }\n\n render() {\n return (\n <TouchableOpacity\n style={[styles.container, this.props.last && { marginBottom: 0 }, this.props.style]}\n onPress={this.props.onPress}\n activeOpacity={0.6}\n >\n {this.renderIcon()}\n <Text style={[styles.text, this.props.textStyle]}>{this.props.text}</Text>\n </TouchableOpacity>\n );\n }\n}\n\nconst styles = {\n container: {\n flexDirection: 'row',\n marginBottom: 12,\n minHeight: 18,\n width: '100%',\n position: 'relative',\n },\n text: {\n fontFamily: 'sf-medium',\n fontSize: 16,\n lineHeight: 18,\n color: TEXT_DARK,\n backgroundColor: 'transparent',\n },\n dropDownItem_Icon: {\n marginRight: 8,\n width: 18,\n alignSelf: 'center',\n },\n dropDownItem_IconStyle: {\n fontSize: 16,\n lineHeight: 18,\n textAlign: 'center',\n },\n};\n\nconst mapStateToProps = state => {\n return {\n colourBrandingMain: getMainBrandingColourFromState(state),\n };\n};\n\nconst dropDownItem = connect(mapStateToProps, {})(DropDownItem);\nexport { dropDownItem as DropDownItem };\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { PureComponent } from 'react';
|
|
2
2
|
import { View, Text, TouchableOpacity } from 'react-native';
|
|
3
|
-
import { Icon } from '
|
|
3
|
+
import { Icon } from '@rneui/themed';
|
|
4
4
|
import { connect } from 'react-redux';
|
|
5
5
|
import { TEXT_DARK, TEXT_LIGHT, getMainBrandingColourFromState } from '../colours';
|
|
6
6
|
import { FormCardSection } from './FormCardSection';
|