@plusscommunities/pluss-circles-app-groups 1.3.2 → 1.3.4

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.
@@ -23,8 +23,6 @@ class Chat extends Component {
23
23
  }
24
24
 
25
25
  if (_.isEmpty(this.state.group.Title) && this.state.group.IsPrivate) {
26
- console.log(this.state.group);
27
-
28
26
  const otherUser = _.find(this.state.group.Audience || [], u => {
29
27
  return !!u && u.userId !== this.props.user.Id;
30
28
  });
@@ -72,6 +70,10 @@ class Chat extends Component {
72
70
  }
73
71
  });
74
72
 
73
+ _defineProperty(this, "isPrivateChat", () => {
74
+ return this.state.group.IsPrivate;
75
+ });
76
+
75
77
  _defineProperty(this, "toggleSettings", () => {
76
78
  this.setState({
77
79
  settingsOpen: !this.state.settingsOpen
@@ -491,11 +493,11 @@ class Chat extends Component {
491
493
  textStyle: this.state.muteSubmitting ? {
492
494
  color: TEXT_LIGHTER
493
495
  } : {}
494
- }), !this.isGroupOwner(this.props.user.uid) && /*#__PURE__*/React.createElement(DropDownItem, {
496
+ }), !this.isGroupOwner(this.props.user.uid) && !this.isPrivateChat() && /*#__PURE__*/React.createElement(DropDownItem, {
495
497
  last: true,
496
498
  text: 'Leave',
497
499
  onPress: this.onOpenDeletePrompt.bind(this, 'leave')
498
- }), this.isGroupOwner(this.props.user.uid) && /*#__PURE__*/React.createElement(DropDownItem, {
500
+ }), this.isGroupOwner(this.props.user.uid) && !this.isPrivateChat() && /*#__PURE__*/React.createElement(DropDownItem, {
499
501
  last: true,
500
502
  text: 'Delete',
501
503
  onPress: this.onOpenDeletePrompt.bind(this, 'delete')
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","View","Platform","Alert","TouchableWithoutFeedback","connect","_","moment","PlussChat","Header","ConfirmPopup","DropDownMenu","DropDownItem","getGroupInvites","updateUnreadCounter","handleGroupInvite","softLeaveGroup","deleteGroup","createChat","disconnectChat","blockUser","deleteChat","updateGroups","clearGroupCounter","updateChatMessages","TEXT_DARK","TEXT_LIGHTER","StatusBarHeight","getMainBrandingColourFromState","getLightBrandingColourFromState","NavigationService","getTinyChatDefault","messageActions","circleActions","values","Chat","constructor","props","state","group","isEmpty","Title","IsPrivate","console","log","otherUser","find","Audience","u","userId","user","Id","displayName","event","navigate","attachment","Type","place","back","goBack","setState","settingsOpen","alert","text","onPress","closeSettings","style","cancelable","currentUser","_id","chatUserKey","chatKey","onPressBack","_isMounted","MIN_COMPOSER_HEIGHT","select","ios","android","interval","uid","name","avatar","isUndefined","profilePic","chat","messages","keyboardOpen","newLoading","showDeleteConfirm","popUpType","muteChat","muteSubmitting","hasInvite","inviteActioned","inviteActionPopup","invitePending","componentDidMount","new","prepareChatPage","UNSAFE_componentWillReceiveProps","nextProps","prepareNewProps","componentWillUnmount","clearInterval","key","chatName","title","newGroup","forEach","groups","Muted","statee","reducerMessages","newStates","firstMessages","message","sendMessage","chats","blockedUserKeys","includes","newGrop2","muteTest","muteGroup","then","res","data","catch","err","onSend","groupLast","lastMessage","cloneDeep","GroupId","RowId","createdAt","utc","valueOf","mergeMessages","isGroupOwner","CreatorId","Creator","getChatName","userNames","without","join","getMaxTime","maxMessage","maxBy","m","fetchMessages","iteration","getMessages","setTimeout","fetchSingleMessage","timestamp","receivedMessages","newMessages","sortBy","concat","uniqBy","reverse","setInterval","regularFetch","bind","goToGroupInfo","screenCircleDetails","startEdit","screenEditCircle","onOpenDeletePrompt","type","onCancelDelete","onConfirmDelete","renderConfirmPopup","entityName","render","flex","styles","container","top","right","width","zIndex","elevation","color","toggleSettings","getTitle","backgroundColor","send","fontSize","textAlign","setting","settingContainer","marginLeft","settingDropDown","height","position","paddingTop","overflow","settingDropDownOpen","dropDownOuterContainer","margin","dropDownInnerContainer","flexDirection","borderRadius","paddingBottom","paddingHorizontal","shadowColor","shadowOffset","shadowOpacity","borderWidth","borderColor","dropDownItem","alignItems","marginTop","dropDownItem_Text","fontFamily","lineHeight","mapStateToProps","reducerKeyChats","list","selectedChatKey","blockedUsers","reducerKey","colourBrandingMain","colourBrandingLight"],"sources":["Chat.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, Platform, Alert, TouchableWithoutFeedback } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { PlussChat, Header, ConfirmPopup, DropDownMenu, DropDownItem } from '../common';\nimport {\n getGroupInvites,\n updateUnreadCounter,\n handleGroupInvite,\n softLeaveGroup,\n deleteGroup,\n createChat,\n disconnectChat,\n blockUser,\n deleteChat,\n updateGroups,\n clearGroupCounter,\n updateChatMessages,\n} from '../../actions';\nimport { TEXT_DARK, TEXT_LIGHTER, StatusBarHeight, getMainBrandingColourFromState, getLightBrandingColourFromState } from '../../js';\nimport NavigationService from '../../js/NavigationService';\nimport { getTinyChatDefault } from '../../config';\nimport { messageActions, circleActions } from '../../webapi';\nimport { values } from '../../values.config';\n\nclass Chat extends Component {\n constructor(props) {\n super(props);\n this._isMounted = false;\n\n // used to match the constant used by gifted chat\n this.MIN_COMPOSER_HEIGHT = Platform.select({\n ios: 33,\n android: 41,\n });\n\n this.interval = null;\n\n this.state = {\n currentUser: {\n _id: this.props.user.uid,\n name: this.props.user.displayName,\n avatar:\n !_.isUndefined(this.props.user.profilePic) && !_.isEmpty(this.props.user.profilePic)\n ? this.props.user.profilePic\n : getTinyChatDefault(),\n },\n chat: {},\n group: { Title: '' },\n messages: [],\n settingsOpen: false,\n keyboardOpen: false,\n\n newLoading: false,\n showDeleteConfirm: false,\n\n popUpType: 'leave',\n\n muteChat: false,\n muteSubmitting: false,\n\n hasInvite: false,\n inviteActioned: false,\n inviteActionPopup: false,\n invitePending: false,\n };\n }\n\n componentDidMount() {\n this._isMounted = true;\n this.chatUserKey = null;\n if (this.props.new) {\n this.setState({ newLoading: true });\n }\n this.prepareChatPage();\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n // if (this.state.hasInvite && !this.state.inviteActioned) {\n // return;\n // }\n this.prepareNewProps(nextProps);\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n this.setState({ inviteActionPopup: false });\n this.props.disconnectChat(this.chatKey);\n clearInterval(this.interval);\n }\n\n prepareChatPage() {\n if (this.props.chat) {\n // if (this.props.isInvite && !this.state.inviteActioned) {\n // this.setState({hasInvite:true, inviteActionPopup: true });\n // }\n // Opening existing chat\n const { chat } = this.props;\n if (!_.isUndefined(this.props.chat.key)) {\n this.chatKey = this.props.chat.key;\n } else {\n this.chatKey = this.props.chat.Id;\n }\n\n this.chatName = !_.isUndefined(chat.title) ? chat.title : chat.Title;\n let newGroup = chat;\n\n newGroup.Title = !_.isUndefined(chat.title) ? chat.title : chat.Title;\n _.forEach(this.props.groups, group => {\n if (group.Id === this.props.chat.key || group.Id === this.props.chat.Id) {\n newGroup = { ...group };\n }\n });\n let muteChat = false;\n if (!_.isUndefined(newGroup.Muted)) {\n newGroup.Muted.forEach(user => {\n if (user === this.props.user.uid) {\n muteChat = true;\n }\n });\n }\n\n const statee = { chat, group: newGroup, muteChat };\n if (this.chatKey && !_.isUndefined(this.props.reducerMessages[this.chatKey])) {\n statee.messages = this.props.reducerMessages[this.chatKey];\n }\n\n this.setState(statee);\n this.connect();\n }\n }\n\n prepareNewProps(nextProps) {\n const newStates = {};\n if (!this.chatKey && nextProps.chatKey) {\n this.chatKey = nextProps.chatKey;\n\n // If first message is provided, send message automatically\n if (this.firstMessages) {\n _.forEach(this.firstMessages, message => {\n this.sendMessage(this.props.user.uid, this.chatKey, message);\n });\n }\n this.connect();\n }\n\n _.forEach(nextProps.chats, chat => {\n if (chat.key === this.chatKey) {\n newStates.chat = { ...chat };\n }\n });\n\n // If the other user blocked current user, exit\n if (\n this.chatUserKey &&\n this.props.blockedUserKeys &&\n !_.includes(this.props.blockedUserKeys, this.chatUserKey) &&\n nextProps.blockedUserKeys &&\n _.includes(nextProps.blockedUserKeys, this.chatUserKey)\n ) {\n this.onPressBack();\n }\n if (!nextProps.new) {\n newStates.newLoading = false;\n this.setState({ newLoading: false });\n }\n let newGrop2 = this.state.group;\n _.forEach(nextProps.groups, group => {\n if (group.Id === this.chatKey) {\n newGrop2 = { ...group };\n }\n });\n newStates.muteChat = false;\n if (!_.isUndefined(newGrop2.Muted)) {\n newGrop2.Muted.forEach(user => {\n if (user === this.props.user.uid) {\n newStates.muteChat = true;\n }\n });\n }\n newStates.group = newGrop2;\n if (this._isMounted) {\n this.setState(newStates);\n }\n }\n\n getTitle = () => {\n if (!this.state.group) {\n return '';\n }\n if (_.isEmpty(this.state.group.Title) && this.state.group.IsPrivate) {\n console.log(this.state.group);\n const otherUser = _.find(this.state.group.Audience || [], u => {\n return !!u && u.userId !== this.props.user.Id;\n });\n if (otherUser) {\n return otherUser.displayName;\n }\n }\n return this.state.group.Title;\n };\n\n onPressEvent = event => {\n NavigationService.navigate('eventDetail', { event });\n };\n\n muteTest() {\n if (this.state.muteSubmitting) {\n return;\n }\n this.setState({ muteSubmitting: true });\n\n circleActions\n .muteGroup(this.state.group.Id, this.props.user.uid)\n .then(res => {\n this.setState({ muteSubmitting: false });\n this.props.updateGroups([res.data.group]);\n })\n .catch(err => {\n this.setState({ muteSubmitting: false });\n });\n }\n\n onPressAttachment = attachment => {\n switch (attachment.Type) {\n case 'Event':\n // TODO: No need to handle?\n NavigationService.navigate('eventDetail', { event: attachment });\n break;\n case 'Place':\n // TODO: No need to handle?\n NavigationService.navigate('placeDetail', { place: attachment });\n break;\n default:\n return;\n }\n };\n\n onPressBack = () => {\n if (this.props.back) {\n NavigationService.goBack(this.props.back);\n } else {\n NavigationService.goBack();\n }\n };\n\n onSend(messages = []) {\n if (this.chatKey) {\n this.sendMessage(messages[0]);\n }\n }\n\n sendMessage(message) {\n const groupLast = {\n lastMessage: _.cloneDeep(message),\n };\n\n message.GroupId = this.chatKey;\n message.RowId = `${this.chatKey}_${message._id}`;\n message.createdAt = moment.utc().valueOf();\n\n this.mergeMessages([message]);\n\n messageActions\n .sendMessage(this.props.user.uid, this.chatKey, groupLast, message)\n .then(res => {})\n .catch(err => {});\n }\n\n isGroupOwner(userId) {\n if (!_.isUndefined(this.state.group.CreatorId) && userId === this.state.group.CreatorId) {\n return true;\n }\n if (!_.isUndefined(this.state.group.Creator) && userId === this.state.group.Creator.uid) {\n return true;\n }\n return false;\n }\n\n getChatName(title, userNames) {\n if (!_.isEmpty(title)) {\n return title;\n }\n return _.without(userNames, this.state.currentUser.name).join(', ');\n }\n\n getMaxTime() {\n const maxMessage = _.maxBy(this.state.messages, m => {\n return m.createdAt;\n });\n if (maxMessage) {\n return maxMessage.createdAt;\n }\n return 0;\n }\n\n fetchMessages(iteration) {\n if (!iteration) {\n iteration = 1;\n }\n messageActions\n .getMessages(this.chatKey, 50, this.getMaxTime())\n .then(res => {\n this.mergeMessages(res.data);\n })\n .catch(err => {\n if (iteration < 20) {\n setTimeout(() => {\n this.fetchMessages(iteration + 1);\n }, 250);\n }\n });\n }\n\n fetchSingleMessage(timestamp) {\n this.props.clearGroupCounter(this.chatKey, this.props.user.uid);\n messageActions.getMessages(this.chatKey, 1, timestamp, timestamp).then(res => {\n this.mergeMessages(res.data);\n });\n }\n\n mergeMessages(receivedMessages) {\n const newMessages = _.sortBy(_.concat(this.state.messages, receivedMessages), 'createdAt');\n if (this._isMounted) {\n this.setState({\n messages: _.uniqBy(newMessages, m => {\n return m._id;\n }).reverse(),\n });\n }\n if (!_.isEmpty(receivedMessages)) {\n this.props.clearGroupCounter(this.chatKey, this.props.user.uid);\n }\n this.props.updateChatMessages(\n this.chatKey,\n _.uniqBy(newMessages, m => {\n return m._id;\n }).reverse(),\n );\n }\n\n connect() {\n if (this.chatKey) {\n this.fetchMessages();\n\n this.interval = setInterval(this.regularFetch.bind(this), 2000);\n }\n }\n\n regularFetch() {\n messageActions\n .getMessages(this.chatKey, 50, this.getMaxTime() + 1)\n .then(res => {\n if (!_.isEmpty(res.data)) {\n this.mergeMessages(res.data);\n }\n })\n .catch(err => {});\n }\n\n toggleSettings = () => {\n this.setState({ settingsOpen: !this.state.settingsOpen });\n };\n\n closeSettings = () => {\n this.setState({ settingsOpen: false });\n };\n\n confirmBlockUser = () => {\n Alert.alert(\n 'Block user',\n 'Are you sure you want to block this user? Existing chat with this user will be deleted.',\n [\n { text: 'Cancel', onPress: () => this.closeSettings(), style: 'cancel' },\n { text: 'Ok', onPress: () => this.blockUser() },\n ],\n { cancelable: false },\n );\n };\n\n blockUser = () => {\n this.closeSettings();\n // Block the user\n this.props.blockUser(this.state.currentUser._id, this.chatUserKey, this.chatKey);\n // Delete this chat\n this.props.deleteChat(this.chatKey);\n\n this.onPressBack();\n };\n\n goToGroupInfo() {\n this.setState({ settingsOpen: false });\n NavigationService.navigate(values.screenCircleDetails, {\n group: this.state.group,\n });\n }\n\n startEdit() {\n this.setState({ settingsOpen: false });\n NavigationService.navigate(values.screenEditCircle, {\n chat: this.state.chat,\n });\n }\n\n onOpenDeletePrompt(type) {\n this.setState({ showDeleteConfirm: true, settingsOpen: false, popUpType: type });\n }\n\n onCancelDelete() {\n this.setState({ showDeleteConfirm: false });\n }\n\n onConfirmDelete() {\n if (this.state.popUpType === 'leave') {\n this.props.softLeaveGroup(this.state.group);\n }\n if (this.state.popUpType === 'delete') {\n this.props.deleteGroup(this.state.group);\n }\n\n this.onPressBack();\n }\n\n renderConfirmPopup() {\n return (\n <ConfirmPopup\n visible={this.state.showDeleteConfirm}\n onConfirm={this.onConfirmDelete.bind(this)}\n onCancel={this.onCancelDelete.bind(this)}\n text={`Are you sure you want to ${this.state.popUpType} this ${values.entityName}?`}\n />\n );\n }\n\n render() {\n return (\n <TouchableWithoutFeedback onPress={this.closeSettings} style={{ flex: 1 }} disabled={!this.state.settingsOpen}>\n <View style={styles.container}>\n <DropDownMenu\n visible={this.state.settingsOpen}\n style={{ top: StatusBarHeight(50), right: 16, width: 150, zIndex: 300, elevation: 15 }}\n >\n <DropDownItem text={`View ${values.entityName}`} onPress={this.goToGroupInfo.bind(this)} />\n {this.isGroupOwner(this.props.user.uid) && <DropDownItem text={'Manage'} onPress={this.startEdit.bind(this)} />}\n <DropDownItem\n text={this.state.muteSubmitting ? 'Updating...' : this.state.muteChat ? 'Unmute' : 'Mute'}\n onPress={this.muteTest.bind(this)}\n textStyle={this.state.muteSubmitting ? { color: TEXT_LIGHTER } : {}}\n />\n {!this.isGroupOwner(this.props.user.uid) && (\n <DropDownItem last text={'Leave'} onPress={this.onOpenDeletePrompt.bind(this, 'leave')} />\n )}\n {this.isGroupOwner(this.props.user.uid) && (\n <DropDownItem last text={'Delete'} onPress={this.onOpenDeletePrompt.bind(this, 'delete')} />\n )}\n </DropDownMenu>\n <Header\n leftIcon=\"angle-left\"\n onPressLeft={this.onPressBack.bind(this)}\n rightIconType=\"pluss\"\n rightIcon=\"more_options\"\n onPressRight={this.toggleSettings.bind(this)}\n text={this.getTitle()}\n onTextPress={this.goToGroupInfo.bind(this)}\n />\n\n <PlussChat messages={this.chatKey ? this.state.messages : []} onSend={this.onSend.bind(this)} />\n {this.renderConfirmPopup()}\n </View>\n </TouchableWithoutFeedback>\n );\n }\n}\n\nconst styles = {\n container: {\n flex: 1,\n backgroundColor: '#fff',\n },\n send: {\n color: '#fff',\n fontSize: 15,\n width: 30,\n textAlign: 'center',\n },\n setting: {\n fontSize: 18,\n },\n settingContainer: {\n marginLeft: 20,\n },\n settingDropDown: {\n height: 0,\n width: 'auto',\n position: 'absolute',\n right: 2,\n top: 62,\n zIndex: 2,\n elevation: 2,\n paddingTop: 0,\n overflow: 'hidden',\n },\n settingDropDownOpen: {\n height: 'auto',\n },\n dropDownOuterContainer: {\n paddingTop: 9,\n overflow: 'visible',\n backgroundColor: 'transparent',\n margin: 5,\n },\n dropDownInnerContainer: {\n flexDirection: 'column',\n backgroundColor: '#fcfcfc',\n borderRadius: 3,\n paddingBottom: 10,\n paddingHorizontal: 15,\n overflow: 'visible',\n shadowColor: '#000',\n shadowOffset: { width: 1, height: 1 },\n shadowOpacity: 0.3,\n ...Platform.select({\n android: {\n borderWidth: 1,\n borderColor: 'rgba(230, 230, 230, .4)',\n },\n }),\n },\n dropDownItem: {\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: 10,\n },\n dropDownItem_Text: {\n fontFamily: 'sf-regular',\n fontSize: 15,\n lineHeight: 22,\n color: TEXT_DARK,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n reducerMessages: state[values.reducerKeyChats].messages,\n chats: state[values.reducerKeyChats].list,\n chatKey: state[values.reducerKeyChats].selectedChatKey,\n blockedUserKeys: state[values.reducerKeyChats].blockedUsers,\n user: state.user,\n groups: state[values.reducerKey].list,\n colourBrandingMain: getMainBrandingColourFromState(state),\n colourBrandingLight: getLightBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {\n updateUnreadCounter,\n getGroupInvites,\n handleGroupInvite,\n updateGroups,\n softLeaveGroup,\n deleteGroup,\n createChat,\n disconnectChat,\n blockUser,\n deleteChat,\n clearGroupCounter,\n updateChatMessages,\n})(Chat);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Component","View","Platform","Alert","TouchableWithoutFeedback","connect","_","moment","PlussChat","Header","ConfirmPopup","DropDownMenu","DropDownItem","getGroupInvites","updateUnreadCounter","handleGroupInvite","softLeaveGroup","deleteGroup","createChat","disconnectChat","blockUser","deleteChat","updateGroups","clearGroupCounter","updateChatMessages","TEXT_DARK","TEXT_LIGHTER","StatusBarHeight","getMainBrandingColourFromState","getLightBrandingColourFromState","NavigationService","getTinyChatDefault","messageActions","circleActions","values","Chat","constructor","props","state","group","isEmpty","Title","IsPrivate","otherUser","find","Audience","u","userId","user","Id","displayName","event","navigate","attachment","Type","place","back","goBack","setState","settingsOpen","alert","text","onPress","closeSettings","style","cancelable","currentUser","_id","chatUserKey","chatKey","onPressBack","_isMounted","MIN_COMPOSER_HEIGHT","select","ios","android","interval","uid","name","avatar","isUndefined","profilePic","chat","messages","keyboardOpen","newLoading","showDeleteConfirm","popUpType","muteChat","muteSubmitting","hasInvite","inviteActioned","inviteActionPopup","invitePending","componentDidMount","new","prepareChatPage","UNSAFE_componentWillReceiveProps","nextProps","prepareNewProps","componentWillUnmount","clearInterval","key","chatName","title","newGroup","forEach","groups","Muted","statee","reducerMessages","newStates","firstMessages","message","sendMessage","chats","blockedUserKeys","includes","newGrop2","muteTest","muteGroup","then","res","data","catch","err","onSend","groupLast","lastMessage","cloneDeep","GroupId","RowId","createdAt","utc","valueOf","mergeMessages","isGroupOwner","CreatorId","Creator","getChatName","userNames","without","join","getMaxTime","maxMessage","maxBy","m","fetchMessages","iteration","getMessages","setTimeout","fetchSingleMessage","timestamp","receivedMessages","newMessages","sortBy","concat","uniqBy","reverse","setInterval","regularFetch","bind","goToGroupInfo","screenCircleDetails","startEdit","screenEditCircle","onOpenDeletePrompt","type","onCancelDelete","onConfirmDelete","renderConfirmPopup","entityName","render","flex","styles","container","top","right","width","zIndex","elevation","color","isPrivateChat","toggleSettings","getTitle","backgroundColor","send","fontSize","textAlign","setting","settingContainer","marginLeft","settingDropDown","height","position","paddingTop","overflow","settingDropDownOpen","dropDownOuterContainer","margin","dropDownInnerContainer","flexDirection","borderRadius","paddingBottom","paddingHorizontal","shadowColor","shadowOffset","shadowOpacity","borderWidth","borderColor","dropDownItem","alignItems","marginTop","dropDownItem_Text","fontFamily","lineHeight","mapStateToProps","reducerKeyChats","list","selectedChatKey","blockedUsers","reducerKey","colourBrandingMain","colourBrandingLight"],"sources":["Chat.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, Platform, Alert, TouchableWithoutFeedback } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { PlussChat, Header, ConfirmPopup, DropDownMenu, DropDownItem } from '../common';\nimport {\n getGroupInvites,\n updateUnreadCounter,\n handleGroupInvite,\n softLeaveGroup,\n deleteGroup,\n createChat,\n disconnectChat,\n blockUser,\n deleteChat,\n updateGroups,\n clearGroupCounter,\n updateChatMessages,\n} from '../../actions';\nimport { TEXT_DARK, TEXT_LIGHTER, StatusBarHeight, getMainBrandingColourFromState, getLightBrandingColourFromState } from '../../js';\nimport NavigationService from '../../js/NavigationService';\nimport { getTinyChatDefault } from '../../config';\nimport { messageActions, circleActions } from '../../webapi';\nimport { values } from '../../values.config';\n\nclass Chat extends Component {\n constructor(props) {\n super(props);\n this._isMounted = false;\n\n // used to match the constant used by gifted chat\n this.MIN_COMPOSER_HEIGHT = Platform.select({\n ios: 33,\n android: 41,\n });\n\n this.interval = null;\n\n this.state = {\n currentUser: {\n _id: this.props.user.uid,\n name: this.props.user.displayName,\n avatar:\n !_.isUndefined(this.props.user.profilePic) && !_.isEmpty(this.props.user.profilePic)\n ? this.props.user.profilePic\n : getTinyChatDefault(),\n },\n chat: {},\n group: { Title: '' },\n messages: [],\n settingsOpen: false,\n keyboardOpen: false,\n\n newLoading: false,\n showDeleteConfirm: false,\n\n popUpType: 'leave',\n\n muteChat: false,\n muteSubmitting: false,\n\n hasInvite: false,\n inviteActioned: false,\n inviteActionPopup: false,\n invitePending: false,\n };\n }\n\n componentDidMount() {\n this._isMounted = true;\n this.chatUserKey = null;\n if (this.props.new) {\n this.setState({ newLoading: true });\n }\n this.prepareChatPage();\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n // if (this.state.hasInvite && !this.state.inviteActioned) {\n // return;\n // }\n this.prepareNewProps(nextProps);\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n this.setState({ inviteActionPopup: false });\n this.props.disconnectChat(this.chatKey);\n clearInterval(this.interval);\n }\n\n prepareChatPage() {\n if (this.props.chat) {\n // if (this.props.isInvite && !this.state.inviteActioned) {\n // this.setState({hasInvite:true, inviteActionPopup: true });\n // }\n // Opening existing chat\n const { chat } = this.props;\n if (!_.isUndefined(this.props.chat.key)) {\n this.chatKey = this.props.chat.key;\n } else {\n this.chatKey = this.props.chat.Id;\n }\n\n this.chatName = !_.isUndefined(chat.title) ? chat.title : chat.Title;\n let newGroup = chat;\n\n newGroup.Title = !_.isUndefined(chat.title) ? chat.title : chat.Title;\n _.forEach(this.props.groups, group => {\n if (group.Id === this.props.chat.key || group.Id === this.props.chat.Id) {\n newGroup = { ...group };\n }\n });\n let muteChat = false;\n if (!_.isUndefined(newGroup.Muted)) {\n newGroup.Muted.forEach(user => {\n if (user === this.props.user.uid) {\n muteChat = true;\n }\n });\n }\n\n const statee = { chat, group: newGroup, muteChat };\n if (this.chatKey && !_.isUndefined(this.props.reducerMessages[this.chatKey])) {\n statee.messages = this.props.reducerMessages[this.chatKey];\n }\n\n this.setState(statee);\n this.connect();\n }\n }\n\n prepareNewProps(nextProps) {\n const newStates = {};\n if (!this.chatKey && nextProps.chatKey) {\n this.chatKey = nextProps.chatKey;\n\n // If first message is provided, send message automatically\n if (this.firstMessages) {\n _.forEach(this.firstMessages, message => {\n this.sendMessage(this.props.user.uid, this.chatKey, message);\n });\n }\n this.connect();\n }\n\n _.forEach(nextProps.chats, chat => {\n if (chat.key === this.chatKey) {\n newStates.chat = { ...chat };\n }\n });\n\n // If the other user blocked current user, exit\n if (\n this.chatUserKey &&\n this.props.blockedUserKeys &&\n !_.includes(this.props.blockedUserKeys, this.chatUserKey) &&\n nextProps.blockedUserKeys &&\n _.includes(nextProps.blockedUserKeys, this.chatUserKey)\n ) {\n this.onPressBack();\n }\n if (!nextProps.new) {\n newStates.newLoading = false;\n this.setState({ newLoading: false });\n }\n let newGrop2 = this.state.group;\n _.forEach(nextProps.groups, group => {\n if (group.Id === this.chatKey) {\n newGrop2 = { ...group };\n }\n });\n newStates.muteChat = false;\n if (!_.isUndefined(newGrop2.Muted)) {\n newGrop2.Muted.forEach(user => {\n if (user === this.props.user.uid) {\n newStates.muteChat = true;\n }\n });\n }\n newStates.group = newGrop2;\n if (this._isMounted) {\n this.setState(newStates);\n }\n }\n\n getTitle = () => {\n if (!this.state.group) {\n return '';\n }\n if (_.isEmpty(this.state.group.Title) && this.state.group.IsPrivate) {\n const otherUser = _.find(this.state.group.Audience || [], u => {\n return !!u && u.userId !== this.props.user.Id;\n });\n if (otherUser) {\n return otherUser.displayName;\n }\n }\n return this.state.group.Title;\n };\n\n onPressEvent = event => {\n NavigationService.navigate('eventDetail', { event });\n };\n\n muteTest() {\n if (this.state.muteSubmitting) {\n return;\n }\n this.setState({ muteSubmitting: true });\n\n circleActions\n .muteGroup(this.state.group.Id, this.props.user.uid)\n .then(res => {\n this.setState({ muteSubmitting: false });\n this.props.updateGroups([res.data.group]);\n })\n .catch(err => {\n this.setState({ muteSubmitting: false });\n });\n }\n\n onPressAttachment = attachment => {\n switch (attachment.Type) {\n case 'Event':\n // TODO: No need to handle?\n NavigationService.navigate('eventDetail', { event: attachment });\n break;\n case 'Place':\n // TODO: No need to handle?\n NavigationService.navigate('placeDetail', { place: attachment });\n break;\n default:\n return;\n }\n };\n\n onPressBack = () => {\n if (this.props.back) {\n NavigationService.goBack(this.props.back);\n } else {\n NavigationService.goBack();\n }\n };\n\n onSend(messages = []) {\n if (this.chatKey) {\n this.sendMessage(messages[0]);\n }\n }\n\n sendMessage(message) {\n const groupLast = {\n lastMessage: _.cloneDeep(message),\n };\n\n message.GroupId = this.chatKey;\n message.RowId = `${this.chatKey}_${message._id}`;\n message.createdAt = moment.utc().valueOf();\n\n this.mergeMessages([message]);\n\n messageActions\n .sendMessage(this.props.user.uid, this.chatKey, groupLast, message)\n .then(res => {})\n .catch(err => {});\n }\n\n isPrivateChat = () => {\n return this.state.group.IsPrivate;\n };\n\n isGroupOwner(userId) {\n if (!_.isUndefined(this.state.group.CreatorId) && userId === this.state.group.CreatorId) {\n return true;\n }\n if (!_.isUndefined(this.state.group.Creator) && userId === this.state.group.Creator.uid) {\n return true;\n }\n return false;\n }\n\n getChatName(title, userNames) {\n if (!_.isEmpty(title)) {\n return title;\n }\n return _.without(userNames, this.state.currentUser.name).join(', ');\n }\n\n getMaxTime() {\n const maxMessage = _.maxBy(this.state.messages, m => {\n return m.createdAt;\n });\n if (maxMessage) {\n return maxMessage.createdAt;\n }\n return 0;\n }\n\n fetchMessages(iteration) {\n if (!iteration) {\n iteration = 1;\n }\n messageActions\n .getMessages(this.chatKey, 50, this.getMaxTime())\n .then(res => {\n this.mergeMessages(res.data);\n })\n .catch(err => {\n if (iteration < 20) {\n setTimeout(() => {\n this.fetchMessages(iteration + 1);\n }, 250);\n }\n });\n }\n\n fetchSingleMessage(timestamp) {\n this.props.clearGroupCounter(this.chatKey, this.props.user.uid);\n messageActions.getMessages(this.chatKey, 1, timestamp, timestamp).then(res => {\n this.mergeMessages(res.data);\n });\n }\n\n mergeMessages(receivedMessages) {\n const newMessages = _.sortBy(_.concat(this.state.messages, receivedMessages), 'createdAt');\n if (this._isMounted) {\n this.setState({\n messages: _.uniqBy(newMessages, m => {\n return m._id;\n }).reverse(),\n });\n }\n if (!_.isEmpty(receivedMessages)) {\n this.props.clearGroupCounter(this.chatKey, this.props.user.uid);\n }\n this.props.updateChatMessages(\n this.chatKey,\n _.uniqBy(newMessages, m => {\n return m._id;\n }).reverse(),\n );\n }\n\n connect() {\n if (this.chatKey) {\n this.fetchMessages();\n\n this.interval = setInterval(this.regularFetch.bind(this), 2000);\n }\n }\n\n regularFetch() {\n messageActions\n .getMessages(this.chatKey, 50, this.getMaxTime() + 1)\n .then(res => {\n if (!_.isEmpty(res.data)) {\n this.mergeMessages(res.data);\n }\n })\n .catch(err => {});\n }\n\n toggleSettings = () => {\n this.setState({ settingsOpen: !this.state.settingsOpen });\n };\n\n closeSettings = () => {\n this.setState({ settingsOpen: false });\n };\n\n confirmBlockUser = () => {\n Alert.alert(\n 'Block user',\n 'Are you sure you want to block this user? Existing chat with this user will be deleted.',\n [\n { text: 'Cancel', onPress: () => this.closeSettings(), style: 'cancel' },\n { text: 'Ok', onPress: () => this.blockUser() },\n ],\n { cancelable: false },\n );\n };\n\n blockUser = () => {\n this.closeSettings();\n // Block the user\n this.props.blockUser(this.state.currentUser._id, this.chatUserKey, this.chatKey);\n // Delete this chat\n this.props.deleteChat(this.chatKey);\n\n this.onPressBack();\n };\n\n goToGroupInfo() {\n this.setState({ settingsOpen: false });\n NavigationService.navigate(values.screenCircleDetails, {\n group: this.state.group,\n });\n }\n\n startEdit() {\n this.setState({ settingsOpen: false });\n NavigationService.navigate(values.screenEditCircle, {\n chat: this.state.chat,\n });\n }\n\n onOpenDeletePrompt(type) {\n this.setState({ showDeleteConfirm: true, settingsOpen: false, popUpType: type });\n }\n\n onCancelDelete() {\n this.setState({ showDeleteConfirm: false });\n }\n\n onConfirmDelete() {\n if (this.state.popUpType === 'leave') {\n this.props.softLeaveGroup(this.state.group);\n }\n if (this.state.popUpType === 'delete') {\n this.props.deleteGroup(this.state.group);\n }\n\n this.onPressBack();\n }\n\n renderConfirmPopup() {\n return (\n <ConfirmPopup\n visible={this.state.showDeleteConfirm}\n onConfirm={this.onConfirmDelete.bind(this)}\n onCancel={this.onCancelDelete.bind(this)}\n text={`Are you sure you want to ${this.state.popUpType} this ${values.entityName}?`}\n />\n );\n }\n\n render() {\n return (\n <TouchableWithoutFeedback onPress={this.closeSettings} style={{ flex: 1 }} disabled={!this.state.settingsOpen}>\n <View style={styles.container}>\n <DropDownMenu\n visible={this.state.settingsOpen}\n style={{ top: StatusBarHeight(50), right: 16, width: 150, zIndex: 300, elevation: 15 }}\n >\n <DropDownItem text={`View ${values.entityName}`} onPress={this.goToGroupInfo.bind(this)} />\n {this.isGroupOwner(this.props.user.uid) && <DropDownItem text={'Manage'} onPress={this.startEdit.bind(this)} />}\n <DropDownItem\n text={this.state.muteSubmitting ? 'Updating...' : this.state.muteChat ? 'Unmute' : 'Mute'}\n onPress={this.muteTest.bind(this)}\n textStyle={this.state.muteSubmitting ? { color: TEXT_LIGHTER } : {}}\n />\n {!this.isGroupOwner(this.props.user.uid) && !this.isPrivateChat() && (\n <DropDownItem last text={'Leave'} onPress={this.onOpenDeletePrompt.bind(this, 'leave')} />\n )}\n {this.isGroupOwner(this.props.user.uid) && !this.isPrivateChat() && (\n <DropDownItem last text={'Delete'} onPress={this.onOpenDeletePrompt.bind(this, 'delete')} />\n )}\n </DropDownMenu>\n <Header\n leftIcon=\"angle-left\"\n onPressLeft={this.onPressBack.bind(this)}\n rightIconType=\"pluss\"\n rightIcon=\"more_options\"\n onPressRight={this.toggleSettings.bind(this)}\n text={this.getTitle()}\n onTextPress={this.goToGroupInfo.bind(this)}\n />\n\n <PlussChat messages={this.chatKey ? this.state.messages : []} onSend={this.onSend.bind(this)} />\n {this.renderConfirmPopup()}\n </View>\n </TouchableWithoutFeedback>\n );\n }\n}\n\nconst styles = {\n container: {\n flex: 1,\n backgroundColor: '#fff',\n },\n send: {\n color: '#fff',\n fontSize: 15,\n width: 30,\n textAlign: 'center',\n },\n setting: {\n fontSize: 18,\n },\n settingContainer: {\n marginLeft: 20,\n },\n settingDropDown: {\n height: 0,\n width: 'auto',\n position: 'absolute',\n right: 2,\n top: 62,\n zIndex: 2,\n elevation: 2,\n paddingTop: 0,\n overflow: 'hidden',\n },\n settingDropDownOpen: {\n height: 'auto',\n },\n dropDownOuterContainer: {\n paddingTop: 9,\n overflow: 'visible',\n backgroundColor: 'transparent',\n margin: 5,\n },\n dropDownInnerContainer: {\n flexDirection: 'column',\n backgroundColor: '#fcfcfc',\n borderRadius: 3,\n paddingBottom: 10,\n paddingHorizontal: 15,\n overflow: 'visible',\n shadowColor: '#000',\n shadowOffset: { width: 1, height: 1 },\n shadowOpacity: 0.3,\n ...Platform.select({\n android: {\n borderWidth: 1,\n borderColor: 'rgba(230, 230, 230, .4)',\n },\n }),\n },\n dropDownItem: {\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: 10,\n },\n dropDownItem_Text: {\n fontFamily: 'sf-regular',\n fontSize: 15,\n lineHeight: 22,\n color: TEXT_DARK,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n reducerMessages: state[values.reducerKeyChats].messages,\n chats: state[values.reducerKeyChats].list,\n chatKey: state[values.reducerKeyChats].selectedChatKey,\n blockedUserKeys: state[values.reducerKeyChats].blockedUsers,\n user: state.user,\n groups: state[values.reducerKey].list,\n colourBrandingMain: getMainBrandingColourFromState(state),\n colourBrandingLight: getLightBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {\n updateUnreadCounter,\n getGroupInvites,\n handleGroupInvite,\n updateGroups,\n softLeaveGroup,\n deleteGroup,\n createChat,\n disconnectChat,\n blockUser,\n deleteChat,\n clearGroupCounter,\n updateChatMessages,\n})(Chat);\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plusscommunities/pluss-circles-app-groups",
3
- "version": "1.3.2",
3
+ "version": "1.3.4",
4
4
  "description": "Extension package to enable circles on Pluss Communities Platform",
5
5
  "main": "dist/module/index.js",
6
6
  "module": "dist/module/index.js",
@@ -26,7 +26,7 @@
26
26
  "author": "Phillip Suh",
27
27
  "license": "ISC",
28
28
  "dependencies": {
29
- "@plusscommunities/pluss-core-app": "1.7.1",
29
+ "@plusscommunities/pluss-core-app": "1.8.4",
30
30
  "axios": "^0.16.2",
31
31
  "lodash": "^4.17.4",
32
32
  "moment": "^2.18.1",
@@ -190,7 +190,6 @@ class Chat extends Component {
190
190
  return '';
191
191
  }
192
192
  if (_.isEmpty(this.state.group.Title) && this.state.group.IsPrivate) {
193
- console.log(this.state.group);
194
193
  const otherUser = _.find(this.state.group.Audience || [], u => {
195
194
  return !!u && u.userId !== this.props.user.Id;
196
195
  });
@@ -268,6 +267,10 @@ class Chat extends Component {
268
267
  .catch(err => {});
269
268
  }
270
269
 
270
+ isPrivateChat = () => {
271
+ return this.state.group.IsPrivate;
272
+ };
273
+
271
274
  isGroupOwner(userId) {
272
275
  if (!_.isUndefined(this.state.group.CreatorId) && userId === this.state.group.CreatorId) {
273
276
  return true;
@@ -448,10 +451,10 @@ class Chat extends Component {
448
451
  onPress={this.muteTest.bind(this)}
449
452
  textStyle={this.state.muteSubmitting ? { color: TEXT_LIGHTER } : {}}
450
453
  />
451
- {!this.isGroupOwner(this.props.user.uid) && (
454
+ {!this.isGroupOwner(this.props.user.uid) && !this.isPrivateChat() && (
452
455
  <DropDownItem last text={'Leave'} onPress={this.onOpenDeletePrompt.bind(this, 'leave')} />
453
456
  )}
454
- {this.isGroupOwner(this.props.user.uid) && (
457
+ {this.isGroupOwner(this.props.user.uid) && !this.isPrivateChat() && (
455
458
  <DropDownItem last text={'Delete'} onPress={this.onOpenDeletePrompt.bind(this, 'delete')} />
456
459
  )}
457
460
  </DropDownMenu>