@plusscommunities/pluss-circles-app-groups 8.0.5 → 8.0.6-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.
Files changed (133) hide show
  1. package/dist/module/actions/ChatActions.js +3 -3
  2. package/dist/module/actions/ChatActions.js.map +1 -1
  3. package/dist/module/actions/GroupActions.js +18 -18
  4. package/dist/module/actions/GroupActions.js.map +1 -1
  5. package/dist/module/actions/index.js +3 -3
  6. package/dist/module/actions/index.js.map +1 -1
  7. package/dist/module/actions/types.js +2 -2
  8. package/dist/module/actions/types.js.map +1 -1
  9. package/dist/module/assets/fonts.js +1 -1
  10. package/dist/module/assets/fonts.js.map +1 -1
  11. package/dist/module/components/chat/Chat.js +83 -101
  12. package/dist/module/components/chat/Chat.js.map +1 -1
  13. package/dist/module/components/chat/ChatList.js +49 -49
  14. package/dist/module/components/chat/ChatList.js.map +1 -1
  15. package/dist/module/components/chat/ContactsList.js +21 -21
  16. package/dist/module/components/chat/ContactsList.js.map +1 -1
  17. package/dist/module/components/chat/KioskPeoplePage.js +38 -37
  18. package/dist/module/components/chat/KioskPeoplePage.js.map +1 -1
  19. package/dist/module/components/chat/PeopleContainer.js +5 -5
  20. package/dist/module/components/chat/PeopleContainer.js.map +1 -1
  21. package/dist/module/components/chat/PeoplePage.js +41 -41
  22. package/dist/module/components/chat/PeoplePage.js.map +1 -1
  23. package/dist/module/components/common/SwipeableUserListing.js +22 -22
  24. package/dist/module/components/common/SwipeableUserListing.js.map +1 -1
  25. package/dist/module/components/common/index.js +2 -2
  26. package/dist/module/components/common/index.js.map +1 -1
  27. package/dist/module/components/events/EventInvitePopup.js +40 -40
  28. package/dist/module/components/events/EventInvitePopup.js.map +1 -1
  29. package/dist/module/components/groups/EditGroup.js +62 -62
  30. package/dist/module/components/groups/EditGroup.js.map +1 -1
  31. package/dist/module/components/groups/GroupDetails.js +32 -32
  32. package/dist/module/components/groups/GroupDetails.js.map +1 -1
  33. package/dist/module/components/groups/GroupsList.js +10 -10
  34. package/dist/module/components/groups/GroupsList.js.map +1 -1
  35. package/dist/module/components/groups/GroupsWidget.js +18 -18
  36. package/dist/module/components/groups/GroupsWidget.js.map +1 -1
  37. package/dist/module/components/groups/NewGroup.js +101 -101
  38. package/dist/module/components/groups/NewGroup.js.map +1 -1
  39. package/dist/module/components/groups/PublicGroup.js +17 -17
  40. package/dist/module/components/groups/PublicGroup.js.map +1 -1
  41. package/dist/module/components/groups/PublicGroupAction.js +39 -39
  42. package/dist/module/components/groups/PublicGroupAction.js.map +1 -1
  43. package/dist/module/components/notifications/GroupInvite.js +25 -25
  44. package/dist/module/components/notifications/GroupInvite.js.map +1 -1
  45. package/dist/module/components/notifications/GroupInviteAction.js +44 -44
  46. package/dist/module/components/notifications/GroupInviteAction.js.map +1 -1
  47. package/dist/module/components/notifications/GroupMessage.js +17 -17
  48. package/dist/module/components/notifications/GroupMessage.js.map +1 -1
  49. package/dist/module/components/takeover/TakeoverBackground.js +5 -5
  50. package/dist/module/components/takeover/TakeoverBackground.js.map +1 -1
  51. package/dist/module/config/index.js +2 -2
  52. package/dist/module/config/index.js.map +1 -1
  53. package/dist/module/core.config.js +1 -1
  54. package/dist/module/core.config.js.map +1 -1
  55. package/dist/module/feature.config.js +27 -27
  56. package/dist/module/feature.config.js.map +1 -1
  57. package/dist/module/index.js +14 -14
  58. package/dist/module/index.js.map +1 -1
  59. package/dist/module/js/Colors.js +1 -1
  60. package/dist/module/js/Colors.js.map +1 -1
  61. package/dist/module/js/NavigationService.js +1 -1
  62. package/dist/module/js/NavigationService.js.map +1 -1
  63. package/dist/module/js/Styles.js +1 -1
  64. package/dist/module/js/Styles.js.map +1 -1
  65. package/dist/module/js/circles/MapStateToDirectMessages.js +2 -2
  66. package/dist/module/js/circles/MapStateToDirectMessages.js.map +1 -1
  67. package/dist/module/js/index.js +3 -3
  68. package/dist/module/js/index.js.map +1 -1
  69. package/dist/module/reducers/ChatsReducer.js +4 -4
  70. package/dist/module/reducers/ChatsReducer.js.map +1 -1
  71. package/dist/module/reducers/GroupsReducer.js +5 -5
  72. package/dist/module/reducers/GroupsReducer.js.map +1 -1
  73. package/dist/module/reducers/reducerKeys.js +1 -1
  74. package/dist/module/reducers/reducerKeys.js.map +1 -1
  75. package/dist/module/values.config.default.js +25 -25
  76. package/dist/module/values.config.default.js.map +1 -1
  77. package/dist/module/values.config.groups.js +25 -25
  78. package/dist/module/values.config.groups.js.map +1 -1
  79. package/dist/module/values.config.js +25 -25
  80. package/dist/module/values.config.js.map +1 -1
  81. package/dist/module/webapi/circleActions.js +31 -31
  82. package/dist/module/webapi/circleActions.js.map +1 -1
  83. package/dist/module/webapi/helper.js +1 -1
  84. package/dist/module/webapi/helper.js.map +1 -1
  85. package/dist/module/webapi/index.js +3 -3
  86. package/dist/module/webapi/index.js.map +1 -1
  87. package/dist/module/webapi/messageActions.js +10 -10
  88. package/dist/module/webapi/messageActions.js.map +1 -1
  89. package/package.json +54 -54
  90. package/src/actions/ChatActions.js +55 -55
  91. package/src/actions/GroupActions.js +245 -237
  92. package/src/actions/index.js +3 -3
  93. package/src/actions/types.js +2 -2
  94. package/src/assets/fonts.js +1 -1
  95. package/src/components/chat/Chat.js +730 -669
  96. package/src/components/chat/ChatList.js +603 -512
  97. package/src/components/chat/ContactsList.js +186 -169
  98. package/src/components/chat/KioskPeoplePage.js +315 -291
  99. package/src/components/chat/PeopleContainer.js +14 -14
  100. package/src/components/chat/PeoplePage.js +450 -383
  101. package/src/components/common/SwipeableUserListing.js +118 -106
  102. package/src/components/common/index.js +2 -2
  103. package/src/components/events/EventInvitePopup.js +587 -505
  104. package/src/components/groups/EditGroup.js +607 -538
  105. package/src/components/groups/GroupDetails.js +385 -305
  106. package/src/components/groups/GroupsList.js +91 -79
  107. package/src/components/groups/GroupsWidget.js +122 -116
  108. package/src/components/groups/NewGroup.js +758 -639
  109. package/src/components/groups/PublicGroup.js +129 -101
  110. package/src/components/groups/PublicGroupAction.js +312 -244
  111. package/src/components/notifications/GroupInvite.js +167 -139
  112. package/src/components/notifications/GroupInviteAction.js +371 -273
  113. package/src/components/notifications/GroupMessage.js +110 -102
  114. package/src/components/takeover/TakeoverBackground.js +24 -18
  115. package/src/config/index.js +4 -4
  116. package/src/core.config.js +27 -3
  117. package/src/feature.config.js +257 -245
  118. package/src/index.js +24 -21
  119. package/src/js/Colors.js +5 -3
  120. package/src/js/NavigationService.js +5 -4
  121. package/src/js/Styles.js +1 -1
  122. package/src/js/circles/MapStateToDirectMessages.js +6 -6
  123. package/src/js/index.js +3 -3
  124. package/src/reducers/ChatsReducer.js +66 -53
  125. package/src/reducers/GroupsReducer.js +203 -190
  126. package/src/reducers/reducerKeys.js +1 -1
  127. package/src/values.config.default.js +29 -29
  128. package/src/values.config.groups.js +29 -29
  129. package/src/values.config.js +29 -29
  130. package/src/webapi/circleActions.js +109 -109
  131. package/src/webapi/helper.js +1 -1
  132. package/src/webapi/index.js +3 -3
  133. package/src/webapi/messageActions.js +47 -47
@@ -1,17 +1,17 @@
1
- import React, { Component } from 'react';
2
- import { View, TouchableOpacity, Text, FlatList, ScrollView } from 'react-native';
3
- import { connect } from 'react-redux';
4
- import moment from 'moment';
5
- import _ from 'lodash';
6
- import { Icon } from '@rneui/themed';
7
- import { ProfilePic, EmptyStateMain, TextStyle } from '../common';
8
- import NavigationService from '../../js/NavigationService';
9
- import { TEXT_DARK, TEXT_MID, TEXT_LIGHT, COLOUR_GREEN, getMainBrandingColourFromState, getSiteSettingFromState } from '../../js';
10
- import { clearGroupCounter } from '../../actions';
11
- import GroupInvite from '../notifications/GroupInvite';
12
- import { CONST_STRINGS } from '../../config';
13
- import PublicGroup from '../groups/PublicGroup';
14
- import { values } from '../../values.config';
1
+ import React, { Component } from "react";
2
+ import { View, TouchableOpacity, Text, FlatList, ScrollView } from "react-native";
3
+ import { connect } from "react-redux";
4
+ import moment from "moment";
5
+ import _ from "lodash";
6
+ import { Icon } from "@rneui/themed";
7
+ import { ProfilePic, EmptyStateMain, TextStyle } from "../common";
8
+ import NavigationService from "../../js/NavigationService";
9
+ import { TEXT_DARK, TEXT_MID, TEXT_LIGHT, COLOUR_GREEN, getMainBrandingColourFromState, getSiteSettingFromState } from "../../js";
10
+ import { clearGroupCounter } from "../../actions";
11
+ import GroupInvite from "../notifications/GroupInvite";
12
+ import { CONST_STRINGS } from "../../config";
13
+ import PublicGroup from "../groups/PublicGroup";
14
+ import { values } from "../../values.config";
15
15
  class ChatList extends Component {
16
16
  constructor() {
17
17
  super();
@@ -86,9 +86,9 @@ class ChatList extends Component {
86
86
  }
87
87
  if (chat.userNames) {
88
88
  const names = _.without(Object.keys(chat.userNames), this.props.user.displayName);
89
- return names.length > 2 ? `${names[0]} & ${names.length - 1} others` : names.join(', ');
89
+ return names.length > 2 ? `${names[0]} & ${names.length - 1} others` : names.join(", ");
90
90
  }
91
- return 'no title detected';
91
+ return "no title detected";
92
92
  }
93
93
  getChatImage(chat) {
94
94
  if (!_.isEmpty(chat.Thumbnail)) {
@@ -109,24 +109,24 @@ class ChatList extends Component {
109
109
  }
110
110
  getTimeText(input) {
111
111
  const gug = moment(input).local();
112
- if (gug.isBefore(moment().local().startOf('d'))) {
113
- return gug.format('D MMM');
112
+ if (gug.isBefore(moment().local().startOf("d"))) {
113
+ return gug.format("D MMM");
114
114
  }
115
- return gug.format('h:mma');
115
+ return gug.format("h:mma");
116
116
  }
117
117
  getLastMessage(chat) {
118
118
  if (!chat.lastMessage) {
119
119
  if (chat.IsPrivate) {
120
- return '';
120
+ return "";
121
121
  }
122
122
  return `New ${values.entityName}`;
123
123
  }
124
- if (typeof chat.lastMessage === 'string') {
124
+ if (typeof chat.lastMessage === "string") {
125
125
  return chat.lastMessage;
126
126
  }
127
127
  // Handle deleted messages or missing text
128
128
  if (!chat.lastMessage.text) {
129
- return chat.lastMessage.deleted ? '[Message deleted]' : '';
129
+ return chat.lastMessage.deleted ? "[Message deleted]" : "";
130
130
  }
131
131
  // TODO recognise user name of last message
132
132
  return chat.lastMessage.text;
@@ -145,7 +145,7 @@ class ChatList extends Component {
145
145
  const chatsToUse = _.filter(nextProps.groups, chat => {
146
146
  return !_.isEmpty(chat) && !chat.deleted && !chat.Deleted && chat != null && !chat.IsPrivate;
147
147
  });
148
- const messages = _.orderBy(chatsToUse, 'Changed', 'desc');
148
+ const messages = _.orderBy(chatsToUse, "Changed", "desc");
149
149
  const chats = [...(!this.state.showMore ? _.take(messages, 3) : messages)];
150
150
  // const chats = [
151
151
  // ...messages,
@@ -179,7 +179,7 @@ class ChatList extends Component {
179
179
  if (_.isEmpty(this.state.publicGroups)) {
180
180
  return false;
181
181
  }
182
- if (this.props.user.category === 'family') {
182
+ if (this.props.user.category === "family") {
183
183
  return false;
184
184
  }
185
185
  return true;
@@ -248,7 +248,7 @@ class ChatList extends Component {
248
248
  }, /*#__PURE__*/React.createElement(Text, {
249
249
  style: [styles.chatTimeStamp, !!unreadCounter && {
250
250
  color: TEXT_DARK,
251
- fontFamily: 'sf-bold'
251
+ fontFamily: "sf-bold"
252
252
  }]
253
253
  }, this.getTimeText(chat.Changed)), /*#__PURE__*/React.createElement(View, {
254
254
  style: styles.fill
@@ -370,7 +370,7 @@ const styles = {
370
370
  paddingVertical: 16
371
371
  },
372
372
  card: {
373
- position: 'relative',
373
+ position: "relative",
374
374
  paddingHorizontal: 0,
375
375
  paddingVertical: 16,
376
376
  marginBottom: 8
@@ -379,38 +379,38 @@ const styles = {
379
379
  height: 30,
380
380
  paddingHorizontal: 16,
381
381
  paddingBottom: 8,
382
- justifyContent: 'center'
382
+ justifyContent: "center"
383
383
  },
384
384
  sectionTitle: {
385
385
  fontSize: 16,
386
- fontFamily: 'sf-semibold',
386
+ fontFamily: "sf-semibold",
387
387
  color: TEXT_DARK
388
388
  },
389
389
  container: {
390
390
  flex: 1,
391
- position: 'relative'
391
+ position: "relative"
392
392
  },
393
393
  rowReverse: {
394
- flexDirection: 'row-reverse',
395
- alignItems: 'center'
394
+ flexDirection: "row-reverse",
395
+ alignItems: "center"
396
396
  },
397
397
  fill: {
398
398
  flex: 1,
399
- backgroundColor: '#fff'
399
+ backgroundColor: "#fff"
400
400
  },
401
401
  listItem: {
402
- backgroundColor: '#fff',
402
+ backgroundColor: "#fff",
403
403
  paddingHorizontal: 15,
404
404
  paddingBottom: 16,
405
- justifyContent: 'flex-start',
406
- flexDirection: 'row',
407
- position: 'relative'
405
+ justifyContent: "flex-start",
406
+ flexDirection: "row",
407
+ position: "relative"
408
408
  },
409
409
  extraSeparation: {
410
410
  marginTop: 15
411
411
  },
412
412
  unreadMarker: {
413
- backgroundColor: 'transparent',
413
+ backgroundColor: "transparent",
414
414
  marginTop: 35,
415
415
  width: 10,
416
416
  height: 10,
@@ -422,36 +422,36 @@ const styles = {
422
422
  },
423
423
  chatUserName: {
424
424
  fontSize: 16,
425
- fontFamily: 'sf-bold',
425
+ fontFamily: "sf-bold",
426
426
  color: TEXT_DARK
427
427
  },
428
428
  chatLastMessageContainer: {
429
- flexDirection: 'row',
430
- justifyContent: 'flex-start',
429
+ flexDirection: "row",
430
+ justifyContent: "flex-start",
431
431
  paddingRight: 20
432
432
  },
433
433
  chatReplyIcon: {
434
434
  fontSize: 18,
435
- fontFamily: 'sf-regular',
435
+ fontFamily: "sf-regular",
436
436
  color: TEXT_MID,
437
437
  marginRight: 5
438
438
  },
439
439
  chatLastMessage: {
440
440
  fontSize: 13,
441
- fontFamily: 'sf-medium',
441
+ fontFamily: "sf-medium",
442
442
  color: TEXT_LIGHT,
443
443
  marginRight: 5
444
444
  },
445
445
  chatTextBold: {
446
- fontFamily: 'sf-bold'
446
+ fontFamily: "sf-bold"
447
447
  },
448
448
  chatTimeStamp: {
449
449
  fontSize: 10,
450
- fontFamily: 'sf-semibold',
450
+ fontFamily: "sf-semibold",
451
451
  color: TEXT_LIGHT
452
452
  },
453
453
  addButtonContainer: {
454
- position: 'absolute',
454
+ position: "absolute",
455
455
  right: 20,
456
456
  bottom: 20
457
457
  },
@@ -463,16 +463,16 @@ const styles = {
463
463
  counter: {
464
464
  borderRadius: 10,
465
465
  height: 20,
466
- justifyContent: 'center',
466
+ justifyContent: "center",
467
467
  minWidth: 20,
468
468
  paddingHorizontal: 4,
469
469
  backgroundColor: COLOUR_GREEN
470
470
  },
471
471
  counterText: {
472
- color: '#fff',
472
+ color: "#fff",
473
473
  fontSize: 12,
474
- fontFamily: 'sf-semibold',
475
- textAlign: 'center'
474
+ fontFamily: "sf-semibold",
475
+ textAlign: "center"
476
476
  },
477
477
  publicGroupsHeaderContainer: {
478
478
  paddingHorizontal: 16,
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","View","TouchableOpacity","Text","FlatList","ScrollView","connect","moment","_","Icon","ProfilePic","EmptyStateMain","TextStyle","NavigationService","TEXT_DARK","TEXT_MID","TEXT_LIGHT","COLOUR_GREEN","getMainBrandingColourFromState","getSiteSettingFromState","clearGroupCounter","GroupInvite","CONST_STRINGS","PublicGroup","values","ChatList","constructor","_isMounted","state","showMore","dataSource","invites","publicGroups","componentDidMount","createDataSource","props","setState","UNSAFE_componentWillReceiveProps","nextProps","groups","setTimeout","shouldComponentUpdate","nextState","componentWillUnmount","onPressChat","group","Id","user","uid","navigate","screenCircleChat","chat","onPressBack","goBack","onClosePublicGroup","joined","index","indexOf","splice","newPublicGroups","getChatName","isEmpty","Title","IsPrivate","otherUser","find","Audience","u","userId","displayName","userNames","names","without","Object","keys","length","join","getChatImage","Thumbnail","Image","profilePic","getTimeText","input","gug","local","isBefore","startOf","format","getLastMessage","lastMessage","entityName","text","deleted","chatsToUse","filter","Deleted","messages","orderBy","chats","take","first","getEmptyStateText","options","EmptyText","EMPTY_GROUPS","shouldRenderPublicGroups","circleAllowPublicCircles","category","renderPublicGroupsHeader","createElement","style","styles","publicGroupsHeaderContainer","type","publicGroupsTitle","publicGroupsHelper","renderReply","lastUserKey","name","iconStyle","chatReplyIcon","renderUnreadCounter","counter","isUndefined","counterText","renderChat","chatName","chatImage","unreadCounter","Unread","key","marginTop","activeOpacity","onPress","bind","listItem","Diameter","listItemTextContainer","rowReverse","chatTimeStamp","color","fontFamily","Changed","fill","chatUserName","chatTextBold","numberOfLines","chatLastMessage","renderInvites","source","item","Rejected","map","invite","event","showHeader","renderPublicGroups","onClose","renderListHeader","ListHeaderComponent","isWidget","internalHeader","horizontal","showsHorizontalScrollIndicator","renderEmptyList","isLoading","title","height","paddingTop","marginHorizontal","render","limit","slice","isDataReady","container","mainContainer","keyboardShouldPersistTaps","data","ListEmptyComponent","keyExtractor","renderItem","ListFooterComponent","extraData","Fragment","paddingVertical","card","position","paddingHorizontal","marginBottom","sectionTitleContainer","paddingBottom","justifyContent","sectionTitle","fontSize","flex","flexDirection","alignItems","backgroundColor","extraSeparation","unreadMarker","width","borderRadius","marginLeft","chatLastMessageContainer","paddingRight","marginRight","addButtonContainer","right","bottom","addButton","left","minWidth","textAlign","lineHeight","mapStateToProps","circles","reducerKey","list","unreadCount","colourBrandingMain","allowPublicKey"],"sources":["ChatList.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, TouchableOpacity, Text, FlatList, ScrollView } from 'react-native';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport _ from 'lodash';\nimport { Icon } from '@rneui/themed';\nimport { ProfilePic, EmptyStateMain, TextStyle } from '../common';\nimport NavigationService from '../../js/NavigationService';\nimport { TEXT_DARK, TEXT_MID, TEXT_LIGHT, COLOUR_GREEN, getMainBrandingColourFromState, getSiteSettingFromState } from '../../js';\nimport { clearGroupCounter } from '../../actions';\nimport GroupInvite from '../notifications/GroupInvite';\nimport { CONST_STRINGS } from '../../config';\nimport PublicGroup from '../groups/PublicGroup';\nimport { values } from '../../values.config';\n\nclass ChatList extends Component {\n constructor() {\n super();\n\n this._isMounted = false;\n this.state = {\n showMore: true,\n dataSource: [],\n invites: [],\n publicGroups: [],\n };\n }\n\n async componentDidMount() {\n this._isMounted = true;\n\n this.createDataSource(this.props);\n this.setState({ publicGroups: this.props.publicGroups });\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.groups !== this.props.groups) {\n setTimeout(() => {\n this.createDataSource(nextProps);\n }, 500);\n }\n if (nextProps.publicGroups !== this.props.publicGroups) {\n this.setState({\n publicGroups: nextProps.publicGroups,\n });\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n return (\n nextState.dataSource !== this.state.dataSource ||\n nextState.publicGroups !== this.state.publicGroups ||\n nextState.invites !== this.state.invites\n );\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n onPressChat(group) {\n this.props.clearGroupCounter(group.Id, this.props.user.uid);\n NavigationService.navigate(values.screenCircleChat, { chat: group });\n }\n\n onPressBack() {\n NavigationService.goBack();\n }\n\n onClosePublicGroup(group, joined) {\n if (joined) {\n const index = this.state.publicGroups.indexOf(group);\n if (index > -1) {\n this.state.publicGroups.splice(index, 1);\n const newPublicGroups = this.state.publicGroups;\n if (this._isMounted) {\n this.setState({\n publicGroups: newPublicGroups,\n });\n }\n }\n }\n }\n\n getChatName(chat) {\n if (!_.isEmpty(chat.Title)) {\n return chat.Title;\n }\n if (chat.IsPrivate) {\n const otherUser = _.find(chat.Audience || [], u => {\n return u.userId !== this.props.user.Id;\n });\n if (otherUser) {\n return otherUser.displayName;\n }\n return null;\n }\n if (chat.userNames) {\n const names = _.without(Object.keys(chat.userNames), this.props.user.displayName);\n return names.length > 2 ? `${names[0]} & ${names.length - 1} others` : names.join(', ');\n }\n return 'no title detected';\n }\n\n getChatImage(chat) {\n if (!_.isEmpty(chat.Thumbnail)) {\n return chat.Thumbnail;\n }\n if (!_.isEmpty(chat.Image)) {\n return chat.Image;\n }\n if (chat.IsPrivate) {\n const otherUser = _.find(chat.Audience || [], u => {\n return u.userId !== this.props.user.Id;\n });\n if (otherUser) {\n return otherUser.profilePic;\n }\n }\n return null;\n }\n\n getTimeText(input) {\n const gug = moment(input).local();\n if (\n gug.isBefore(\n moment()\n .local()\n .startOf('d'),\n )\n ) {\n return gug.format('D MMM');\n }\n return gug.format('h:mma');\n }\n\n getLastMessage(chat) {\n if (!chat.lastMessage) {\n if (chat.IsPrivate) {\n return '';\n }\n return `New ${values.entityName}`;\n }\n if (typeof chat.lastMessage === 'string') {\n return chat.lastMessage;\n }\n // Handle deleted messages or missing text\n if (!chat.lastMessage.text) {\n return chat.lastMessage.deleted ? '[Message deleted]' : '';\n }\n // TODO recognise user name of last message\n return chat.lastMessage.text;\n }\n\n showMore() {\n if (this._isMounted) {\n this.setState({ showMore: true });\n }\n setTimeout(() => {\n this.createDataSource(this.props);\n }, 50);\n }\n\n createDataSource(nextProps) {\n const chatsToUse = _.filter(nextProps.groups, chat => {\n return !_.isEmpty(chat) && !chat.deleted && !chat.Deleted && chat != null && !chat.IsPrivate;\n });\n\n const messages = _.orderBy(chatsToUse, 'Changed', 'desc');\n\n const chats = [...(!this.state.showMore ? _.take(messages, 3) : messages)];\n // const chats = [\n // ...messages,\n // !this.state.showMore && chatsToUse.length > 3 ? { type: 'more' } : {}\n // ];\n\n if (!_.isEmpty(chats[0]) && chats[0] != null) {\n chats[0].first = true;\n }\n\n let invites = nextProps.invites;\n if (invites == null) {\n invites = [];\n }\n if (this._isMounted) {\n this.setState({\n dataSource: chats,\n invites,\n });\n }\n }\n\n getEmptyStateText() {\n if (this.props.options && !_.isEmpty(this.props.options.EmptyText)) {\n return this.props.options.EmptyText;\n }\n return CONST_STRINGS.EMPTY_GROUPS;\n }\n\n shouldRenderPublicGroups() {\n if (!this.props.circleAllowPublicCircles) {\n return false;\n }\n if (_.isEmpty(this.state.publicGroups)) {\n return false;\n }\n if (this.props.user.category === 'family') {\n return false;\n }\n return true;\n }\n\n renderPublicGroupsHeader() {\n if (!this.shouldRenderPublicGroups()) {\n return null;\n }\n return (\n <View style={styles.publicGroupsHeaderContainer}>\n <TextStyle type=\"label\" style={styles.publicGroupsTitle}>\n Groups You Can Join\n </TextStyle>\n <TextStyle type=\"body\" style={styles.publicGroupsHelper}>\n Any member of your community can join these groups. Tap any group to join.\n </TextStyle>\n </View>\n );\n }\n\n renderReply(chat) {\n if (chat.lastUserKey === this.props.user.uid) {\n return <Icon name=\"mail-reply\" type=\"font-awesome\" iconStyle={styles.chatReplyIcon} />;\n }\n return null;\n }\n\n renderUnreadCounter(counter) {\n if (_.isUndefined(counter) || counter < 1) {\n return null;\n }\n return (\n <View style={styles.counter}>\n <Text style={styles.counterText}>{counter}</Text>\n </View>\n );\n }\n\n renderChat(chat) {\n if (_.isEmpty(chat) || chat.deleted || chat == null) {\n return null;\n }\n\n const chatName = this.getChatName(chat);\n const chatImage = this.getChatImage(chat);\n const unreadCounter = (chat.Unread && chat.Unread[this.props.user.Id]) || 0;\n\n return (\n <View key={`chat${chat.Id}`} style={[chat.first && _.isEmpty(this.state.invites) && { marginTop: 8 }]}>\n <TouchableOpacity activeOpacity={0.9} onPress={this.onPressChat.bind(this, chat)}>\n <View\n style={[\n styles.listItem,\n // extraSeparation && styles.extraSeparation\n ]}\n >\n <ProfilePic Diameter={40} name={chatName} ProfilePic={chatImage} />\n <View style={styles.listItemTextContainer}>\n <View style={styles.rowReverse}>\n <Text style={[styles.chatTimeStamp, !!unreadCounter && { color: TEXT_DARK, fontFamily: 'sf-bold' }]}>\n {this.getTimeText(chat.Changed)}\n </Text>\n <View style={styles.fill}>\n <Text style={[styles.chatUserName, !!unreadCounter && styles.chatTextBold]} numberOfLines={1}>\n {chatName}\n </Text>\n </View>\n </View>\n <View style={styles.rowReverse}>\n {this.renderUnreadCounter(unreadCounter)}\n <View style={styles.fill}>\n <Text style={[styles.chatLastMessage, !!unreadCounter && {}]} numberOfLines={1}>\n {this.getLastMessage(chat)}\n </Text>\n </View>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n </View>\n );\n }\n\n renderInvites() {\n const source = _.filter(this.state.invites, item => {\n return !item.Deleted && !item.Rejected;\n });\n\n return source.map((invite, index) => {\n if (invite != null) {\n return (\n <View key={invite.Id}>\n <GroupInvite invite={invite} event={invite} index={index} key={invite.Id} showHeader />\n </View>\n );\n }\n return null;\n });\n }\n\n renderPublicGroups() {\n if (!this.shouldRenderPublicGroups()) {\n return null;\n }\n return this.state.publicGroups.map((group, index) => {\n if (!group) {\n return null;\n }\n return (\n <View key={group.Id}>\n <PublicGroup group={group} index={index} key={group.Id} showHeader onClose={this.onClosePublicGroup.bind(this, group)} />\n </View>\n );\n });\n }\n\n renderListHeader() {\n if (!this.props.ListHeaderComponent && ((_.isEmpty(this.state.invites) && !this.shouldRenderPublicGroups()) || this.props.isWidget)) {\n return null;\n }\n let internalHeader = null;\n if (!_.isEmpty(this.state.invites) || this.shouldRenderPublicGroups()) {\n internalHeader = (\n <View>\n {this.renderPublicGroupsHeader()}\n <ScrollView horizontal showsHorizontalScrollIndicator={false}>\n {!_.isEmpty(this.state.invites) && this.renderInvites()}\n {this.renderPublicGroups()}\n </ScrollView>\n </View>\n );\n }\n return (\n <View>\n {this.props.ListHeaderComponent}\n {internalHeader}\n </View>\n );\n }\n\n renderEmptyList() {\n if (this.props.isLoading) return <EmptyStateMain title=\"Loading\" style={{ height: 180, paddingTop: 16, marginHorizontal: 16 }} />;\n if (this.props.isWidget)\n return <EmptyStateMain title={this.getEmptyStateText()} style={{ height: 180, paddingTop: 16, marginHorizontal: 16 }} />;\n return <EmptyStateMain title={this.getEmptyStateText()} style={{ marginHorizontal: 16, marginTop: 16 }} />;\n }\n\n render() {\n const dataSource = this.props.limit ? this.state.dataSource.slice(0, this.props.limit) : this.state.dataSource;\n const isDataReady = !_.isEmpty(this.state.dataSource);\n\n return (\n <View style={[styles.container, !this.props.isWidget && styles.mainContainer]}>\n {isDataReady && (\n <FlatList\n keyboardShouldPersistTaps=\"always\"\n style={styles.fill}\n data={dataSource}\n ListEmptyComponent={this.renderEmptyList()}\n ListHeaderComponent={this.renderListHeader()}\n keyExtractor={item => item.Id}\n renderItem={({ item, index }) => this.renderChat(item, index)}\n ListFooterComponent={!this.props.isWidget && <View style={{ height: 15 }} />}\n extraData={this.state}\n />\n )}\n {!isDataReady && (\n <>\n {this.renderListHeader()}\n {this.renderEmptyList()}\n </>\n )}\n </View>\n );\n }\n}\n\nconst styles = {\n mainContainer: {\n paddingVertical: 16,\n },\n card: {\n position: 'relative',\n paddingHorizontal: 0,\n paddingVertical: 16,\n marginBottom: 8,\n },\n sectionTitleContainer: {\n height: 30,\n paddingHorizontal: 16,\n paddingBottom: 8,\n justifyContent: 'center',\n },\n sectionTitle: {\n fontSize: 16,\n fontFamily: 'sf-semibold',\n color: TEXT_DARK,\n },\n container: {\n flex: 1,\n position: 'relative',\n },\n rowReverse: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n },\n fill: {\n flex: 1,\n backgroundColor: '#fff',\n },\n listItem: {\n backgroundColor: '#fff',\n paddingHorizontal: 15,\n paddingBottom: 16,\n justifyContent: 'flex-start',\n flexDirection: 'row',\n position: 'relative',\n },\n extraSeparation: {\n marginTop: 15,\n },\n unreadMarker: {\n backgroundColor: 'transparent',\n marginTop: 35,\n width: 10,\n height: 10,\n borderRadius: 5,\n },\n listItemTextContainer: {\n flex: 1,\n marginLeft: 10,\n },\n chatUserName: {\n fontSize: 16,\n fontFamily: 'sf-bold',\n color: TEXT_DARK,\n },\n chatLastMessageContainer: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n paddingRight: 20,\n },\n chatReplyIcon: {\n fontSize: 18,\n fontFamily: 'sf-regular',\n color: TEXT_MID,\n marginRight: 5,\n },\n chatLastMessage: {\n fontSize: 13,\n fontFamily: 'sf-medium',\n color: TEXT_LIGHT,\n marginRight: 5,\n },\n chatTextBold: {\n fontFamily: 'sf-bold',\n },\n chatTimeStamp: {\n fontSize: 10,\n fontFamily: 'sf-semibold',\n color: TEXT_LIGHT,\n },\n addButtonContainer: {\n position: 'absolute',\n right: 20,\n bottom: 20,\n },\n addButton: {\n left: 0,\n width: 45,\n height: 45,\n },\n counter: {\n borderRadius: 10,\n height: 20,\n justifyContent: 'center',\n minWidth: 20,\n paddingHorizontal: 4,\n backgroundColor: COLOUR_GREEN,\n },\n counterText: {\n color: '#fff',\n fontSize: 12,\n fontFamily: 'sf-semibold',\n textAlign: 'center',\n },\n publicGroupsHeaderContainer: {\n paddingHorizontal: 16,\n paddingTop: 16,\n paddingBottom: 8,\n },\n publicGroupsTitle: {\n marginBottom: 4,\n },\n publicGroupsHelper: {\n lineHeight: 20,\n },\n};\n\nconst mapStateToProps = state => {\n const circles = state[values.reducerKey];\n const { user } = state;\n\n return {\n groups: circles.list,\n invites: circles.invites,\n unreadCount: circles && circles.unreadCount ? circles.unreadCount : 0,\n user,\n colourBrandingMain: getMainBrandingColourFromState(state),\n circleAllowPublicCircles: getSiteSettingFromState(state, values.allowPublicKey),\n };\n};\n\nexport default connect(mapStateToProps, { clearGroupCounter })(ChatList);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Component","View","TouchableOpacity","Text","FlatList","ScrollView","connect","moment","_","Icon","ProfilePic","EmptyStateMain","TextStyle","NavigationService","TEXT_DARK","TEXT_MID","TEXT_LIGHT","COLOUR_GREEN","getMainBrandingColourFromState","getSiteSettingFromState","clearGroupCounter","GroupInvite","CONST_STRINGS","PublicGroup","values","ChatList","constructor","_isMounted","state","showMore","dataSource","invites","publicGroups","componentDidMount","createDataSource","props","setState","UNSAFE_componentWillReceiveProps","nextProps","groups","setTimeout","shouldComponentUpdate","nextState","componentWillUnmount","onPressChat","group","Id","user","uid","navigate","screenCircleChat","chat","onPressBack","goBack","onClosePublicGroup","joined","index","indexOf","splice","newPublicGroups","getChatName","isEmpty","Title","IsPrivate","otherUser","find","Audience","u","userId","displayName","userNames","names","without","Object","keys","length","join","getChatImage","Thumbnail","Image","profilePic","getTimeText","input","gug","local","isBefore","startOf","format","getLastMessage","lastMessage","entityName","text","deleted","chatsToUse","filter","Deleted","messages","orderBy","chats","take","first","getEmptyStateText","options","EmptyText","EMPTY_GROUPS","shouldRenderPublicGroups","circleAllowPublicCircles","category","renderPublicGroupsHeader","createElement","style","styles","publicGroupsHeaderContainer","type","publicGroupsTitle","publicGroupsHelper","renderReply","lastUserKey","name","iconStyle","chatReplyIcon","renderUnreadCounter","counter","isUndefined","counterText","renderChat","chatName","chatImage","unreadCounter","Unread","key","marginTop","activeOpacity","onPress","bind","listItem","Diameter","listItemTextContainer","rowReverse","chatTimeStamp","color","fontFamily","Changed","fill","chatUserName","chatTextBold","numberOfLines","chatLastMessage","renderInvites","source","item","Rejected","map","invite","event","showHeader","renderPublicGroups","onClose","renderListHeader","ListHeaderComponent","isWidget","internalHeader","horizontal","showsHorizontalScrollIndicator","renderEmptyList","isLoading","title","height","paddingTop","marginHorizontal","render","limit","slice","isDataReady","container","mainContainer","keyboardShouldPersistTaps","data","ListEmptyComponent","keyExtractor","renderItem","ListFooterComponent","extraData","Fragment","paddingVertical","card","position","paddingHorizontal","marginBottom","sectionTitleContainer","paddingBottom","justifyContent","sectionTitle","fontSize","flex","flexDirection","alignItems","backgroundColor","extraSeparation","unreadMarker","width","borderRadius","marginLeft","chatLastMessageContainer","paddingRight","marginRight","addButtonContainer","right","bottom","addButton","left","minWidth","textAlign","lineHeight","mapStateToProps","circles","reducerKey","list","unreadCount","colourBrandingMain","allowPublicKey"],"sources":["ChatList.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport {\n\tView,\n\tTouchableOpacity,\n\tText,\n\tFlatList,\n\tScrollView,\n} from \"react-native\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport _ from \"lodash\";\nimport { Icon } from \"@rneui/themed\";\nimport { ProfilePic, EmptyStateMain, TextStyle } from \"../common\";\nimport NavigationService from \"../../js/NavigationService\";\nimport {\n\tTEXT_DARK,\n\tTEXT_MID,\n\tTEXT_LIGHT,\n\tCOLOUR_GREEN,\n\tgetMainBrandingColourFromState,\n\tgetSiteSettingFromState,\n} from \"../../js\";\nimport { clearGroupCounter } from \"../../actions\";\nimport GroupInvite from \"../notifications/GroupInvite\";\nimport { CONST_STRINGS } from \"../../config\";\nimport PublicGroup from \"../groups/PublicGroup\";\nimport { values } from \"../../values.config\";\n\nclass ChatList extends Component {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._isMounted = false;\n\t\tthis.state = {\n\t\t\tshowMore: true,\n\t\t\tdataSource: [],\n\t\t\tinvites: [],\n\t\t\tpublicGroups: [],\n\t\t};\n\t}\n\n\tasync componentDidMount() {\n\t\tthis._isMounted = true;\n\n\t\tthis.createDataSource(this.props);\n\t\tthis.setState({ publicGroups: this.props.publicGroups });\n\t}\n\n\tUNSAFE_componentWillReceiveProps(nextProps) {\n\t\tif (nextProps.groups !== this.props.groups) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.createDataSource(nextProps);\n\t\t\t}, 500);\n\t\t}\n\t\tif (nextProps.publicGroups !== this.props.publicGroups) {\n\t\t\tthis.setState({\n\t\t\t\tpublicGroups: nextProps.publicGroups,\n\t\t\t});\n\t\t}\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\t\treturn (\n\t\t\tnextState.dataSource !== this.state.dataSource ||\n\t\t\tnextState.publicGroups !== this.state.publicGroups ||\n\t\t\tnextState.invites !== this.state.invites\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis._isMounted = false;\n\t}\n\n\tonPressChat(group) {\n\t\tthis.props.clearGroupCounter(group.Id, this.props.user.uid);\n\t\tNavigationService.navigate(values.screenCircleChat, { chat: group });\n\t}\n\n\tonPressBack() {\n\t\tNavigationService.goBack();\n\t}\n\n\tonClosePublicGroup(group, joined) {\n\t\tif (joined) {\n\t\t\tconst index = this.state.publicGroups.indexOf(group);\n\t\t\tif (index > -1) {\n\t\t\t\tthis.state.publicGroups.splice(index, 1);\n\t\t\t\tconst newPublicGroups = this.state.publicGroups;\n\t\t\t\tif (this._isMounted) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tpublicGroups: newPublicGroups,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tgetChatName(chat) {\n\t\tif (!_.isEmpty(chat.Title)) {\n\t\t\treturn chat.Title;\n\t\t}\n\t\tif (chat.IsPrivate) {\n\t\t\tconst otherUser = _.find(chat.Audience || [], (u) => {\n\t\t\t\treturn u.userId !== this.props.user.Id;\n\t\t\t});\n\t\t\tif (otherUser) {\n\t\t\t\treturn otherUser.displayName;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tif (chat.userNames) {\n\t\t\tconst names = _.without(\n\t\t\t\tObject.keys(chat.userNames),\n\t\t\t\tthis.props.user.displayName,\n\t\t\t);\n\t\t\treturn names.length > 2\n\t\t\t\t? `${names[0]} & ${names.length - 1} others`\n\t\t\t\t: names.join(\", \");\n\t\t}\n\t\treturn \"no title detected\";\n\t}\n\n\tgetChatImage(chat) {\n\t\tif (!_.isEmpty(chat.Thumbnail)) {\n\t\t\treturn chat.Thumbnail;\n\t\t}\n\t\tif (!_.isEmpty(chat.Image)) {\n\t\t\treturn chat.Image;\n\t\t}\n\t\tif (chat.IsPrivate) {\n\t\t\tconst otherUser = _.find(chat.Audience || [], (u) => {\n\t\t\t\treturn u.userId !== this.props.user.Id;\n\t\t\t});\n\t\t\tif (otherUser) {\n\t\t\t\treturn otherUser.profilePic;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tgetTimeText(input) {\n\t\tconst gug = moment(input).local();\n\t\tif (gug.isBefore(moment().local().startOf(\"d\"))) {\n\t\t\treturn gug.format(\"D MMM\");\n\t\t}\n\t\treturn gug.format(\"h:mma\");\n\t}\n\n\tgetLastMessage(chat) {\n\t\tif (!chat.lastMessage) {\n\t\t\tif (chat.IsPrivate) {\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t\treturn `New ${values.entityName}`;\n\t\t}\n\t\tif (typeof chat.lastMessage === \"string\") {\n\t\t\treturn chat.lastMessage;\n\t\t}\n\t\t// Handle deleted messages or missing text\n\t\tif (!chat.lastMessage.text) {\n\t\t\treturn chat.lastMessage.deleted ? \"[Message deleted]\" : \"\";\n\t\t}\n\t\t// TODO recognise user name of last message\n\t\treturn chat.lastMessage.text;\n\t}\n\n\tshowMore() {\n\t\tif (this._isMounted) {\n\t\t\tthis.setState({ showMore: true });\n\t\t}\n\t\tsetTimeout(() => {\n\t\t\tthis.createDataSource(this.props);\n\t\t}, 50);\n\t}\n\n\tcreateDataSource(nextProps) {\n\t\tconst chatsToUse = _.filter(nextProps.groups, (chat) => {\n\t\t\treturn (\n\t\t\t\t!_.isEmpty(chat) &&\n\t\t\t\t!chat.deleted &&\n\t\t\t\t!chat.Deleted &&\n\t\t\t\tchat != null &&\n\t\t\t\t!chat.IsPrivate\n\t\t\t);\n\t\t});\n\n\t\tconst messages = _.orderBy(chatsToUse, \"Changed\", \"desc\");\n\n\t\tconst chats = [...(!this.state.showMore ? _.take(messages, 3) : messages)];\n\t\t// const chats = [\n\t\t// ...messages,\n\t\t// !this.state.showMore && chatsToUse.length > 3 ? { type: 'more' } : {}\n\t\t// ];\n\n\t\tif (!_.isEmpty(chats[0]) && chats[0] != null) {\n\t\t\tchats[0].first = true;\n\t\t}\n\n\t\tlet invites = nextProps.invites;\n\t\tif (invites == null) {\n\t\t\tinvites = [];\n\t\t}\n\t\tif (this._isMounted) {\n\t\t\tthis.setState({\n\t\t\t\tdataSource: chats,\n\t\t\t\tinvites,\n\t\t\t});\n\t\t}\n\t}\n\n\tgetEmptyStateText() {\n\t\tif (this.props.options && !_.isEmpty(this.props.options.EmptyText)) {\n\t\t\treturn this.props.options.EmptyText;\n\t\t}\n\t\treturn CONST_STRINGS.EMPTY_GROUPS;\n\t}\n\n\tshouldRenderPublicGroups() {\n\t\tif (!this.props.circleAllowPublicCircles) {\n\t\t\treturn false;\n\t\t}\n\t\tif (_.isEmpty(this.state.publicGroups)) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.props.user.category === \"family\") {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\trenderPublicGroupsHeader() {\n\t\tif (!this.shouldRenderPublicGroups()) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<View style={styles.publicGroupsHeaderContainer}>\n\t\t\t\t<TextStyle type=\"label\" style={styles.publicGroupsTitle}>\n\t\t\t\t\tGroups You Can Join\n\t\t\t\t</TextStyle>\n\t\t\t\t<TextStyle type=\"body\" style={styles.publicGroupsHelper}>\n\t\t\t\t\tAny member of your community can join these groups. Tap any group to\n\t\t\t\t\tjoin.\n\t\t\t\t</TextStyle>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderReply(chat) {\n\t\tif (chat.lastUserKey === this.props.user.uid) {\n\t\t\treturn (\n\t\t\t\t<Icon\n\t\t\t\t\tname=\"mail-reply\"\n\t\t\t\t\ttype=\"font-awesome\"\n\t\t\t\t\ticonStyle={styles.chatReplyIcon}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\n\trenderUnreadCounter(counter) {\n\t\tif (_.isUndefined(counter) || counter < 1) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<View style={styles.counter}>\n\t\t\t\t<Text style={styles.counterText}>{counter}</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderChat(chat) {\n\t\tif (_.isEmpty(chat) || chat.deleted || chat == null) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst chatName = this.getChatName(chat);\n\t\tconst chatImage = this.getChatImage(chat);\n\t\tconst unreadCounter = (chat.Unread && chat.Unread[this.props.user.Id]) || 0;\n\n\t\treturn (\n\t\t\t<View\n\t\t\t\tkey={`chat${chat.Id}`}\n\t\t\t\tstyle={[\n\t\t\t\t\tchat.first && _.isEmpty(this.state.invites) && { marginTop: 8 },\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t<TouchableOpacity\n\t\t\t\t\tactiveOpacity={0.9}\n\t\t\t\t\tonPress={this.onPressChat.bind(this, chat)}\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\tstyles.listItem,\n\t\t\t\t\t\t\t// extraSeparation && styles.extraSeparation\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ProfilePic Diameter={40} name={chatName} ProfilePic={chatImage} />\n\t\t\t\t\t\t<View style={styles.listItemTextContainer}>\n\t\t\t\t\t\t\t<View style={styles.rowReverse}>\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\tstyles.chatTimeStamp,\n\t\t\t\t\t\t\t\t\t\t!!unreadCounter && {\n\t\t\t\t\t\t\t\t\t\t\tcolor: TEXT_DARK,\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: \"sf-bold\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{this.getTimeText(chat.Changed)}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t<View style={styles.fill}>\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\t\tstyles.chatUserName,\n\t\t\t\t\t\t\t\t\t\t\t!!unreadCounter && styles.chatTextBold,\n\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t\tnumberOfLines={1}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{chatName}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t<View style={styles.rowReverse}>\n\t\t\t\t\t\t\t\t{this.renderUnreadCounter(unreadCounter)}\n\t\t\t\t\t\t\t\t<View style={styles.fill}>\n\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\tstyle={[styles.chatLastMessage, !!unreadCounter && {}]}\n\t\t\t\t\t\t\t\t\t\tnumberOfLines={1}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{this.getLastMessage(chat)}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</TouchableOpacity>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderInvites() {\n\t\tconst source = _.filter(this.state.invites, (item) => {\n\t\t\treturn !item.Deleted && !item.Rejected;\n\t\t});\n\n\t\treturn source.map((invite, index) => {\n\t\t\tif (invite != null) {\n\t\t\t\treturn (\n\t\t\t\t\t<View key={invite.Id}>\n\t\t\t\t\t\t<GroupInvite\n\t\t\t\t\t\t\tinvite={invite}\n\t\t\t\t\t\t\tevent={invite}\n\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\tkey={invite.Id}\n\t\t\t\t\t\t\tshowHeader\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\t}\n\n\trenderPublicGroups() {\n\t\tif (!this.shouldRenderPublicGroups()) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.state.publicGroups.map((group, index) => {\n\t\t\tif (!group) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<View key={group.Id}>\n\t\t\t\t\t<PublicGroup\n\t\t\t\t\t\tgroup={group}\n\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\tkey={group.Id}\n\t\t\t\t\t\tshowHeader\n\t\t\t\t\t\tonClose={this.onClosePublicGroup.bind(this, group)}\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t);\n\t\t});\n\t}\n\n\trenderListHeader() {\n\t\tif (\n\t\t\t!this.props.ListHeaderComponent &&\n\t\t\t((_.isEmpty(this.state.invites) && !this.shouldRenderPublicGroups()) ||\n\t\t\t\tthis.props.isWidget)\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\t\tlet internalHeader = null;\n\t\tif (!_.isEmpty(this.state.invites) || this.shouldRenderPublicGroups()) {\n\t\t\tinternalHeader = (\n\t\t\t\t<View>\n\t\t\t\t\t{this.renderPublicGroupsHeader()}\n\t\t\t\t\t<ScrollView horizontal showsHorizontalScrollIndicator={false}>\n\t\t\t\t\t\t{!_.isEmpty(this.state.invites) && this.renderInvites()}\n\t\t\t\t\t\t{this.renderPublicGroups()}\n\t\t\t\t\t</ScrollView>\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t<View>\n\t\t\t\t{this.props.ListHeaderComponent}\n\t\t\t\t{internalHeader}\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderEmptyList() {\n\t\tif (this.props.isLoading)\n\t\t\treturn (\n\t\t\t\t<EmptyStateMain\n\t\t\t\t\ttitle=\"Loading\"\n\t\t\t\t\tstyle={{ height: 180, paddingTop: 16, marginHorizontal: 16 }}\n\t\t\t\t/>\n\t\t\t);\n\t\tif (this.props.isWidget)\n\t\t\treturn (\n\t\t\t\t<EmptyStateMain\n\t\t\t\t\ttitle={this.getEmptyStateText()}\n\t\t\t\t\tstyle={{ height: 180, paddingTop: 16, marginHorizontal: 16 }}\n\t\t\t\t/>\n\t\t\t);\n\t\treturn (\n\t\t\t<EmptyStateMain\n\t\t\t\ttitle={this.getEmptyStateText()}\n\t\t\t\tstyle={{ marginHorizontal: 16, marginTop: 16 }}\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst dataSource = this.props.limit\n\t\t\t? this.state.dataSource.slice(0, this.props.limit)\n\t\t\t: this.state.dataSource;\n\t\tconst isDataReady = !_.isEmpty(this.state.dataSource);\n\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={[styles.container, !this.props.isWidget && styles.mainContainer]}\n\t\t\t>\n\t\t\t\t{isDataReady && (\n\t\t\t\t\t<FlatList\n\t\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\t\tstyle={styles.fill}\n\t\t\t\t\t\tdata={dataSource}\n\t\t\t\t\t\tListEmptyComponent={this.renderEmptyList()}\n\t\t\t\t\t\tListHeaderComponent={this.renderListHeader()}\n\t\t\t\t\t\tkeyExtractor={(item) => item.Id}\n\t\t\t\t\t\trenderItem={({ item, index }) => this.renderChat(item, index)}\n\t\t\t\t\t\tListFooterComponent={\n\t\t\t\t\t\t\t!this.props.isWidget && <View style={{ height: 15 }} />\n\t\t\t\t\t\t}\n\t\t\t\t\t\textraData={this.state}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{!isDataReady && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{this.renderListHeader()}\n\t\t\t\t\t\t{this.renderEmptyList()}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nconst styles = {\n\tmainContainer: {\n\t\tpaddingVertical: 16,\n\t},\n\tcard: {\n\t\tposition: \"relative\",\n\t\tpaddingHorizontal: 0,\n\t\tpaddingVertical: 16,\n\t\tmarginBottom: 8,\n\t},\n\tsectionTitleContainer: {\n\t\theight: 30,\n\t\tpaddingHorizontal: 16,\n\t\tpaddingBottom: 8,\n\t\tjustifyContent: \"center\",\n\t},\n\tsectionTitle: {\n\t\tfontSize: 16,\n\t\tfontFamily: \"sf-semibold\",\n\t\tcolor: TEXT_DARK,\n\t},\n\tcontainer: {\n\t\tflex: 1,\n\t\tposition: \"relative\",\n\t},\n\trowReverse: {\n\t\tflexDirection: \"row-reverse\",\n\t\talignItems: \"center\",\n\t},\n\tfill: {\n\t\tflex: 1,\n\t\tbackgroundColor: \"#fff\",\n\t},\n\tlistItem: {\n\t\tbackgroundColor: \"#fff\",\n\t\tpaddingHorizontal: 15,\n\t\tpaddingBottom: 16,\n\t\tjustifyContent: \"flex-start\",\n\t\tflexDirection: \"row\",\n\t\tposition: \"relative\",\n\t},\n\textraSeparation: {\n\t\tmarginTop: 15,\n\t},\n\tunreadMarker: {\n\t\tbackgroundColor: \"transparent\",\n\t\tmarginTop: 35,\n\t\twidth: 10,\n\t\theight: 10,\n\t\tborderRadius: 5,\n\t},\n\tlistItemTextContainer: {\n\t\tflex: 1,\n\t\tmarginLeft: 10,\n\t},\n\tchatUserName: {\n\t\tfontSize: 16,\n\t\tfontFamily: \"sf-bold\",\n\t\tcolor: TEXT_DARK,\n\t},\n\tchatLastMessageContainer: {\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"flex-start\",\n\t\tpaddingRight: 20,\n\t},\n\tchatReplyIcon: {\n\t\tfontSize: 18,\n\t\tfontFamily: \"sf-regular\",\n\t\tcolor: TEXT_MID,\n\t\tmarginRight: 5,\n\t},\n\tchatLastMessage: {\n\t\tfontSize: 13,\n\t\tfontFamily: \"sf-medium\",\n\t\tcolor: TEXT_LIGHT,\n\t\tmarginRight: 5,\n\t},\n\tchatTextBold: {\n\t\tfontFamily: \"sf-bold\",\n\t},\n\tchatTimeStamp: {\n\t\tfontSize: 10,\n\t\tfontFamily: \"sf-semibold\",\n\t\tcolor: TEXT_LIGHT,\n\t},\n\taddButtonContainer: {\n\t\tposition: \"absolute\",\n\t\tright: 20,\n\t\tbottom: 20,\n\t},\n\taddButton: {\n\t\tleft: 0,\n\t\twidth: 45,\n\t\theight: 45,\n\t},\n\tcounter: {\n\t\tborderRadius: 10,\n\t\theight: 20,\n\t\tjustifyContent: \"center\",\n\t\tminWidth: 20,\n\t\tpaddingHorizontal: 4,\n\t\tbackgroundColor: COLOUR_GREEN,\n\t},\n\tcounterText: {\n\t\tcolor: \"#fff\",\n\t\tfontSize: 12,\n\t\tfontFamily: \"sf-semibold\",\n\t\ttextAlign: \"center\",\n\t},\n\tpublicGroupsHeaderContainer: {\n\t\tpaddingHorizontal: 16,\n\t\tpaddingTop: 16,\n\t\tpaddingBottom: 8,\n\t},\n\tpublicGroupsTitle: {\n\t\tmarginBottom: 4,\n\t},\n\tpublicGroupsHelper: {\n\t\tlineHeight: 20,\n\t},\n};\n\nconst mapStateToProps = (state) => {\n\tconst circles = state[values.reducerKey];\n\tconst { user } = state;\n\n\treturn {\n\t\tgroups: circles.list,\n\t\tinvites: circles.invites,\n\t\tunreadCount: circles && circles.unreadCount ? circles.unreadCount : 0,\n\t\tuser,\n\t\tcolourBrandingMain: getMainBrandingColourFromState(state),\n\t\tcircleAllowPublicCircles: getSiteSettingFromState(\n\t\t\tstate,\n\t\t\tvalues.allowPublicKey,\n\t\t),\n\t};\n};\n\nexport default connect(mapStateToProps, { clearGroupCounter })(ChatList);\n"],"mappings":"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"}
@@ -2,15 +2,15 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
3
3
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
4
  /* eslint-disable no-param-reassign */
5
- import React, { PureComponent } from 'react';
6
- import { View, Text, SectionList } from 'react-native';
7
- import { connect } from 'react-redux';
8
- import moment from 'moment';
9
- import _ from 'lodash';
10
- import { UserMessageListing, EmptyStateMain, SwipeableUserListing } from '../common';
11
- import { LINEGREY, TEXT_BLUEGREY } from '../../js';
12
- import { CONST_STRINGS } from '../../config';
13
- import { values } from '../../values.config';
5
+ import React, { PureComponent } from "react";
6
+ import { View, Text, SectionList } from "react-native";
7
+ import { connect } from "react-redux";
8
+ import moment from "moment";
9
+ import _ from "lodash";
10
+ import { UserMessageListing, EmptyStateMain, SwipeableUserListing } from "../common";
11
+ import { LINEGREY, TEXT_BLUEGREY } from "../../js";
12
+ import { CONST_STRINGS } from "../../config";
13
+ import { values } from "../../values.config";
14
14
  class ContactsList extends PureComponent {
15
15
  constructor(props) {
16
16
  super(props);
@@ -52,9 +52,9 @@ class ContactsList extends PureComponent {
52
52
  }
53
53
  getRelationshipKey(user) {
54
54
  if (_.isUndefined(user.relationship)) {
55
- if (user.section === 'Others') {
55
+ if (user.section === "Others") {
56
56
  return {
57
- key: 'Others',
57
+ key: "Others",
58
58
  order: 3
59
59
  };
60
60
  }
@@ -63,14 +63,14 @@ class ContactsList extends PureComponent {
63
63
  order: 2
64
64
  };
65
65
  }
66
- if (user.relationship === 'Friend') {
66
+ if (user.relationship === "Friend") {
67
67
  return {
68
- key: 'Friends',
68
+ key: "Friends",
69
69
  order: 1
70
70
  };
71
71
  }
72
72
  return {
73
- key: 'Family',
73
+ key: "Family",
74
74
  order: 0
75
75
  };
76
76
  }
@@ -79,7 +79,7 @@ class ContactsList extends PureComponent {
79
79
  const users = _.isUndefined(props.source) ? [] : props.source;
80
80
 
81
81
  // Build datasource ordered by relationship type
82
- _.sortBy([...users, ...this.props.otherMessages], 'displayName').forEach(user => {
82
+ _.sortBy([...users, ...this.props.otherMessages], "displayName").forEach(user => {
83
83
  const keyObj = this.getRelationshipKey(user);
84
84
  user.section = keyObj.key;
85
85
  user.key = user.id;
@@ -96,12 +96,12 @@ class ContactsList extends PureComponent {
96
96
  relationshipTypes[keyObj.key].data.push(user);
97
97
  }
98
98
  });
99
- const dataSource = _.sortBy(_.values(relationshipTypes), 'order');
99
+ const dataSource = _.sortBy(_.values(relationshipTypes), "order");
100
100
  if (dataSource.length > 0) dataSource[dataSource.length - 1].isLast = true;
101
101
  if (this._isMounted) {
102
102
  this.setState({
103
103
  dataSource,
104
- today: moment().local().format('D MMM YYYY')
104
+ today: moment().local().format("D MMM YYYY")
105
105
  });
106
106
  }
107
107
  }
@@ -157,8 +157,8 @@ class ContactsList extends PureComponent {
157
157
  const styles = {
158
158
  sectionHeader: {
159
159
  height: 35,
160
- justifyContent: 'center',
161
- backgroundColor: 'rgba(255, 255, 255, 0.8)'
160
+ justifyContent: "center",
161
+ backgroundColor: "rgba(255, 255, 255, 0.8)"
162
162
  },
163
163
  sectionFooter: {
164
164
  marginTop: 10,
@@ -168,7 +168,7 @@ const styles = {
168
168
  marginHorizontal: 19
169
169
  },
170
170
  sectionHeaderText: {
171
- fontFamily: 'sf-semibold',
171
+ fontFamily: "sf-semibold",
172
172
  color: TEXT_BLUEGREY,
173
173
  fontSize: 17
174
174
  },
@@ -180,7 +180,7 @@ const styles = {
180
180
  };
181
181
  const mapStateToProps = state => ({
182
182
  myId: state.user.uid,
183
- siteName: state.user.siteInfo ? state.user.siteInfo.siteName : '',
183
+ siteName: state.user.siteInfo ? state.user.siteInfo.siteName : "",
184
184
  privateList: state[values.reducerKey].privateList
185
185
  });
186
186
  export default connect(mapStateToProps, {})(ContactsList);
@@ -1 +1 @@
1
- {"version":3,"names":["React","PureComponent","View","Text","SectionList","connect","moment","_","UserMessageListing","EmptyStateMain","SwipeableUserListing","LINEGREY","TEXT_BLUEGREY","CONST_STRINGS","values","ContactsList","constructor","props","_defineProperty","item","index","createElement","user","enabled","chat","onArchive","handleArchive","listItemStyle","styles","contactListItem","key","lastMessageAt","unread","myId","today","state","onUserArchived","_isMounted","dataSource","componentDidMount","createDataSource","UNSAFE_componentWillReceiveProps","nextProps","componentWillUnmount","getRelationshipKey","isUndefined","relationship","section","order","siteName","relationshipTypes","users","source","sortBy","otherMessages","forEach","keyObj","id","find","title","data","isLast","push","length","setState","local","format","getEmptyStateText","options","isEmpty","EmptyText","EMPTY_PEOPLE","renderSectionHeader","style","sectionHeader","sectionHeaderTextContainer","sectionHeaderText","renderSectionFooter","sectionFooter","borderBottomColor","borderBottomWidth","renderEmptyList","isLoading","marginHorizontal","marginTop","render","sections","ListEmptyComponent","ListHeaderComponent","renderItem","keyExtractor","height","justifyContent","backgroundColor","fontFamily","color","fontSize","paddingTop","paddingBottom","paddingHorizontal","mapStateToProps","uid","siteInfo","privateList","reducerKey"],"sources":["ContactsList.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport React, { PureComponent } from 'react';\nimport { View, Text, SectionList } from 'react-native';\nimport { connect } from 'react-redux';\nimport moment from 'moment';\nimport _ from 'lodash';\nimport { UserMessageListing, EmptyStateMain, SwipeableUserListing } from '../common';\nimport { LINEGREY, TEXT_BLUEGREY } from '../../js';\nimport { CONST_STRINGS } from '../../config';\nimport { values } from '../../values.config';\n\nclass ContactsList extends PureComponent {\n constructor(props) {\n super(props);\n this._isMounted = false;\n this.state = {\n dataSource: [],\n };\n }\n\n async componentDidMount() {\n this._isMounted = true;\n this.createDataSource(this.props);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n this.createDataSource(nextProps);\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n getRelationshipKey(user) {\n if (_.isUndefined(user.relationship)) {\n if (user.section === 'Others') {\n return { key: 'Others', order: 3 };\n }\n return { key: this.props.siteName, order: 2 };\n }\n\n if (user.relationship === 'Friend') {\n return { key: 'Friends', order: 1 };\n }\n return { key: 'Family', order: 0 };\n }\n\n createDataSource(props) {\n const relationshipTypes = {};\n const users = _.isUndefined(props.source) ? [] : props.source;\n\n // Build datasource ordered by relationship type\n _.sortBy([...users, ...this.props.otherMessages], 'displayName').forEach(user => {\n const keyObj = this.getRelationshipKey(user);\n user.section = keyObj.key;\n user.key = user.id;\n\n if (!_.find(relationshipTypes, { title: keyObj.key })) {\n relationshipTypes[keyObj.key] = {\n title: keyObj.key,\n order: keyObj.order,\n data: [user],\n isLast: false,\n };\n } else {\n relationshipTypes[keyObj.key].data.push(user);\n }\n });\n const dataSource = _.sortBy(_.values(relationshipTypes), 'order');\n if (dataSource.length > 0) dataSource[dataSource.length - 1].isLast = true;\n\n if (this._isMounted) {\n this.setState({\n dataSource,\n today: moment()\n .local()\n .format('D MMM YYYY'),\n });\n }\n }\n\n getEmptyStateText() {\n if (this.props.options && !_.isEmpty(this.props.options.EmptyText)) {\n return this.props.options.EmptyText;\n }\n return CONST_STRINGS.EMPTY_PEOPLE;\n }\n\n renderSectionHeader({ section }) {\n if (_.isEmpty(section.title)) return null;\n return (\n <View style={styles.sectionHeader}>\n <View style={styles.sectionHeaderTextContainer}>\n <Text style={styles.sectionHeaderText}>{section.title}</Text>\n </View>\n </View>\n );\n }\n\n renderSectionFooter({ section }) {\n return <View style={[styles.sectionFooter, !section.isLast && { borderBottomColor: LINEGREY, borderBottomWidth: 1 }]} />;\n }\n\n renderItem = ({ item, index }) => {\n return (\n <SwipeableUserListing \n user={item} \n enabled={item.chat != null}\n onArchive={() => this.handleArchive(item)}\n >\n <UserMessageListing\n listItemStyle={styles.contactListItem}\n user={item}\n key={index + item.lastMessageAt + item.unread}\n myId={this.props.myId}\n today={this.state.today}\n />\n </SwipeableUserListing>\n );\n };\n\n handleArchive = (user) => {\n if (this.props.onUserArchived) {\n this.props.onUserArchived(user);\n }\n };\n\n renderEmptyList() {\n return this.props.isLoading ? null : (\n <EmptyStateMain title={this.getEmptyStateText()} style={{ marginHorizontal: 16, marginTop: 16 }} />\n );\n }\n\n render() {\n return (\n <SectionList\n sections={this.state.dataSource}\n ListEmptyComponent={this.renderEmptyList()}\n ListHeaderComponent={this.props.ListHeaderComponent}\n renderItem={this.renderItem}\n renderSectionHeader={this.renderSectionHeader}\n renderSectionFooter={this.renderSectionFooter}\n keyExtractor={item => item.key}\n />\n );\n }\n}\n\nconst styles = {\n sectionHeader: {\n height: 35,\n justifyContent: 'center',\n backgroundColor: 'rgba(255, 255, 255, 0.8)',\n },\n sectionFooter: {\n marginTop: 10,\n marginHorizontal: 19,\n },\n sectionHeaderTextContainer: {\n marginHorizontal: 19,\n },\n sectionHeaderText: {\n fontFamily: 'sf-semibold',\n color: TEXT_BLUEGREY,\n fontSize: 17,\n },\n contactListItem: {\n paddingTop: 10,\n paddingBottom: 10,\n paddingHorizontal: 20,\n },\n};\n\nconst mapStateToProps = state => ({\n myId: state.user.uid,\n siteName: state.user.siteInfo ? state.user.siteInfo.siteName : '',\n privateList: state[values.reducerKey].privateList,\n});\n\nexport default connect(mapStateToProps, {})(ContactsList);\n"],"mappings":";;;AAAA;AACA,OAAOA,KAAK,IAAIC,aAAa,QAAQ,OAAO;AAC5C,SAASC,IAAI,EAAEC,IAAI,EAAEC,WAAW,QAAQ,cAAc;AACtD,SAASC,OAAO,QAAQ,aAAa;AACrC,OAAOC,MAAM,MAAM,QAAQ;AAC3B,OAAOC,CAAC,MAAM,QAAQ;AACtB,SAASC,kBAAkB,EAAEC,cAAc,EAAEC,oBAAoB,QAAQ,WAAW;AACpF,SAASC,QAAQ,EAAEC,aAAa,QAAQ,UAAU;AAClD,SAASC,aAAa,QAAQ,cAAc;AAC5C,SAASC,MAAM,QAAQ,qBAAqB;AAE5C,MAAMC,YAAY,SAASd,aAAa,CAAC;EACvCe,WAAWA,CAACC,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA,qBA0FF,CAAC;MAAEC,IAAI;MAAEC;IAAM,CAAC,KAAK;MAChC,oBACEpB,KAAA,CAAAqB,aAAA,CAACX,oBAAoB;QACnBY,IAAI,EAAEH,IAAK;QACXI,OAAO,EAAEJ,IAAI,CAACK,IAAI,IAAI,IAAK;QAC3BC,SAAS,EAAEA,CAAA,KAAM,IAAI,CAACC,aAAa,CAACP,IAAI;MAAE,gBAE1CnB,KAAA,CAAAqB,aAAA,CAACb,kBAAkB;QACjBmB,aAAa,EAAEC,MAAM,CAACC,eAAgB;QACtCP,IAAI,EAAEH,IAAK;QACXW,GAAG,EAAEV,KAAK,GAAGD,IAAI,CAACY,aAAa,GAAGZ,IAAI,CAACa,MAAO;QAC9CC,IAAI,EAAE,IAAI,CAAChB,KAAK,CAACgB,IAAK;QACtBC,KAAK,EAAE,IAAI,CAACC,KAAK,CAACD;MAAM,CACzB,CACmB,CAAC;IAE3B,CAAC;IAAAhB,eAAA,wBAEgBI,IAAI,IAAK;MACxB,IAAI,IAAI,CAACL,KAAK,CAACmB,cAAc,EAAE;QAC7B,IAAI,CAACnB,KAAK,CAACmB,cAAc,CAACd,IAAI,CAAC;MACjC;IACF,CAAC;IA/GC,IAAI,CAACe,UAAU,GAAG,KAAK;IACvB,IAAI,CAACF,KAAK,GAAG;MACXG,UAAU,EAAE;IACd,CAAC;EACH;EAEA,MAAMC,iBAAiBA,CAAA,EAAG;IACxB,IAAI,CAACF,UAAU,GAAG,IAAI;IACtB,IAAI,CAACG,gBAAgB,CAAC,IAAI,CAACvB,KAAK,CAAC;EACnC;EAEAwB,gCAAgCA,CAACC,SAAS,EAAE;IAC1C,IAAI,CAACF,gBAAgB,CAACE,SAAS,CAAC;EAClC;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,CAACN,UAAU,GAAG,KAAK;EACzB;EAEAO,kBAAkBA,CAACtB,IAAI,EAAE;IACvB,IAAIf,CAAC,CAACsC,WAAW,CAACvB,IAAI,CAACwB,YAAY,CAAC,EAAE;MACpC,IAAIxB,IAAI,CAACyB,OAAO,KAAK,QAAQ,EAAE;QAC7B,OAAO;UAAEjB,GAAG,EAAE,QAAQ;UAAEkB,KAAK,EAAE;QAAE,CAAC;MACpC;MACA,OAAO;QAAElB,GAAG,EAAE,IAAI,CAACb,KAAK,CAACgC,QAAQ;QAAED,KAAK,EAAE;MAAE,CAAC;IAC/C;IAEA,IAAI1B,IAAI,CAACwB,YAAY,KAAK,QAAQ,EAAE;MAClC,OAAO;QAAEhB,GAAG,EAAE,SAAS;QAAEkB,KAAK,EAAE;MAAE,CAAC;IACrC;IACA,OAAO;MAAElB,GAAG,EAAE,QAAQ;MAAEkB,KAAK,EAAE;IAAE,CAAC;EACpC;EAEAR,gBAAgBA,CAACvB,KAAK,EAAE;IACtB,MAAMiC,iBAAiB,GAAG,CAAC,CAAC;IAC5B,MAAMC,KAAK,GAAG5C,CAAC,CAACsC,WAAW,CAAC5B,KAAK,CAACmC,MAAM,CAAC,GAAG,EAAE,GAAGnC,KAAK,CAACmC,MAAM;;IAE7D;IACA7C,CAAC,CAAC8C,MAAM,CAAC,CAAC,GAAGF,KAAK,EAAE,GAAG,IAAI,CAAClC,KAAK,CAACqC,aAAa,CAAC,EAAE,aAAa,CAAC,CAACC,OAAO,CAACjC,IAAI,IAAI;MAC/E,MAAMkC,MAAM,GAAG,IAAI,CAACZ,kBAAkB,CAACtB,IAAI,CAAC;MAC5CA,IAAI,CAACyB,OAAO,GAAGS,MAAM,CAAC1B,GAAG;MACzBR,IAAI,CAACQ,GAAG,GAAGR,IAAI,CAACmC,EAAE;MAElB,IAAI,CAAClD,CAAC,CAACmD,IAAI,CAACR,iBAAiB,EAAE;QAAES,KAAK,EAAEH,MAAM,CAAC1B;MAAI,CAAC,CAAC,EAAE;QACrDoB,iBAAiB,CAACM,MAAM,CAAC1B,GAAG,CAAC,GAAG;UAC9B6B,KAAK,EAAEH,MAAM,CAAC1B,GAAG;UACjBkB,KAAK,EAAEQ,MAAM,CAACR,KAAK;UACnBY,IAAI,EAAE,CAACtC,IAAI,CAAC;UACZuC,MAAM,EAAE;QACV,CAAC;MACH,CAAC,MAAM;QACLX,iBAAiB,CAACM,MAAM,CAAC1B,GAAG,CAAC,CAAC8B,IAAI,CAACE,IAAI,CAACxC,IAAI,CAAC;MAC/C;IACF,CAAC,CAAC;IACF,MAAMgB,UAAU,GAAG/B,CAAC,CAAC8C,MAAM,CAAC9C,CAAC,CAACO,MAAM,CAACoC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACjE,IAAIZ,UAAU,CAACyB,MAAM,GAAG,CAAC,EAAEzB,UAAU,CAACA,UAAU,CAACyB,MAAM,GAAG,CAAC,CAAC,CAACF,MAAM,GAAG,IAAI;IAE1E,IAAI,IAAI,CAACxB,UAAU,EAAE;MACnB,IAAI,CAAC2B,QAAQ,CAAC;QACZ1B,UAAU;QACVJ,KAAK,EAAE5B,MAAM,CAAC,CAAC,CACZ2D,KAAK,CAAC,CAAC,CACPC,MAAM,CAAC,YAAY;MACxB,CAAC,CAAC;IACJ;EACF;EAEAC,iBAAiBA,CAAA,EAAG;IAClB,IAAI,IAAI,CAAClD,KAAK,CAACmD,OAAO,IAAI,CAAC7D,CAAC,CAAC8D,OAAO,CAAC,IAAI,CAACpD,KAAK,CAACmD,OAAO,CAACE,SAAS,CAAC,EAAE;MAClE,OAAO,IAAI,CAACrD,KAAK,CAACmD,OAAO,CAACE,SAAS;IACrC;IACA,OAAOzD,aAAa,CAAC0D,YAAY;EACnC;EAEAC,mBAAmBA,CAAC;IAAEzB;EAAQ,CAAC,EAAE;IAC/B,IAAIxC,CAAC,CAAC8D,OAAO,CAACtB,OAAO,CAACY,KAAK,CAAC,EAAE,OAAO,IAAI;IACzC,oBACE3D,KAAA,CAAAqB,aAAA,CAACnB,IAAI;MAACuE,KAAK,EAAE7C,MAAM,CAAC8C;IAAc,gBAChC1E,KAAA,CAAAqB,aAAA,CAACnB,IAAI;MAACuE,KAAK,EAAE7C,MAAM,CAAC+C;IAA2B,gBAC7C3E,KAAA,CAAAqB,aAAA,CAAClB,IAAI;MAACsE,KAAK,EAAE7C,MAAM,CAACgD;IAAkB,GAAE7B,OAAO,CAACY,KAAY,CACxD,CACF,CAAC;EAEX;EAEAkB,mBAAmBA,CAAC;IAAE9B;EAAQ,CAAC,EAAE;IAC/B,oBAAO/C,KAAA,CAAAqB,aAAA,CAACnB,IAAI;MAACuE,KAAK,EAAE,CAAC7C,MAAM,CAACkD,aAAa,EAAE,CAAC/B,OAAO,CAACc,MAAM,IAAI;QAAEkB,iBAAiB,EAAEpE,QAAQ;QAAEqE,iBAAiB,EAAE;MAAE,CAAC;IAAE,CAAE,CAAC;EAC1H;EA0BAC,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,CAAChE,KAAK,CAACiE,SAAS,GAAG,IAAI,gBAChClF,KAAA,CAAAqB,aAAA,CAACZ,cAAc;MAACkD,KAAK,EAAE,IAAI,CAACQ,iBAAiB,CAAC,CAAE;MAACM,KAAK,EAAE;QAAEU,gBAAgB,EAAE,EAAE;QAAEC,SAAS,EAAE;MAAG;IAAE,CAAE,CACnG;EACH;EAEAC,MAAMA,CAAA,EAAG;IACP,oBACErF,KAAA,CAAAqB,aAAA,CAACjB,WAAW;MACVkF,QAAQ,EAAE,IAAI,CAACnD,KAAK,CAACG,UAAW;MAChCiD,kBAAkB,EAAE,IAAI,CAACN,eAAe,CAAC,CAAE;MAC3CO,mBAAmB,EAAE,IAAI,CAACvE,KAAK,CAACuE,mBAAoB;MACpDC,UAAU,EAAE,IAAI,CAACA,UAAW;MAC5BjB,mBAAmB,EAAE,IAAI,CAACA,mBAAoB;MAC9CK,mBAAmB,EAAE,IAAI,CAACA,mBAAoB;MAC9Ca,YAAY,EAAEvE,IAAI,IAAIA,IAAI,CAACW;IAAI,CAChC,CAAC;EAEN;AACF;AAEA,MAAMF,MAAM,GAAG;EACb8C,aAAa,EAAE;IACbiB,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,QAAQ;IACxBC,eAAe,EAAE;EACnB,CAAC;EACDf,aAAa,EAAE;IACbM,SAAS,EAAE,EAAE;IACbD,gBAAgB,EAAE;EACpB,CAAC;EACDR,0BAA0B,EAAE;IAC1BQ,gBAAgB,EAAE;EACpB,CAAC;EACDP,iBAAiB,EAAE;IACjBkB,UAAU,EAAE,aAAa;IACzBC,KAAK,EAAEnF,aAAa;IACpBoF,QAAQ,EAAE;EACZ,CAAC;EACDnE,eAAe,EAAE;IACfoE,UAAU,EAAE,EAAE;IACdC,aAAa,EAAE,EAAE;IACjBC,iBAAiB,EAAE;EACrB;AACF,CAAC;AAED,MAAMC,eAAe,GAAGjE,KAAK,KAAK;EAChCF,IAAI,EAAEE,KAAK,CAACb,IAAI,CAAC+E,GAAG;EACpBpD,QAAQ,EAAEd,KAAK,CAACb,IAAI,CAACgF,QAAQ,GAAGnE,KAAK,CAACb,IAAI,CAACgF,QAAQ,CAACrD,QAAQ,GAAG,EAAE;EACjEsD,WAAW,EAAEpE,KAAK,CAACrB,MAAM,CAAC0F,UAAU,CAAC,CAACD;AACxC,CAAC,CAAC;AAEF,eAAelG,OAAO,CAAC+F,eAAe,EAAE,CAAC,CAAC,CAAC,CAACrF,YAAY,CAAC"}
1
+ {"version":3,"names":["React","PureComponent","View","Text","SectionList","connect","moment","_","UserMessageListing","EmptyStateMain","SwipeableUserListing","LINEGREY","TEXT_BLUEGREY","CONST_STRINGS","values","ContactsList","constructor","props","_defineProperty","item","index","createElement","user","enabled","chat","onArchive","handleArchive","listItemStyle","styles","contactListItem","key","lastMessageAt","unread","myId","today","state","onUserArchived","_isMounted","dataSource","componentDidMount","createDataSource","UNSAFE_componentWillReceiveProps","nextProps","componentWillUnmount","getRelationshipKey","isUndefined","relationship","section","order","siteName","relationshipTypes","users","source","sortBy","otherMessages","forEach","keyObj","id","find","title","data","isLast","push","length","setState","local","format","getEmptyStateText","options","isEmpty","EmptyText","EMPTY_PEOPLE","renderSectionHeader","style","sectionHeader","sectionHeaderTextContainer","sectionHeaderText","renderSectionFooter","sectionFooter","borderBottomColor","borderBottomWidth","renderEmptyList","isLoading","marginHorizontal","marginTop","render","sections","ListEmptyComponent","ListHeaderComponent","renderItem","keyExtractor","height","justifyContent","backgroundColor","fontFamily","color","fontSize","paddingTop","paddingBottom","paddingHorizontal","mapStateToProps","uid","siteInfo","privateList","reducerKey"],"sources":["ContactsList.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport React, { PureComponent } from \"react\";\nimport { View, Text, SectionList } from \"react-native\";\nimport { connect } from \"react-redux\";\nimport moment from \"moment\";\nimport _ from \"lodash\";\nimport {\n\tUserMessageListing,\n\tEmptyStateMain,\n\tSwipeableUserListing,\n} from \"../common\";\nimport { LINEGREY, TEXT_BLUEGREY } from \"../../js\";\nimport { CONST_STRINGS } from \"../../config\";\nimport { values } from \"../../values.config\";\n\nclass ContactsList extends PureComponent {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis._isMounted = false;\n\t\tthis.state = {\n\t\t\tdataSource: [],\n\t\t};\n\t}\n\n\tasync componentDidMount() {\n\t\tthis._isMounted = true;\n\t\tthis.createDataSource(this.props);\n\t}\n\n\tUNSAFE_componentWillReceiveProps(nextProps) {\n\t\tthis.createDataSource(nextProps);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis._isMounted = false;\n\t}\n\n\tgetRelationshipKey(user) {\n\t\tif (_.isUndefined(user.relationship)) {\n\t\t\tif (user.section === \"Others\") {\n\t\t\t\treturn { key: \"Others\", order: 3 };\n\t\t\t}\n\t\t\treturn { key: this.props.siteName, order: 2 };\n\t\t}\n\n\t\tif (user.relationship === \"Friend\") {\n\t\t\treturn { key: \"Friends\", order: 1 };\n\t\t}\n\t\treturn { key: \"Family\", order: 0 };\n\t}\n\n\tcreateDataSource(props) {\n\t\tconst relationshipTypes = {};\n\t\tconst users = _.isUndefined(props.source) ? [] : props.source;\n\n\t\t// Build datasource ordered by relationship type\n\t\t_.sortBy([...users, ...this.props.otherMessages], \"displayName\").forEach(\n\t\t\t(user) => {\n\t\t\t\tconst keyObj = this.getRelationshipKey(user);\n\t\t\t\tuser.section = keyObj.key;\n\t\t\t\tuser.key = user.id;\n\n\t\t\t\tif (!_.find(relationshipTypes, { title: keyObj.key })) {\n\t\t\t\t\trelationshipTypes[keyObj.key] = {\n\t\t\t\t\t\ttitle: keyObj.key,\n\t\t\t\t\t\torder: keyObj.order,\n\t\t\t\t\t\tdata: [user],\n\t\t\t\t\t\tisLast: false,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\trelationshipTypes[keyObj.key].data.push(user);\n\t\t\t\t}\n\t\t\t},\n\t\t);\n\t\tconst dataSource = _.sortBy(_.values(relationshipTypes), \"order\");\n\t\tif (dataSource.length > 0) dataSource[dataSource.length - 1].isLast = true;\n\n\t\tif (this._isMounted) {\n\t\t\tthis.setState({\n\t\t\t\tdataSource,\n\t\t\t\ttoday: moment().local().format(\"D MMM YYYY\"),\n\t\t\t});\n\t\t}\n\t}\n\n\tgetEmptyStateText() {\n\t\tif (this.props.options && !_.isEmpty(this.props.options.EmptyText)) {\n\t\t\treturn this.props.options.EmptyText;\n\t\t}\n\t\treturn CONST_STRINGS.EMPTY_PEOPLE;\n\t}\n\n\trenderSectionHeader({ section }) {\n\t\tif (_.isEmpty(section.title)) return null;\n\t\treturn (\n\t\t\t<View style={styles.sectionHeader}>\n\t\t\t\t<View style={styles.sectionHeaderTextContainer}>\n\t\t\t\t\t<Text style={styles.sectionHeaderText}>{section.title}</Text>\n\t\t\t\t</View>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderSectionFooter({ section }) {\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={[\n\t\t\t\t\tstyles.sectionFooter,\n\t\t\t\t\t!section.isLast && {\n\t\t\t\t\t\tborderBottomColor: LINEGREY,\n\t\t\t\t\t\tborderBottomWidth: 1,\n\t\t\t\t\t},\n\t\t\t\t]}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderItem = ({ item, index }) => {\n\t\treturn (\n\t\t\t<SwipeableUserListing\n\t\t\t\tuser={item}\n\t\t\t\tenabled={item.chat != null}\n\t\t\t\tonArchive={() => this.handleArchive(item)}\n\t\t\t>\n\t\t\t\t<UserMessageListing\n\t\t\t\t\tlistItemStyle={styles.contactListItem}\n\t\t\t\t\tuser={item}\n\t\t\t\t\tkey={index + item.lastMessageAt + item.unread}\n\t\t\t\t\tmyId={this.props.myId}\n\t\t\t\t\ttoday={this.state.today}\n\t\t\t\t/>\n\t\t\t</SwipeableUserListing>\n\t\t);\n\t};\n\n\thandleArchive = (user) => {\n\t\tif (this.props.onUserArchived) {\n\t\t\tthis.props.onUserArchived(user);\n\t\t}\n\t};\n\n\trenderEmptyList() {\n\t\treturn this.props.isLoading ? null : (\n\t\t\t<EmptyStateMain\n\t\t\t\ttitle={this.getEmptyStateText()}\n\t\t\t\tstyle={{ marginHorizontal: 16, marginTop: 16 }}\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<SectionList\n\t\t\t\tsections={this.state.dataSource}\n\t\t\t\tListEmptyComponent={this.renderEmptyList()}\n\t\t\t\tListHeaderComponent={this.props.ListHeaderComponent}\n\t\t\t\trenderItem={this.renderItem}\n\t\t\t\trenderSectionHeader={this.renderSectionHeader}\n\t\t\t\trenderSectionFooter={this.renderSectionFooter}\n\t\t\t\tkeyExtractor={(item) => item.key}\n\t\t\t/>\n\t\t);\n\t}\n}\n\nconst styles = {\n\tsectionHeader: {\n\t\theight: 35,\n\t\tjustifyContent: \"center\",\n\t\tbackgroundColor: \"rgba(255, 255, 255, 0.8)\",\n\t},\n\tsectionFooter: {\n\t\tmarginTop: 10,\n\t\tmarginHorizontal: 19,\n\t},\n\tsectionHeaderTextContainer: {\n\t\tmarginHorizontal: 19,\n\t},\n\tsectionHeaderText: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tcolor: TEXT_BLUEGREY,\n\t\tfontSize: 17,\n\t},\n\tcontactListItem: {\n\t\tpaddingTop: 10,\n\t\tpaddingBottom: 10,\n\t\tpaddingHorizontal: 20,\n\t},\n};\n\nconst mapStateToProps = (state) => ({\n\tmyId: state.user.uid,\n\tsiteName: state.user.siteInfo ? state.user.siteInfo.siteName : \"\",\n\tprivateList: state[values.reducerKey].privateList,\n});\n\nexport default connect(mapStateToProps, {})(ContactsList);\n"],"mappings":"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"}