@plusscommunities/pluss-circles-app-groups 7.0.2 → 7.0.17-auth.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module/actions/ChatActions.js.map +1 -1
- package/dist/module/actions/GroupActions.js +4 -4
- package/dist/module/actions/GroupActions.js.map +1 -1
- package/dist/module/actions/index.js.map +1 -1
- package/dist/module/actions/types.js +3 -0
- package/dist/module/actions/types.js.map +1 -1
- package/dist/module/assets/fonts.js.map +1 -1
- package/dist/module/components/chat/Chat.js +2 -2
- package/dist/module/components/chat/Chat.js.map +1 -1
- package/dist/module/components/chat/ChatList.js.map +1 -1
- package/dist/module/components/chat/ContactsList.js +14 -5
- package/dist/module/components/chat/ContactsList.js.map +1 -1
- package/dist/module/components/chat/KioskPeoplePage.js +2 -2
- package/dist/module/components/chat/KioskPeoplePage.js.map +1 -1
- package/dist/module/components/chat/PeopleContainer.js.map +1 -1
- package/dist/module/components/chat/PeoplePage.js +6 -6
- package/dist/module/components/chat/PeoplePage.js.map +1 -1
- package/dist/module/components/common/SwipeableUserListing.js +122 -0
- package/dist/module/components/common/SwipeableUserListing.js.map +1 -0
- package/dist/module/components/common/index.js +2 -0
- package/dist/module/components/common/index.js.map +1 -1
- package/dist/module/components/events/EventInvitePopup.js.map +1 -1
- package/dist/module/components/groups/EditGroup.js +2 -2
- package/dist/module/components/groups/EditGroup.js.map +1 -1
- package/dist/module/components/groups/GroupDetails.js +2 -2
- package/dist/module/components/groups/GroupDetails.js.map +1 -1
- package/dist/module/components/groups/GroupsList.js +2 -2
- package/dist/module/components/groups/GroupsList.js.map +1 -1
- package/dist/module/components/groups/GroupsWidget.js +2 -2
- package/dist/module/components/groups/GroupsWidget.js.map +1 -1
- package/dist/module/components/groups/NewGroup.js +2 -2
- package/dist/module/components/groups/NewGroup.js.map +1 -1
- package/dist/module/components/groups/PublicGroup.js.map +1 -1
- package/dist/module/components/groups/PublicGroupAction.js.map +1 -1
- package/dist/module/components/notifications/GroupInvite.js.map +1 -1
- package/dist/module/components/notifications/GroupInviteAction.js.map +1 -1
- package/dist/module/components/notifications/GroupMessage.js +2 -2
- package/dist/module/components/notifications/GroupMessage.js.map +1 -1
- package/dist/module/components/takeover/TakeoverBackground.js.map +1 -1
- package/dist/module/config/index.js.map +1 -1
- package/dist/module/core.config.js.map +1 -1
- package/dist/module/feature.config.js +26 -7
- package/dist/module/feature.config.js.map +1 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/js/Colors.js.map +1 -1
- package/dist/module/js/NavigationService.js.map +1 -1
- package/dist/module/js/Styles.js.map +1 -1
- package/dist/module/js/circles/MapStateToDirectMessages.js.map +1 -1
- package/dist/module/js/index.js.map +1 -1
- package/dist/module/reducers/ChatsReducer.js +2 -2
- package/dist/module/reducers/ChatsReducer.js.map +1 -1
- package/dist/module/reducers/GroupsReducer.js +75 -13
- package/dist/module/reducers/GroupsReducer.js.map +1 -1
- package/dist/module/reducers/reducerKeys.js.map +1 -1
- package/dist/module/values.config.default.js.map +1 -1
- package/dist/module/values.config.groups.js.map +1 -1
- package/dist/module/values.config.js.map +1 -1
- package/dist/module/webapi/circleActions.js +15 -2
- package/dist/module/webapi/circleActions.js.map +1 -1
- package/dist/module/webapi/helper.js.map +1 -1
- package/dist/module/webapi/index.js.map +1 -1
- package/dist/module/webapi/messageActions.js.map +1 -1
- package/package.json +7 -3
- package/src/actions/GroupActions.js +4 -3
- package/src/actions/types.js +3 -0
- package/src/components/chat/ContactsList.js +20 -8
- package/src/components/chat/PeoplePage.js +4 -4
- package/src/components/common/SwipeableUserListing.js +124 -0
- package/src/components/common/index.js +2 -0
- package/src/feature.config.js +26 -6
- package/src/reducers/GroupsReducer.js +72 -9
- package/src/webapi/circleActions.js +9 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_","START_FETCHING_CIRCLE_CHATS","RECEIVED_CIRCLE_CHATS","DELETED_CIRCLE_CHAT","DISCONNECTED_CIRCLE_CHAT","DISCONNECTED_CIRCLE_CHAT_LIST","BLOCKED_CIRCLE_USER","RECEIVED_BLOCKED_CIRCLE_USERS","RECEIVED_CIRCLE_MESSAGES","createChat","users","title","console","log","deleteChat","chatKey","dispatch","deletedChat","disconnectChatList","disconnectedChatList","disconnectChat","disconnectedChat","blockUser","userKey","targetUserKey","blockedUser","type","payload","startFetchingChats","receivedChats","chats","unreadCount","forEach","chat","unread","receivedBlockedUsers","blocked","updateChatMessages","messages"],"sources":["ChatActions.js"],"sourcesContent":["import _ from 'lodash';\nimport {\n START_FETCHING_CIRCLE_CHATS,\n RECEIVED_CIRCLE_CHATS,\n DELETED_CIRCLE_CHAT,\n DISCONNECTED_CIRCLE_CHAT,\n DISCONNECTED_CIRCLE_CHAT_LIST,\n BLOCKED_CIRCLE_USER,\n RECEIVED_BLOCKED_CIRCLE_USERS,\n RECEIVED_CIRCLE_MESSAGES,\n} from './types';\n\nexport const createChat = (users, title) => {\n console.log('CREATE CHAT ACTION HIT.......???');\n};\n\nexport const deleteChat = chatKey => {\n return async dispatch => {\n dispatch(deletedChat(chatKey));\n };\n};\n\nexport const disconnectChatList = () => {\n return dispatch => {\n dispatch(disconnectedChatList());\n };\n};\n\nexport const disconnectChat = chatKey => {\n return dispatch => {\n dispatch(disconnectedChat());\n };\n};\n\nexport const blockUser = (userKey, targetUserKey) => {\n return async dispatch => {\n dispatch(blockedUser());\n };\n};\n\nconst deletedChat = chatKey => {\n return {\n type: DELETED_CIRCLE_CHAT,\n payload: chatKey,\n };\n};\n\nconst startFetchingChats = () => ({\n type: START_FETCHING_CIRCLE_CHATS,\n});\n\nconst receivedChats = (chats, userKey) => {\n // Calculate total unread count\n let unreadCount = 0;\n chats.forEach(chat => {\n if (chat.unread) unreadCount += chat.unread[userKey];\n });\n\n return {\n type: RECEIVED_CIRCLE_CHATS,\n payload: chats,\n unreadCount,\n };\n};\n\nconst disconnectedChatList = () => ({\n type: DISCONNECTED_CIRCLE_CHAT_LIST,\n});\n\nconst disconnectedChat = () => ({\n type: DISCONNECTED_CIRCLE_CHAT,\n});\n\nconst blockedUser = () => {\n return {\n type: BLOCKED_CIRCLE_USER,\n };\n};\n\nconst receivedBlockedUsers = blocked => {\n return {\n type: RECEIVED_BLOCKED_CIRCLE_USERS,\n payload: blocked,\n };\n};\n\nexport const updateChatMessages = (chatKey, messages) => {\n return {\n type: RECEIVED_CIRCLE_MESSAGES,\n payload: { chatKey, messages },\n };\n};\n"],"mappings":"AAAA,OAAOA,CAAC,MAAM,QAAQ;AACtB,SACEC,2BAA2B,EAC3BC,qBAAqB,EACrBC,mBAAmB,EACnBC,wBAAwB,EACxBC,6BAA6B,EAC7BC,mBAAmB,EACnBC,6BAA6B,EAC7BC,wBAAwB,QACnB,SAAS;AAEhB,OAAO,MAAMC,UAAU,GAAGA,CAACC,KAAK,EAAEC,KAAK,KAAK;EAC1CC,OAAO,CAACC,GAAG,CAAC,kCAAkC,CAAC;AACjD,CAAC;AAED,OAAO,MAAMC,UAAU,GAAGC,OAAO,IAAI;EACnC,OAAO,MAAMC,QAAQ,IAAI;IACvBA,QAAQ,CAACC,WAAW,CAACF,OAAO,CAAC,CAAC;EAChC,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,kBAAkB,GAAGA,CAAA,KAAM;EACtC,OAAOF,QAAQ,IAAI;IACjBA,QAAQ,CAACG,oBAAoB,CAAC,CAAC,CAAC;EAClC,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGL,OAAO,IAAI;EACvC,OAAOC,QAAQ,IAAI;IACjBA,QAAQ,CAACK,gBAAgB,CAAC,CAAC,CAAC;EAC9B,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,SAAS,GAAGA,CAACC,OAAO,EAAEC,aAAa,KAAK;EACnD,OAAO,MAAMR,QAAQ,IAAI;IACvBA,QAAQ,CAACS,WAAW,CAAC,CAAC,CAAC;EACzB,CAAC;AACH,CAAC;AAED,MAAMR,WAAW,GAAGF,OAAO,IAAI;EAC7B,OAAO;IACLW,IAAI,EAAEvB,mBAAmB;IACzBwB,OAAO,EAAEZ;EACX,CAAC;AACH,CAAC;AAED,MAAMa,kBAAkB,GAAGA,CAAA,MAAO;EAChCF,IAAI,EAAEzB;AACR,CAAC,CAAC;AAEF,MAAM4B,aAAa,GAAGA,CAACC,KAAK,EAAEP,OAAO,KAAK;EACxC;EACA,IAAIQ,WAAW,GAAG,CAAC;EACnBD,KAAK,CAACE,OAAO,CAACC,IAAI,IAAI;IACpB,IAAIA,IAAI,CAACC,MAAM,EAAEH,WAAW,IAAIE,IAAI,CAACC,MAAM,CAACX,OAAO,CAAC;EACtD,CAAC,CAAC;EAEF,OAAO;IACLG,IAAI,EAAExB,qBAAqB;IAC3ByB,OAAO,EAAEG,KAAK;IACdC;EACF,CAAC;AACH,CAAC;AAED,MAAMZ,oBAAoB,GAAGA,CAAA,MAAO;EAClCO,IAAI,EAAErB;AACR,CAAC,CAAC;AAEF,MAAMgB,gBAAgB,GAAGA,CAAA,MAAO;EAC9BK,IAAI,EAAEtB;AACR,CAAC,CAAC;AAEF,MAAMqB,WAAW,GAAGA,CAAA,KAAM;EACxB,OAAO;IACLC,IAAI,EAAEpB;EACR,CAAC;AACH,CAAC;AAED,MAAM6B,oBAAoB,GAAGC,OAAO,IAAI;EACtC,OAAO;IACLV,IAAI,EAAEnB,6BAA6B;IACnCoB,OAAO,EAAES;EACX,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAGA,CAACtB,OAAO,EAAEuB,QAAQ,KAAK;EACvD,OAAO;IACLZ,IAAI,EAAElB,wBAAwB;IAC9BmB,OAAO,EAAE;MAAEZ,OAAO;MAAEuB;IAAS;EAC/B,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"names":["_","START_FETCHING_CIRCLE_CHATS","RECEIVED_CIRCLE_CHATS","DELETED_CIRCLE_CHAT","DISCONNECTED_CIRCLE_CHAT","DISCONNECTED_CIRCLE_CHAT_LIST","BLOCKED_CIRCLE_USER","RECEIVED_BLOCKED_CIRCLE_USERS","RECEIVED_CIRCLE_MESSAGES","createChat","users","title","console","log","deleteChat","chatKey","dispatch","deletedChat","disconnectChatList","disconnectedChatList","disconnectChat","disconnectedChat","blockUser","userKey","targetUserKey","blockedUser","type","payload","startFetchingChats","receivedChats","chats","unreadCount","forEach","chat","unread","receivedBlockedUsers","blocked","updateChatMessages","messages"],"sources":["ChatActions.js"],"sourcesContent":["import _ from 'lodash';\nimport {\n START_FETCHING_CIRCLE_CHATS,\n RECEIVED_CIRCLE_CHATS,\n DELETED_CIRCLE_CHAT,\n DISCONNECTED_CIRCLE_CHAT,\n DISCONNECTED_CIRCLE_CHAT_LIST,\n BLOCKED_CIRCLE_USER,\n RECEIVED_BLOCKED_CIRCLE_USERS,\n RECEIVED_CIRCLE_MESSAGES,\n} from './types';\n\nexport const createChat = (users, title) => {\n console.log('CREATE CHAT ACTION HIT.......???');\n};\n\nexport const deleteChat = chatKey => {\n return async dispatch => {\n dispatch(deletedChat(chatKey));\n };\n};\n\nexport const disconnectChatList = () => {\n return dispatch => {\n dispatch(disconnectedChatList());\n };\n};\n\nexport const disconnectChat = chatKey => {\n return dispatch => {\n dispatch(disconnectedChat());\n };\n};\n\nexport const blockUser = (userKey, targetUserKey) => {\n return async dispatch => {\n dispatch(blockedUser());\n };\n};\n\nconst deletedChat = chatKey => {\n return {\n type: DELETED_CIRCLE_CHAT,\n payload: chatKey,\n };\n};\n\nconst startFetchingChats = () => ({\n type: START_FETCHING_CIRCLE_CHATS,\n});\n\nconst receivedChats = (chats, userKey) => {\n // Calculate total unread count\n let unreadCount = 0;\n chats.forEach(chat => {\n if (chat.unread) unreadCount += chat.unread[userKey];\n });\n\n return {\n type: RECEIVED_CIRCLE_CHATS,\n payload: chats,\n unreadCount,\n };\n};\n\nconst disconnectedChatList = () => ({\n type: DISCONNECTED_CIRCLE_CHAT_LIST,\n});\n\nconst disconnectedChat = () => ({\n type: DISCONNECTED_CIRCLE_CHAT,\n});\n\nconst blockedUser = () => {\n return {\n type: BLOCKED_CIRCLE_USER,\n };\n};\n\nconst receivedBlockedUsers = blocked => {\n return {\n type: RECEIVED_BLOCKED_CIRCLE_USERS,\n payload: blocked,\n };\n};\n\nexport const updateChatMessages = (chatKey, messages) => {\n return {\n type: RECEIVED_CIRCLE_MESSAGES,\n payload: { chatKey, messages },\n };\n};\n"],"mappings":"AAAA,OAAOA,CAAC,MAAM,QAAQ;AACtB,SACEC,2BAA2B,EAC3BC,qBAAqB,EACrBC,mBAAmB,EACnBC,wBAAwB,EACxBC,6BAA6B,EAC7BC,mBAAmB,EACnBC,6BAA6B,EAC7BC,wBAAwB,QACnB,SAAS;AAEhB,OAAO,MAAMC,UAAU,GAAGA,CAACC,KAAK,EAAEC,KAAK,KAAK;EAC1CC,OAAO,CAACC,GAAG,CAAC,kCAAkC,CAAC;AACjD,CAAC;AAED,OAAO,MAAMC,UAAU,GAAGC,OAAO,IAAI;EACnC,OAAO,MAAMC,QAAQ,IAAI;IACvBA,QAAQ,CAACC,WAAW,CAACF,OAAO,CAAC,CAAC;EAChC,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,kBAAkB,GAAGA,CAAA,KAAM;EACtC,OAAOF,QAAQ,IAAI;IACjBA,QAAQ,CAACG,oBAAoB,CAAC,CAAC,CAAC;EAClC,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGL,OAAO,IAAI;EACvC,OAAOC,QAAQ,IAAI;IACjBA,QAAQ,CAACK,gBAAgB,CAAC,CAAC,CAAC;EAC9B,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,SAAS,GAAGA,CAACC,OAAO,EAAEC,aAAa,KAAK;EACnD,OAAO,MAAMR,QAAQ,IAAI;IACvBA,QAAQ,CAACS,WAAW,CAAC,CAAC,CAAC;EACzB,CAAC;AACH,CAAC;AAED,MAAMR,WAAW,GAAGF,OAAO,IAAI;EAC7B,OAAO;IACLW,IAAI,EAAEvB,mBAAmB;IACzBwB,OAAO,EAAEZ;EACX,CAAC;AACH,CAAC;AAED,MAAMa,kBAAkB,GAAGA,CAAA,MAAO;EAChCF,IAAI,EAAEzB;AACR,CAAC,CAAC;AAEF,MAAM4B,aAAa,GAAGA,CAACC,KAAK,EAAEP,OAAO,KAAK;EACxC;EACA,IAAIQ,WAAW,GAAG,CAAC;EACnBD,KAAK,CAACE,OAAO,CAACC,IAAI,IAAI;IACpB,IAAIA,IAAI,CAACC,MAAM,EAAEH,WAAW,IAAIE,IAAI,CAACC,MAAM,CAACX,OAAO,CAAC;EACtD,CAAC,CAAC;EAEF,OAAO;IACLG,IAAI,EAAExB,qBAAqB;IAC3ByB,OAAO,EAAEG,KAAK;IACdC;EACF,CAAC;AACH,CAAC;AAED,MAAMZ,oBAAoB,GAAGA,CAAA,MAAO;EAClCO,IAAI,EAAErB;AACR,CAAC,CAAC;AAEF,MAAMgB,gBAAgB,GAAGA,CAAA,MAAO;EAC9BK,IAAI,EAAEtB;AACR,CAAC,CAAC;AAEF,MAAMqB,WAAW,GAAGA,CAAA,KAAM;EACxB,OAAO;IACLC,IAAI,EAAEpB;EACR,CAAC;AACH,CAAC;AAED,MAAM6B,oBAAoB,GAAGC,OAAO,IAAI;EACtC,OAAO;IACLV,IAAI,EAAEnB,6BAA6B;IACnCoB,OAAO,EAAES;EACX,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAGA,CAACtB,OAAO,EAAEuB,QAAQ,KAAK;EACvD,OAAO;IACLZ,IAAI,EAAElB,wBAAwB;IAC9BmB,OAAO,EAAE;MAAEZ,OAAO;MAAEuB;IAAS;EAC/B,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -3,11 +3,11 @@ import { circleActions } from '../webapi';
|
|
|
3
3
|
import { getUrl } from '../webapi/helper';
|
|
4
4
|
import { authedFunction } from '../js';
|
|
5
5
|
import NavigationService from '../js/NavigationService';
|
|
6
|
-
import { PUBLIC_CIRCLES_LOAD_INITIALISE, CIRCLES_LOAD_INITIALISE, CIRCLE_INVITES_UPDATED, CIRCLE_INVITES_LOADED, CREATED_CIRCLE, CIRCLES_LOADED, UPDATE_CIRCLE_UNREAD, CLEAR_SINGLE_CIRCLE_UNREAD } from './types';
|
|
6
|
+
import { PUBLIC_CIRCLES_LOAD_INITIALISE, CIRCLES_LOAD_INITIALISE, CIRCLE_INVITES_UPDATED, CIRCLE_INVITES_LOADED, CREATED_CIRCLE, CIRCLES_LOADED, UPDATE_CIRCLE_UNREAD, CLEAR_SINGLE_CIRCLE_UNREAD, ARCHIVE_CIRCLE } from './types';
|
|
7
7
|
import { values } from '../values.config';
|
|
8
|
-
export const refreshGroups = () => {
|
|
8
|
+
export const refreshGroups = (includeArchived = false) => {
|
|
9
9
|
return async dispatch => {
|
|
10
|
-
const res = await circleActions.getGroups();
|
|
10
|
+
const res = await circleActions.getGroups(includeArchived);
|
|
11
11
|
dispatch({
|
|
12
12
|
type: CIRCLES_LOAD_INITIALISE,
|
|
13
13
|
payload: res.data.Items
|
|
@@ -209,7 +209,7 @@ export const deleteGroup = group => {
|
|
|
209
209
|
});
|
|
210
210
|
await authedFunction({
|
|
211
211
|
method: 'POST',
|
|
212
|
-
url:
|
|
212
|
+
url: getUrl(values.serviceKey, 'update/delete'),
|
|
213
213
|
data: {
|
|
214
214
|
circleId: group.Id
|
|
215
215
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_","circleActions","getUrl","authedFunction","NavigationService","PUBLIC_CIRCLES_LOAD_INITIALISE","CIRCLES_LOAD_INITIALISE","CIRCLE_INVITES_UPDATED","CIRCLE_INVITES_LOADED","CREATED_CIRCLE","CIRCLES_LOADED","UPDATE_CIRCLE_UNREAD","CLEAR_SINGLE_CIRCLE_UNREAD","values","refreshGroups","dispatch","res","getGroups","type","payload","data","Items","loadGroups","groups","updatePublicGroups","publicGroups","updateGroups","updateUnreadCounter","userId","isEmpty","counter","forEach","element","Deleted","isUndefined","Unread","clearGroupCounter","groupId","isPrivate","clearGroupUnread","createGroup","group","updateInvites","invites","getGroupInvites","userID","token","then","catch","err","console","log","handleGroupInvite","invite","action","tempUserId","tempEvent","clone","newInvite","cloneDeep","fetchingLatest","ads","findIndex","Invites","item","userToUse","splice","Audience","push","chat","key","Id","title","Title","unread","userKeys","userNames","userProfilePics","setTimeout","navigate","screenCircleChat","new","back","screenCircleChatList","method","url","serviceKey","inviteID","joinGroup","tempGroup","softLeaveGroup","newGroup","groupID","deleteGroup","Helper","circleId","editGroup","usersToAdd","usersToRemove","localGroup","filter","user","some","e"],"sources":["GroupActions.js"],"sourcesContent":["import _ from 'lodash';\nimport { circleActions } from '../webapi';\nimport { getUrl } from '../webapi/helper';\nimport { authedFunction } from '../js';\nimport NavigationService from '../js/NavigationService';\nimport {\n PUBLIC_CIRCLES_LOAD_INITIALISE,\n CIRCLES_LOAD_INITIALISE,\n CIRCLE_INVITES_UPDATED,\n CIRCLE_INVITES_LOADED,\n CREATED_CIRCLE,\n CIRCLES_LOADED,\n UPDATE_CIRCLE_UNREAD,\n CLEAR_SINGLE_CIRCLE_UNREAD,\n} from './types';\nimport { values } from '../values.config';\n\nexport const refreshGroups = () => {\n return async dispatch => {\n const res = await circleActions.getGroups();\n dispatch({\n type: CIRCLES_LOAD_INITIALISE,\n payload: res.data.Items,\n });\n };\n};\n\nexport const loadGroups = groups => {\n return dispatch => {\n dispatch({\n type: CIRCLES_LOADED,\n payload: groups,\n });\n };\n};\n\nexport const updatePublicGroups = publicGroups => {\n return async dispatch => {\n dispatch({\n type: PUBLIC_CIRCLES_LOAD_INITIALISE,\n payload: publicGroups,\n });\n };\n};\n\nexport const updateGroups = groups => {\n return async dispatch => {\n dispatch({\n type: CIRCLES_LOAD_INITIALISE,\n payload: groups,\n });\n };\n};\n\nexport const updateUnreadCounter = (groups, userId) => {\n return async dispatch => {\n if (!_.isEmpty(groups)) {\n let counter = 0;\n groups.forEach(element => {\n if (!element.Deleted && !_.isUndefined(element.Unread) && !_.isEmpty(element.Unread) && !_.isUndefined(element.Unread[userId])) {\n counter += element.Unread[userId];\n }\n });\n\n dispatch({\n type: UPDATE_CIRCLE_UNREAD,\n payload: counter,\n });\n }\n };\n};\n\nexport const clearGroupCounter = (groupId, userId, isPrivate) => {\n circleActions.clearGroupUnread(groupId, userId);\n return {\n type: CLEAR_SINGLE_CIRCLE_UNREAD,\n payload: { groupId, userId, isPrivate },\n };\n};\n\nexport const createGroup = group => {\n return dispatch => {\n dispatch({\n type: CREATED_CIRCLE,\n payload: group,\n });\n };\n};\n\nexport const updateInvites = invites => {\n return dispatch => {\n dispatch({\n type: CIRCLE_INVITES_LOADED,\n payload: invites,\n });\n };\n};\n\nexport const getGroupInvites = () => {\n return async dispatch => {\n circleActions\n .getGroupInvites(userID, token)\n .then(res => {\n dispatch({\n type: CIRCLE_INVITES_LOADED,\n payload: res.data.Items,\n });\n })\n .catch(err => {\n console.log('fetch circle invites FAIL');\n console.log(err);\n });\n };\n};\n\nexport const handleGroupInvite = (invite, action, tempUserId) => {\n const tempEvent = _.clone(invite);\n const newInvite = _.cloneDeep(invite);\n newInvite.Deleted = true;\n return async dispatch => {\n dispatch({\n type: CIRCLE_INVITES_UPDATED,\n payload: [newInvite],\n });\n if (action) {\n tempEvent.fetchingLatest = true;\n const ads = _.findIndex(tempEvent.Invites, item => {\n return item.userId === tempUserId;\n });\n const userToUse = tempEvent.Invites[ads];\n tempEvent.Invites.splice(ads, 1);\n tempEvent.Audience.push(userToUse);\n\n const chat = {\n key: invite.Id,\n title: invite.Title,\n unread: [],\n userKeys: [],\n userNames: [],\n userProfilePics: [],\n };\n dispatch({\n type: CIRCLES_LOADED,\n payload: [tempEvent],\n });\n setTimeout(() => {\n NavigationService.navigate(values.screenCircleChat, {\n chat,\n new: true,\n back: values.screenCircleChatList,\n });\n }, 100);\n }\n\n await authedFunction({\n method: 'post',\n url: getUrl(values.serviceKey, 'handleGroupInvite'),\n data: {\n inviteID: invite.Id,\n action,\n },\n })\n .then(res => {\n if (action) {\n dispatch({\n type: CIRCLES_LOADED,\n payload: [res.data.group],\n });\n }\n })\n .catch(err => {\n console.log('handle event invite fail', err);\n });\n };\n};\n\nexport const joinGroup = group => {\n const tempGroup = _.clone(group);\n return async dispatch => {\n tempGroup.fetchingLatest = true;\n\n const chat = {\n key: group.Id,\n title: group.Title,\n unread: [],\n userKeys: [],\n userNames: [],\n userProfilePics: [],\n };\n dispatch({\n type: CIRCLES_LOADED,\n payload: [tempGroup],\n });\n setTimeout(() => {\n NavigationService.navigate(values.screenCircleChat, {\n chat,\n new: true,\n back: values.screenCircleChatList,\n });\n }, 100);\n\n await circleActions\n .joinGroup(group.Id)\n .then(res => {\n dispatch({\n type: CIRCLES_LOADED,\n payload: [res.data.group],\n });\n })\n .catch(err => {\n console.log('handle join group fail', err);\n });\n };\n};\n\nexport const softLeaveGroup = group => {\n const newGroup = _.cloneDeep(group);\n newGroup.Deleted = true;\n return async dispatch => {\n dispatch({\n type: CIRCLES_LOADED,\n payload: [newGroup],\n });\n await authedFunction({\n method: 'post',\n url: getUrl(values.serviceKey, 'leaveGroup'),\n data: {\n groupID: group.Id,\n },\n });\n };\n};\n\nexport const deleteGroup = group => {\n group.Deleted = true;\n return async dispatch => {\n dispatch({\n type: CIRCLES_LOADED,\n payload: [group],\n });\n\n await authedFunction({\n method: 'POST',\n url: Helper.getUrl(values.serviceKey, 'update/delete'),\n data: {\n circleId: group.Id,\n },\n });\n };\n};\n\nexport const editGroup = (group, usersToAdd, usersToRemove) => {\n return async dispatch => {\n // push to local store\n const localGroup = { ...group };\n localGroup.Audience = _.filter([...localGroup.Audience, ...usersToAdd], user => {\n return !_.some(usersToRemove, userId => {\n return user.userId === userId;\n });\n });\n dispatch({\n type: CIRCLES_LOADED,\n payload: [localGroup],\n });\n\n try {\n await authedFunction({\n method: 'post',\n url: getUrl(values.serviceKey, 'editUsersGroup'),\n data: {\n group,\n usersToAdd,\n usersToRemove,\n },\n });\n } catch (e) {}\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_","circleActions","getUrl","authedFunction","NavigationService","PUBLIC_CIRCLES_LOAD_INITIALISE","CIRCLES_LOAD_INITIALISE","CIRCLE_INVITES_UPDATED","CIRCLE_INVITES_LOADED","CREATED_CIRCLE","CIRCLES_LOADED","UPDATE_CIRCLE_UNREAD","CLEAR_SINGLE_CIRCLE_UNREAD","ARCHIVE_CIRCLE","values","refreshGroups","includeArchived","dispatch","res","getGroups","type","payload","data","Items","loadGroups","groups","updatePublicGroups","publicGroups","updateGroups","updateUnreadCounter","userId","isEmpty","counter","forEach","element","Deleted","isUndefined","Unread","clearGroupCounter","groupId","isPrivate","clearGroupUnread","createGroup","group","updateInvites","invites","getGroupInvites","userID","token","then","catch","err","console","log","handleGroupInvite","invite","action","tempUserId","tempEvent","clone","newInvite","cloneDeep","fetchingLatest","ads","findIndex","Invites","item","userToUse","splice","Audience","push","chat","key","Id","title","Title","unread","userKeys","userNames","userProfilePics","setTimeout","navigate","screenCircleChat","new","back","screenCircleChatList","method","url","serviceKey","inviteID","joinGroup","tempGroup","softLeaveGroup","newGroup","groupID","deleteGroup","circleId","editGroup","usersToAdd","usersToRemove","localGroup","filter","user","some","e"],"sources":["GroupActions.js"],"sourcesContent":["import _ from 'lodash';\nimport { circleActions } from '../webapi';\nimport { getUrl } from '../webapi/helper';\nimport { authedFunction } from '../js';\nimport NavigationService from '../js/NavigationService';\nimport {\n PUBLIC_CIRCLES_LOAD_INITIALISE,\n CIRCLES_LOAD_INITIALISE,\n CIRCLE_INVITES_UPDATED,\n CIRCLE_INVITES_LOADED,\n CREATED_CIRCLE,\n CIRCLES_LOADED,\n UPDATE_CIRCLE_UNREAD,\n CLEAR_SINGLE_CIRCLE_UNREAD,\n ARCHIVE_CIRCLE,\n} from './types';\nimport { values } from '../values.config';\n\nexport const refreshGroups = (includeArchived = false) => {\n return async dispatch => {\n const res = await circleActions.getGroups(includeArchived);\n dispatch({\n type: CIRCLES_LOAD_INITIALISE,\n payload: res.data.Items,\n });\n };\n};\n\nexport const loadGroups = groups => {\n return dispatch => {\n dispatch({\n type: CIRCLES_LOADED,\n payload: groups,\n });\n };\n};\n\nexport const updatePublicGroups = publicGroups => {\n return async dispatch => {\n dispatch({\n type: PUBLIC_CIRCLES_LOAD_INITIALISE,\n payload: publicGroups,\n });\n };\n};\n\nexport const updateGroups = groups => {\n return async dispatch => {\n dispatch({\n type: CIRCLES_LOAD_INITIALISE,\n payload: groups,\n });\n };\n};\n\nexport const updateUnreadCounter = (groups, userId) => {\n return async dispatch => {\n if (!_.isEmpty(groups)) {\n let counter = 0;\n groups.forEach(element => {\n if (!element.Deleted && !_.isUndefined(element.Unread) && !_.isEmpty(element.Unread) && !_.isUndefined(element.Unread[userId])) {\n counter += element.Unread[userId];\n }\n });\n\n dispatch({\n type: UPDATE_CIRCLE_UNREAD,\n payload: counter,\n });\n }\n };\n};\n\nexport const clearGroupCounter = (groupId, userId, isPrivate) => {\n circleActions.clearGroupUnread(groupId, userId);\n return {\n type: CLEAR_SINGLE_CIRCLE_UNREAD,\n payload: { groupId, userId, isPrivate },\n };\n};\n\nexport const createGroup = group => {\n return dispatch => {\n dispatch({\n type: CREATED_CIRCLE,\n payload: group,\n });\n };\n};\n\nexport const updateInvites = invites => {\n return dispatch => {\n dispatch({\n type: CIRCLE_INVITES_LOADED,\n payload: invites,\n });\n };\n};\n\nexport const getGroupInvites = () => {\n return async dispatch => {\n circleActions\n .getGroupInvites(userID, token)\n .then(res => {\n dispatch({\n type: CIRCLE_INVITES_LOADED,\n payload: res.data.Items,\n });\n })\n .catch(err => {\n console.log('fetch circle invites FAIL');\n console.log(err);\n });\n };\n};\n\nexport const handleGroupInvite = (invite, action, tempUserId) => {\n const tempEvent = _.clone(invite);\n const newInvite = _.cloneDeep(invite);\n newInvite.Deleted = true;\n return async dispatch => {\n dispatch({\n type: CIRCLE_INVITES_UPDATED,\n payload: [newInvite],\n });\n if (action) {\n tempEvent.fetchingLatest = true;\n const ads = _.findIndex(tempEvent.Invites, item => {\n return item.userId === tempUserId;\n });\n const userToUse = tempEvent.Invites[ads];\n tempEvent.Invites.splice(ads, 1);\n tempEvent.Audience.push(userToUse);\n\n const chat = {\n key: invite.Id,\n title: invite.Title,\n unread: [],\n userKeys: [],\n userNames: [],\n userProfilePics: [],\n };\n dispatch({\n type: CIRCLES_LOADED,\n payload: [tempEvent],\n });\n setTimeout(() => {\n NavigationService.navigate(values.screenCircleChat, {\n chat,\n new: true,\n back: values.screenCircleChatList,\n });\n }, 100);\n }\n\n await authedFunction({\n method: 'post',\n url: getUrl(values.serviceKey, 'handleGroupInvite'),\n data: {\n inviteID: invite.Id,\n action,\n },\n })\n .then(res => {\n if (action) {\n dispatch({\n type: CIRCLES_LOADED,\n payload: [res.data.group],\n });\n }\n })\n .catch(err => {\n console.log('handle event invite fail', err);\n });\n };\n};\n\nexport const joinGroup = group => {\n const tempGroup = _.clone(group);\n return async dispatch => {\n tempGroup.fetchingLatest = true;\n\n const chat = {\n key: group.Id,\n title: group.Title,\n unread: [],\n userKeys: [],\n userNames: [],\n userProfilePics: [],\n };\n dispatch({\n type: CIRCLES_LOADED,\n payload: [tempGroup],\n });\n setTimeout(() => {\n NavigationService.navigate(values.screenCircleChat, {\n chat,\n new: true,\n back: values.screenCircleChatList,\n });\n }, 100);\n\n await circleActions\n .joinGroup(group.Id)\n .then(res => {\n dispatch({\n type: CIRCLES_LOADED,\n payload: [res.data.group],\n });\n })\n .catch(err => {\n console.log('handle join group fail', err);\n });\n };\n};\n\nexport const softLeaveGroup = group => {\n const newGroup = _.cloneDeep(group);\n newGroup.Deleted = true;\n return async dispatch => {\n dispatch({\n type: CIRCLES_LOADED,\n payload: [newGroup],\n });\n await authedFunction({\n method: 'post',\n url: getUrl(values.serviceKey, 'leaveGroup'),\n data: {\n groupID: group.Id,\n },\n });\n };\n};\n\nexport const deleteGroup = group => {\n group.Deleted = true;\n return async dispatch => {\n dispatch({\n type: CIRCLES_LOADED,\n payload: [group],\n });\n\n await authedFunction({\n method: 'POST',\n url: getUrl(values.serviceKey, 'update/delete'),\n data: {\n circleId: group.Id,\n },\n });\n };\n};\n\nexport const editGroup = (group, usersToAdd, usersToRemove) => {\n return async dispatch => {\n // push to local store\n const localGroup = { ...group };\n localGroup.Audience = _.filter([...localGroup.Audience, ...usersToAdd], user => {\n return !_.some(usersToRemove, userId => {\n return user.userId === userId;\n });\n });\n dispatch({\n type: CIRCLES_LOADED,\n payload: [localGroup],\n });\n\n try {\n await authedFunction({\n method: 'post',\n url: getUrl(values.serviceKey, 'editUsersGroup'),\n data: {\n group,\n usersToAdd,\n usersToRemove,\n },\n });\n } catch (e) {}\n };\n};\n"],"mappings":"AAAA,OAAOA,CAAC,MAAM,QAAQ;AACtB,SAASC,aAAa,QAAQ,WAAW;AACzC,SAASC,MAAM,QAAQ,kBAAkB;AACzC,SAASC,cAAc,QAAQ,OAAO;AACtC,OAAOC,iBAAiB,MAAM,yBAAyB;AACvD,SACEC,8BAA8B,EAC9BC,uBAAuB,EACvBC,sBAAsB,EACtBC,qBAAqB,EACrBC,cAAc,EACdC,cAAc,EACdC,oBAAoB,EACpBC,0BAA0B,EAC1BC,cAAc,QACT,SAAS;AAChB,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,OAAO,MAAMC,aAAa,GAAGA,CAACC,eAAe,GAAG,KAAK,KAAK;EACxD,OAAO,MAAMC,QAAQ,IAAI;IACvB,MAAMC,GAAG,GAAG,MAAMjB,aAAa,CAACkB,SAAS,CAACH,eAAe,CAAC;IAC1DC,QAAQ,CAAC;MACPG,IAAI,EAAEd,uBAAuB;MAC7Be,OAAO,EAAEH,GAAG,CAACI,IAAI,CAACC;IACpB,CAAC,CAAC;EACJ,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,UAAU,GAAGC,MAAM,IAAI;EAClC,OAAOR,QAAQ,IAAI;IACjBA,QAAQ,CAAC;MACPG,IAAI,EAAEV,cAAc;MACpBW,OAAO,EAAEI;IACX,CAAC,CAAC;EACJ,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAGC,YAAY,IAAI;EAChD,OAAO,MAAMV,QAAQ,IAAI;IACvBA,QAAQ,CAAC;MACPG,IAAI,EAAEf,8BAA8B;MACpCgB,OAAO,EAAEM;IACX,CAAC,CAAC;EACJ,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,YAAY,GAAGH,MAAM,IAAI;EACpC,OAAO,MAAMR,QAAQ,IAAI;IACvBA,QAAQ,CAAC;MACPG,IAAI,EAAEd,uBAAuB;MAC7Be,OAAO,EAAEI;IACX,CAAC,CAAC;EACJ,CAAC;AACH,CAAC;AAED,OAAO,MAAMI,mBAAmB,GAAGA,CAACJ,MAAM,EAAEK,MAAM,KAAK;EACrD,OAAO,MAAMb,QAAQ,IAAI;IACvB,IAAI,CAACjB,CAAC,CAAC+B,OAAO,CAACN,MAAM,CAAC,EAAE;MACtB,IAAIO,OAAO,GAAG,CAAC;MACfP,MAAM,CAACQ,OAAO,CAACC,OAAO,IAAI;QACxB,IAAI,CAACA,OAAO,CAACC,OAAO,IAAI,CAACnC,CAAC,CAACoC,WAAW,CAACF,OAAO,CAACG,MAAM,CAAC,IAAI,CAACrC,CAAC,CAAC+B,OAAO,CAACG,OAAO,CAACG,MAAM,CAAC,IAAI,CAACrC,CAAC,CAACoC,WAAW,CAACF,OAAO,CAACG,MAAM,CAACP,MAAM,CAAC,CAAC,EAAE;UAC9HE,OAAO,IAAIE,OAAO,CAACG,MAAM,CAACP,MAAM,CAAC;QACnC;MACF,CAAC,CAAC;MAEFb,QAAQ,CAAC;QACPG,IAAI,EAAET,oBAAoB;QAC1BU,OAAO,EAAEW;MACX,CAAC,CAAC;IACJ;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMM,iBAAiB,GAAGA,CAACC,OAAO,EAAET,MAAM,EAAEU,SAAS,KAAK;EAC/DvC,aAAa,CAACwC,gBAAgB,CAACF,OAAO,EAAET,MAAM,CAAC;EAC/C,OAAO;IACLV,IAAI,EAAER,0BAA0B;IAChCS,OAAO,EAAE;MAAEkB,OAAO;MAAET,MAAM;MAAEU;IAAU;EACxC,CAAC;AACH,CAAC;AAED,OAAO,MAAME,WAAW,GAAGC,KAAK,IAAI;EAClC,OAAO1B,QAAQ,IAAI;IACjBA,QAAQ,CAAC;MACPG,IAAI,EAAEX,cAAc;MACpBY,OAAO,EAAEsB;IACX,CAAC,CAAC;EACJ,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,aAAa,GAAGC,OAAO,IAAI;EACtC,OAAO5B,QAAQ,IAAI;IACjBA,QAAQ,CAAC;MACPG,IAAI,EAAEZ,qBAAqB;MAC3Ba,OAAO,EAAEwB;IACX,CAAC,CAAC;EACJ,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAM;EACnC,OAAO,MAAM7B,QAAQ,IAAI;IACvBhB,aAAa,CACV6C,eAAe,CAACC,MAAM,EAAEC,KAAK,CAAC,CAC9BC,IAAI,CAAC/B,GAAG,IAAI;MACXD,QAAQ,CAAC;QACPG,IAAI,EAAEZ,qBAAqB;QAC3Ba,OAAO,EAAEH,GAAG,CAACI,IAAI,CAACC;MACpB,CAAC,CAAC;IACJ,CAAC,CAAC,CACD2B,KAAK,CAACC,GAAG,IAAI;MACZC,OAAO,CAACC,GAAG,CAAC,2BAA2B,CAAC;MACxCD,OAAO,CAACC,GAAG,CAACF,GAAG,CAAC;IAClB,CAAC,CAAC;EACN,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,iBAAiB,GAAGA,CAACC,MAAM,EAAEC,MAAM,EAAEC,UAAU,KAAK;EAC/D,MAAMC,SAAS,GAAG1D,CAAC,CAAC2D,KAAK,CAACJ,MAAM,CAAC;EACjC,MAAMK,SAAS,GAAG5D,CAAC,CAAC6D,SAAS,CAACN,MAAM,CAAC;EACrCK,SAAS,CAACzB,OAAO,GAAG,IAAI;EACxB,OAAO,MAAMlB,QAAQ,IAAI;IACvBA,QAAQ,CAAC;MACPG,IAAI,EAAEb,sBAAsB;MAC5Bc,OAAO,EAAE,CAACuC,SAAS;IACrB,CAAC,CAAC;IACF,IAAIJ,MAAM,EAAE;MACVE,SAAS,CAACI,cAAc,GAAG,IAAI;MAC/B,MAAMC,GAAG,GAAG/D,CAAC,CAACgE,SAAS,CAACN,SAAS,CAACO,OAAO,EAAEC,IAAI,IAAI;QACjD,OAAOA,IAAI,CAACpC,MAAM,KAAK2B,UAAU;MACnC,CAAC,CAAC;MACF,MAAMU,SAAS,GAAGT,SAAS,CAACO,OAAO,CAACF,GAAG,CAAC;MACxCL,SAAS,CAACO,OAAO,CAACG,MAAM,CAACL,GAAG,EAAE,CAAC,CAAC;MAChCL,SAAS,CAACW,QAAQ,CAACC,IAAI,CAACH,SAAS,CAAC;MAElC,MAAMI,IAAI,GAAG;QACXC,GAAG,EAAEjB,MAAM,CAACkB,EAAE;QACdC,KAAK,EAAEnB,MAAM,CAACoB,KAAK;QACnBC,MAAM,EAAE,EAAE;QACVC,QAAQ,EAAE,EAAE;QACZC,SAAS,EAAE,EAAE;QACbC,eAAe,EAAE;MACnB,CAAC;MACD9D,QAAQ,CAAC;QACPG,IAAI,EAAEV,cAAc;QACpBW,OAAO,EAAE,CAACqC,SAAS;MACrB,CAAC,CAAC;MACFsB,UAAU,CAAC,MAAM;QACf5E,iBAAiB,CAAC6E,QAAQ,CAACnE,MAAM,CAACoE,gBAAgB,EAAE;UAClDX,IAAI;UACJY,GAAG,EAAE,IAAI;UACTC,IAAI,EAAEtE,MAAM,CAACuE;QACf,CAAC,CAAC;MACJ,CAAC,EAAE,GAAG,CAAC;IACT;IAEA,MAAMlF,cAAc,CAAC;MACnBmF,MAAM,EAAE,MAAM;MACdC,GAAG,EAAErF,MAAM,CAACY,MAAM,CAAC0E,UAAU,EAAE,mBAAmB,CAAC;MACnDlE,IAAI,EAAE;QACJmE,QAAQ,EAAElC,MAAM,CAACkB,EAAE;QACnBjB;MACF;IACF,CAAC,CAAC,CACCP,IAAI,CAAC/B,GAAG,IAAI;MACX,IAAIsC,MAAM,EAAE;QACVvC,QAAQ,CAAC;UACPG,IAAI,EAAEV,cAAc;UACpBW,OAAO,EAAE,CAACH,GAAG,CAACI,IAAI,CAACqB,KAAK;QAC1B,CAAC,CAAC;MACJ;IACF,CAAC,CAAC,CACDO,KAAK,CAACC,GAAG,IAAI;MACZC,OAAO,CAACC,GAAG,CAAC,0BAA0B,EAAEF,GAAG,CAAC;IAC9C,CAAC,CAAC;EACN,CAAC;AACH,CAAC;AAED,OAAO,MAAMuC,SAAS,GAAG/C,KAAK,IAAI;EAChC,MAAMgD,SAAS,GAAG3F,CAAC,CAAC2D,KAAK,CAAChB,KAAK,CAAC;EAChC,OAAO,MAAM1B,QAAQ,IAAI;IACvB0E,SAAS,CAAC7B,cAAc,GAAG,IAAI;IAE/B,MAAMS,IAAI,GAAG;MACXC,GAAG,EAAE7B,KAAK,CAAC8B,EAAE;MACbC,KAAK,EAAE/B,KAAK,CAACgC,KAAK;MAClBC,MAAM,EAAE,EAAE;MACVC,QAAQ,EAAE,EAAE;MACZC,SAAS,EAAE,EAAE;MACbC,eAAe,EAAE;IACnB,CAAC;IACD9D,QAAQ,CAAC;MACPG,IAAI,EAAEV,cAAc;MACpBW,OAAO,EAAE,CAACsE,SAAS;IACrB,CAAC,CAAC;IACFX,UAAU,CAAC,MAAM;MACf5E,iBAAiB,CAAC6E,QAAQ,CAACnE,MAAM,CAACoE,gBAAgB,EAAE;QAClDX,IAAI;QACJY,GAAG,EAAE,IAAI;QACTC,IAAI,EAAEtE,MAAM,CAACuE;MACf,CAAC,CAAC;IACJ,CAAC,EAAE,GAAG,CAAC;IAEP,MAAMpF,aAAa,CAChByF,SAAS,CAAC/C,KAAK,CAAC8B,EAAE,CAAC,CACnBxB,IAAI,CAAC/B,GAAG,IAAI;MACXD,QAAQ,CAAC;QACPG,IAAI,EAAEV,cAAc;QACpBW,OAAO,EAAE,CAACH,GAAG,CAACI,IAAI,CAACqB,KAAK;MAC1B,CAAC,CAAC;IACJ,CAAC,CAAC,CACDO,KAAK,CAACC,GAAG,IAAI;MACZC,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAEF,GAAG,CAAC;IAC5C,CAAC,CAAC;EACN,CAAC;AACH,CAAC;AAED,OAAO,MAAMyC,cAAc,GAAGjD,KAAK,IAAI;EACrC,MAAMkD,QAAQ,GAAG7F,CAAC,CAAC6D,SAAS,CAAClB,KAAK,CAAC;EACnCkD,QAAQ,CAAC1D,OAAO,GAAG,IAAI;EACvB,OAAO,MAAMlB,QAAQ,IAAI;IACvBA,QAAQ,CAAC;MACPG,IAAI,EAAEV,cAAc;MACpBW,OAAO,EAAE,CAACwE,QAAQ;IACpB,CAAC,CAAC;IACF,MAAM1F,cAAc,CAAC;MACnBmF,MAAM,EAAE,MAAM;MACdC,GAAG,EAAErF,MAAM,CAACY,MAAM,CAAC0E,UAAU,EAAE,YAAY,CAAC;MAC5ClE,IAAI,EAAE;QACJwE,OAAO,EAAEnD,KAAK,CAAC8B;MACjB;IACF,CAAC,CAAC;EACJ,CAAC;AACH,CAAC;AAED,OAAO,MAAMsB,WAAW,GAAGpD,KAAK,IAAI;EAClCA,KAAK,CAACR,OAAO,GAAG,IAAI;EACpB,OAAO,MAAMlB,QAAQ,IAAI;IACvBA,QAAQ,CAAC;MACPG,IAAI,EAAEV,cAAc;MACpBW,OAAO,EAAE,CAACsB,KAAK;IACjB,CAAC,CAAC;IAEF,MAAMxC,cAAc,CAAC;MACnBmF,MAAM,EAAE,MAAM;MACdC,GAAG,EAAErF,MAAM,CAACY,MAAM,CAAC0E,UAAU,EAAE,eAAe,CAAC;MAC/ClE,IAAI,EAAE;QACJ0E,QAAQ,EAAErD,KAAK,CAAC8B;MAClB;IACF,CAAC,CAAC;EACJ,CAAC;AACH,CAAC;AAED,OAAO,MAAMwB,SAAS,GAAGA,CAACtD,KAAK,EAAEuD,UAAU,EAAEC,aAAa,KAAK;EAC7D,OAAO,MAAMlF,QAAQ,IAAI;IACvB;IACA,MAAMmF,UAAU,GAAG;MAAE,GAAGzD;IAAM,CAAC;IAC/ByD,UAAU,CAAC/B,QAAQ,GAAGrE,CAAC,CAACqG,MAAM,CAAC,CAAC,GAAGD,UAAU,CAAC/B,QAAQ,EAAE,GAAG6B,UAAU,CAAC,EAAEI,IAAI,IAAI;MAC9E,OAAO,CAACtG,CAAC,CAACuG,IAAI,CAACJ,aAAa,EAAErE,MAAM,IAAI;QACtC,OAAOwE,IAAI,CAACxE,MAAM,KAAKA,MAAM;MAC/B,CAAC,CAAC;IACJ,CAAC,CAAC;IACFb,QAAQ,CAAC;MACPG,IAAI,EAAEV,cAAc;MACpBW,OAAO,EAAE,CAAC+E,UAAU;IACtB,CAAC,CAAC;IAEF,IAAI;MACF,MAAMjG,cAAc,CAAC;QACnBmF,MAAM,EAAE,MAAM;QACdC,GAAG,EAAErF,MAAM,CAACY,MAAM,CAAC0E,UAAU,EAAE,gBAAgB,CAAC;QAChDlE,IAAI,EAAE;UACJqB,KAAK;UACLuD,UAAU;UACVC;QACF;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOK,CAAC,EAAE,CAAC;EACf,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Actions","getFollowers","addFollower","selectEventTime","residentsLoaded","linkedUsersLoaded","linkedToUsersLoaded","updateNavRead"],"sources":["index.js"],"sourcesContent":["import { Actions } from '../core.config';\n\nexport const getFollowers = Actions.getFollowers;\nexport const addFollower = Actions.addFollower;\nexport const selectEventTime = Actions.selectEventTime;\nexport const residentsLoaded = Actions.residentsLoaded;\nexport const linkedUsersLoaded = Actions.linkedToUsersLoaded;\nexport const linkedToUsersLoaded = Actions.linkedToUsersLoaded;\nexport const updateNavRead = Actions.updateNavRead;\n\n// export * from './AlertActions';\n// export * from './AreaActions';\n// export * from './AuthActions';\n// export * from './ConnectionActions';\n// export * from './UserActions';\n// export * from './EventActions';\n// export * from './FeedbackActions';\n// export * from './PlaceActions';\n// export * from './ReminderActions';\n// export * from './TakeoverActions';\n// export * from './PopularEventsActions';\n// export * from './NavigationActions';\n// export * from './PersonalEventActions';\n// export * from './UserSettingsActions';\nexport * from './ChatActions';\n// export * from './NotificationActions';\n// export * from './ProfileActions';\n// export * from './ContactActions';\n// export * from './EventContactActions';\n// export * from './FollowerActions';\n// export * from './InfoActions';\nexport * from './GroupActions';\n// export * from './GeneralActions';\n// export * from './ResidentActions';\n// export * from './ServiceActions';\n// export * from './OfferActions';\n// export * from './SessionActions';\n// export * from './PaymentActions';\n// export * from './JobActions';\n// export * from './NewsActions';\n// export * from './MediaActions';\n// export * from './FacilityActions';\n// export * from './DeviceActions';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,gBAAgB;AAExC,OAAO,MAAMC,YAAY,GAAGD,OAAO,CAACC,YAAY;AAChD,OAAO,MAAMC,WAAW,GAAGF,OAAO,CAACE,WAAW;AAC9C,OAAO,MAAMC,eAAe,GAAGH,OAAO,CAACG,eAAe;AACtD,OAAO,MAAMC,eAAe,GAAGJ,OAAO,CAACI,eAAe;AACtD,OAAO,MAAMC,iBAAiB,GAAGL,OAAO,CAACM,mBAAmB;AAC5D,OAAO,MAAMA,mBAAmB,GAAGN,OAAO,CAACM,mBAAmB;AAC9D,OAAO,MAAMC,aAAa,GAAGP,OAAO,CAACO,aAAa;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
|
1
|
+
{"version":3,"names":["Actions","getFollowers","addFollower","selectEventTime","residentsLoaded","linkedUsersLoaded","linkedToUsersLoaded","updateNavRead"],"sources":["index.js"],"sourcesContent":["import { Actions } from '../core.config';\n\nexport const getFollowers = Actions.getFollowers;\nexport const addFollower = Actions.addFollower;\nexport const selectEventTime = Actions.selectEventTime;\nexport const residentsLoaded = Actions.residentsLoaded;\nexport const linkedUsersLoaded = Actions.linkedToUsersLoaded;\nexport const linkedToUsersLoaded = Actions.linkedToUsersLoaded;\nexport const updateNavRead = Actions.updateNavRead;\n\n// export * from './AlertActions';\n// export * from './AreaActions';\n// export * from './AuthActions';\n// export * from './ConnectionActions';\n// export * from './UserActions';\n// export * from './EventActions';\n// export * from './FeedbackActions';\n// export * from './PlaceActions';\n// export * from './ReminderActions';\n// export * from './TakeoverActions';\n// export * from './PopularEventsActions';\n// export * from './NavigationActions';\n// export * from './PersonalEventActions';\n// export * from './UserSettingsActions';\nexport * from './ChatActions';\n// export * from './NotificationActions';\n// export * from './ProfileActions';\n// export * from './ContactActions';\n// export * from './EventContactActions';\n// export * from './FollowerActions';\n// export * from './InfoActions';\nexport * from './GroupActions';\n// export * from './GeneralActions';\n// export * from './ResidentActions';\n// export * from './ServiceActions';\n// export * from './OfferActions';\n// export * from './SessionActions';\n// export * from './PaymentActions';\n// export * from './JobActions';\n// export * from './NewsActions';\n// export * from './MediaActions';\n// export * from './FacilityActions';\n// export * from './DeviceActions';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,gBAAgB;AAExC,OAAO,MAAMC,YAAY,GAAGD,OAAO,CAACC,YAAY;AAChD,OAAO,MAAMC,WAAW,GAAGF,OAAO,CAACE,WAAW;AAC9C,OAAO,MAAMC,eAAe,GAAGH,OAAO,CAACG,eAAe;AACtD,OAAO,MAAMC,eAAe,GAAGJ,OAAO,CAACI,eAAe;AACtD,OAAO,MAAMC,iBAAiB,GAAGL,OAAO,CAACM,mBAAmB;AAC5D,OAAO,MAAMA,mBAAmB,GAAGN,OAAO,CAACM,mBAAmB;AAC9D,OAAO,MAAMC,aAAa,GAAGP,OAAO,CAACO,aAAa;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -25,4 +25,7 @@ export const UPDATE_CIRCLE_UNREAD = `UPDATE_${values.actionCircleKey}_UNREAD`;
|
|
|
25
25
|
export const CLEAR_SINGLE_CIRCLE_UNREAD = `CLEAR_SINGLE_${values.actionCircleKey}_UNREAD`;
|
|
26
26
|
export const CIRCLE_INVITES_LOADED = `${values.actionCircleKey}_INVITES_LOADED`;
|
|
27
27
|
export const CIRCLE_INVITES_UPDATED = `${values.actionCircleKey}_INVITES_UPDATED`;
|
|
28
|
+
|
|
29
|
+
// Archive Actions
|
|
30
|
+
export const ARCHIVE_CIRCLE = `ARCHIVE_${values.actionCircleKey}`;
|
|
28
31
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["values","ActionTypes","LOGOUT","CHANGE_ROLE","SOFT_ADD_CIRCLE_CHAT","actionCircleKey","RECEIVED_CIRCLE_MESSAGES","START_FETCHING_CIRCLE_CHATS","RECEIVED_CIRCLE_CHATS","CREATED_CIRCLE_CHAT","DELETED_CIRCLE_CHAT","DISCONNECTED_CIRCLE_CHAT","DISCONNECTED_CIRCLE_CHAT_LIST","BLOCKED_CIRCLE_USER","RECEIVED_BLOCKED_CIRCLE_USERS","PUBLIC_CIRCLES_LOAD_INITIALISE","CIRCLES_LOAD_INITIALISE","CIRCLES_LOADED","CREATED_CIRCLE","CLEAR_CIRCLES","UPDATE_CIRCLE_UNREAD","CLEAR_SINGLE_CIRCLE_UNREAD","CIRCLE_INVITES_LOADED","CIRCLE_INVITES_UPDATED"],"sources":["types.js"],"sourcesContent":["import { values } from '../values.config';\nimport { ActionTypes } from '../core.config';\n\nexport const LOGOUT = ActionTypes.LOGOUT;\nexport const CHANGE_ROLE = ActionTypes.CHANGE_ROLE;\n\n// Chat Actions\nexport const SOFT_ADD_CIRCLE_CHAT = `SOFT_ADD_${values.actionCircleKey}_CHAT`;\nexport const RECEIVED_CIRCLE_MESSAGES = `RECEIVED_${values.actionCircleKey}_MESSAGES`;\nexport const START_FETCHING_CIRCLE_CHATS = `START_FETCHING_${values.actionCircleKey}_CHATS`;\nexport const RECEIVED_CIRCLE_CHATS = `RECEIVED_${values.actionCircleKey}_CHATS`;\nexport const CREATED_CIRCLE_CHAT = `CREATED_${values.actionCircleKey}_CHAT`;\nexport const DELETED_CIRCLE_CHAT = `DELETED_${values.actionCircleKey}_CHAT`;\nexport const DISCONNECTED_CIRCLE_CHAT = `DISCONNECTED_${values.actionCircleKey}_CHAT`;\nexport const DISCONNECTED_CIRCLE_CHAT_LIST = `DISCONNECTED_${values.actionCircleKey}_CHAT_LIST`;\nexport const BLOCKED_CIRCLE_USER = `BLOCKED_${values.actionCircleKey}_USER`;\nexport const RECEIVED_BLOCKED_CIRCLE_USERS = `RECEIVED_BLOCKED_${values.actionCircleKey}_USERS`;\n\n// Circle Actions\nexport const PUBLIC_CIRCLES_LOAD_INITIALISE = `PUBLIC_${values.actionCircleKey}S_LOAD_INITIALISE`;\nexport const CIRCLES_LOAD_INITIALISE = `${values.actionCircleKey}S_LOAD_INITIALISE`;\nexport const CIRCLES_LOADED = `${values.actionCircleKey}S_LOADED`;\nexport const CREATED_CIRCLE = `CREATED_${values.actionCircleKey}`;\nexport const CLEAR_CIRCLES = `CLEAR_${values.actionCircleKey}S`;\nexport const UPDATE_CIRCLE_UNREAD = `UPDATE_${values.actionCircleKey}_UNREAD`;\nexport const CLEAR_SINGLE_CIRCLE_UNREAD = `CLEAR_SINGLE_${values.actionCircleKey}_UNREAD`;\n\nexport const CIRCLE_INVITES_LOADED = `${values.actionCircleKey}_INVITES_LOADED`;\nexport const CIRCLE_INVITES_UPDATED = `${values.actionCircleKey}_INVITES_UPDATED`;\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,kBAAkB;AACzC,SAASC,WAAW,QAAQ,gBAAgB;AAE5C,OAAO,MAAMC,MAAM,GAAGD,WAAW,CAACC,MAAM;AACxC,OAAO,MAAMC,WAAW,GAAGF,WAAW,CAACE,WAAW;;AAElD;AACA,OAAO,MAAMC,oBAAoB,
|
|
1
|
+
{"version":3,"names":["values","ActionTypes","LOGOUT","CHANGE_ROLE","SOFT_ADD_CIRCLE_CHAT","actionCircleKey","RECEIVED_CIRCLE_MESSAGES","START_FETCHING_CIRCLE_CHATS","RECEIVED_CIRCLE_CHATS","CREATED_CIRCLE_CHAT","DELETED_CIRCLE_CHAT","DISCONNECTED_CIRCLE_CHAT","DISCONNECTED_CIRCLE_CHAT_LIST","BLOCKED_CIRCLE_USER","RECEIVED_BLOCKED_CIRCLE_USERS","PUBLIC_CIRCLES_LOAD_INITIALISE","CIRCLES_LOAD_INITIALISE","CIRCLES_LOADED","CREATED_CIRCLE","CLEAR_CIRCLES","UPDATE_CIRCLE_UNREAD","CLEAR_SINGLE_CIRCLE_UNREAD","CIRCLE_INVITES_LOADED","CIRCLE_INVITES_UPDATED","ARCHIVE_CIRCLE"],"sources":["types.js"],"sourcesContent":["import { values } from '../values.config';\nimport { ActionTypes } from '../core.config';\n\nexport const LOGOUT = ActionTypes.LOGOUT;\nexport const CHANGE_ROLE = ActionTypes.CHANGE_ROLE;\n\n// Chat Actions\nexport const SOFT_ADD_CIRCLE_CHAT = `SOFT_ADD_${values.actionCircleKey}_CHAT`;\nexport const RECEIVED_CIRCLE_MESSAGES = `RECEIVED_${values.actionCircleKey}_MESSAGES`;\nexport const START_FETCHING_CIRCLE_CHATS = `START_FETCHING_${values.actionCircleKey}_CHATS`;\nexport const RECEIVED_CIRCLE_CHATS = `RECEIVED_${values.actionCircleKey}_CHATS`;\nexport const CREATED_CIRCLE_CHAT = `CREATED_${values.actionCircleKey}_CHAT`;\nexport const DELETED_CIRCLE_CHAT = `DELETED_${values.actionCircleKey}_CHAT`;\nexport const DISCONNECTED_CIRCLE_CHAT = `DISCONNECTED_${values.actionCircleKey}_CHAT`;\nexport const DISCONNECTED_CIRCLE_CHAT_LIST = `DISCONNECTED_${values.actionCircleKey}_CHAT_LIST`;\nexport const BLOCKED_CIRCLE_USER = `BLOCKED_${values.actionCircleKey}_USER`;\nexport const RECEIVED_BLOCKED_CIRCLE_USERS = `RECEIVED_BLOCKED_${values.actionCircleKey}_USERS`;\n\n// Circle Actions\nexport const PUBLIC_CIRCLES_LOAD_INITIALISE = `PUBLIC_${values.actionCircleKey}S_LOAD_INITIALISE`;\nexport const CIRCLES_LOAD_INITIALISE = `${values.actionCircleKey}S_LOAD_INITIALISE`;\nexport const CIRCLES_LOADED = `${values.actionCircleKey}S_LOADED`;\nexport const CREATED_CIRCLE = `CREATED_${values.actionCircleKey}`;\nexport const CLEAR_CIRCLES = `CLEAR_${values.actionCircleKey}S`;\nexport const UPDATE_CIRCLE_UNREAD = `UPDATE_${values.actionCircleKey}_UNREAD`;\nexport const CLEAR_SINGLE_CIRCLE_UNREAD = `CLEAR_SINGLE_${values.actionCircleKey}_UNREAD`;\n\nexport const CIRCLE_INVITES_LOADED = `${values.actionCircleKey}_INVITES_LOADED`;\nexport const CIRCLE_INVITES_UPDATED = `${values.actionCircleKey}_INVITES_UPDATED`;\n\n// Archive Actions\nexport const ARCHIVE_CIRCLE = `ARCHIVE_${values.actionCircleKey}`;\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,kBAAkB;AACzC,SAASC,WAAW,QAAQ,gBAAgB;AAE5C,OAAO,MAAMC,MAAM,GAAGD,WAAW,CAACC,MAAM;AACxC,OAAO,MAAMC,WAAW,GAAGF,WAAW,CAACE,WAAW;;AAElD;AACA,OAAO,MAAMC,oBAAoB,GAAG,YAAYJ,MAAM,CAACK,eAAe,OAAO;AAC7E,OAAO,MAAMC,wBAAwB,GAAG,YAAYN,MAAM,CAACK,eAAe,WAAW;AACrF,OAAO,MAAME,2BAA2B,GAAG,kBAAkBP,MAAM,CAACK,eAAe,QAAQ;AAC3F,OAAO,MAAMG,qBAAqB,GAAG,YAAYR,MAAM,CAACK,eAAe,QAAQ;AAC/E,OAAO,MAAMI,mBAAmB,GAAG,WAAWT,MAAM,CAACK,eAAe,OAAO;AAC3E,OAAO,MAAMK,mBAAmB,GAAG,WAAWV,MAAM,CAACK,eAAe,OAAO;AAC3E,OAAO,MAAMM,wBAAwB,GAAG,gBAAgBX,MAAM,CAACK,eAAe,OAAO;AACrF,OAAO,MAAMO,6BAA6B,GAAG,gBAAgBZ,MAAM,CAACK,eAAe,YAAY;AAC/F,OAAO,MAAMQ,mBAAmB,GAAG,WAAWb,MAAM,CAACK,eAAe,OAAO;AAC3E,OAAO,MAAMS,6BAA6B,GAAG,oBAAoBd,MAAM,CAACK,eAAe,QAAQ;;AAE/F;AACA,OAAO,MAAMU,8BAA8B,GAAG,UAAUf,MAAM,CAACK,eAAe,mBAAmB;AACjG,OAAO,MAAMW,uBAAuB,GAAG,GAAGhB,MAAM,CAACK,eAAe,mBAAmB;AACnF,OAAO,MAAMY,cAAc,GAAG,GAAGjB,MAAM,CAACK,eAAe,UAAU;AACjE,OAAO,MAAMa,cAAc,GAAG,WAAWlB,MAAM,CAACK,eAAe,EAAE;AACjE,OAAO,MAAMc,aAAa,GAAG,SAASnB,MAAM,CAACK,eAAe,GAAG;AAC/D,OAAO,MAAMe,oBAAoB,GAAG,UAAUpB,MAAM,CAACK,eAAe,SAAS;AAC7E,OAAO,MAAMgB,0BAA0B,GAAG,gBAAgBrB,MAAM,CAACK,eAAe,SAAS;AAEzF,OAAO,MAAMiB,qBAAqB,GAAG,GAAGtB,MAAM,CAACK,eAAe,iBAAiB;AAC/E,OAAO,MAAMkB,sBAAsB,GAAG,GAAGvB,MAAM,CAACK,eAAe,kBAAkB;;AAEjF;AACA,OAAO,MAAMmB,cAAc,GAAG,WAAWxB,MAAM,CAACK,eAAe,EAAE","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Fonts","Pl60Icon"],"sources":["fonts.js"],"sourcesContent":["import { Fonts } from '../core.config';\n\nexport const Pl60Icon = Fonts.Pl60Icon;\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,gBAAgB;AAEtC,OAAO,MAAMC,QAAQ,GAAGD,KAAK,CAACC,QAAQ"}
|
|
1
|
+
{"version":3,"names":["Fonts","Pl60Icon"],"sources":["fonts.js"],"sourcesContent":["import { Fonts } from '../core.config';\n\nexport const Pl60Icon = Fonts.Pl60Icon;\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,gBAAgB;AAEtC,OAAO,MAAMC,QAAQ,GAAGD,KAAK,CAACC,QAAQ","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
function _defineProperty(
|
|
2
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i :
|
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
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
|
import React, { Component } from 'react';
|
|
5
5
|
import { View, Platform, Alert, TouchableWithoutFeedback } from 'react-native';
|
|
@@ -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","_defineProperty","state","group","isEmpty","Title","IsPrivate","otherUser","find","Audience","u","userId","user","Id","displayName","event","navigate","attachment","Type","place","back","goBack","isAdmin","creatorId","Creator","CreatorId","hasOtherAdmin","some","isGroupOwner","setState","settingsOpen","alert","text","onPress","closeSettings","style","cancelable","currentUser","_id","chatUserKey","chatKey","onPressBack","message","originalMessages","messages","updatedMessages","map","msg","deleted","image","undefined","attachments","replyingTo","deleteMessage","error","_error$response","console","log","errorMessage","response","data","_isMounted","MIN_COMPOSER_HEIGHT","select","ios","android","interval","uid","name","avatar","isUndefined","profilePic","chat","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","sendMessage","chats","blockedUserKeys","includes","newGrop2","muteTest","muteGroup","then","res","catch","err","onSend","groupLast","lastMessage","cloneDeep","GroupId","RowId","createdAt","utc","valueOf","mergeMessages","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","isOnlyAdmin","createElement","visible","onConfirm","yesText","hideNo","entityName","onCancel","render","flex","disabled","styles","container","top","right","width","zIndex","elevation","isPrivateChat","textStyle","color","last","leftIcon","onPressLeft","rightIconType","rightIcon","onPressRight","toggleSettings","getTitle","onTextPress","onDeleteMessage","handleDeleteMessage","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 (\n !_.isUndefined(this.state.group.Creator) &&\n (userId === this.state.group.Creator.uid || userId === this.state.group.Creator.userId)\n ) {\n return true;\n }\n return false;\n }\n\n isOnlyAdmin = userId => {\n if (!this.isAdmin(userId)) {\n return false;\n }\n const { group } = this.state;\n const creatorId = group.Creator ? group.Creator.userId : group.CreatorId;\n const hasOtherAdmin = group.Audience.some(user => {\n if (!user) {\n return false;\n }\n return user.userId !== userId && (user.isAdmin || user.userId === creatorId);\n });\n\n return !hasOtherAdmin;\n };\n\n isAdmin = userId => {\n if (this.isGroupOwner(userId)) {\n return true;\n }\n const user = _.find(this.state.group.Audience || [], u => {\n return !!u && u.userId === userId;\n });\n return user && user.isAdmin;\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 if (this.state.popUpType === 'leave' && this.isOnlyAdmin(this.props.user.uid)) {\n return (\n <ConfirmPopup\n visible={this.state.showDeleteConfirm}\n onConfirm={this.onCancelDelete.bind(this)}\n yesText=\"Okay\"\n hideNo\n text={`You can't leave this ${values.entityName} as the only admin. Please make someone else an admin first.`}\n />\n );\n }\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 handleDeleteMessage = async message => {\n // Store original message for rollback\n const originalMessages = [...this.state.messages];\n \n // Optimistic update - show deleted immediately\n const updatedMessages = this.state.messages.map(msg => {\n if (msg._id === message._id) {\n return {\n ...msg,\n text: '[Message deleted]',\n deleted: true,\n image: undefined,\n attachments: undefined,\n replyingTo: undefined, // Remove reply quote\n };\n }\n return msg;\n });\n\n this.setState({\n messages: updatedMessages,\n });\n\n // Update Redux store optimistically\n this.props.updateChatMessages(this.chatKey, updatedMessages);\n\n try {\n // Call the delete message API\n await messageActions.deleteMessage(message._id, this.chatKey);\n // Success - update is already applied\n } catch (error) {\n // Rollback on failure\n console.log('handleDeleteMessage error', error);\n \n this.setState({\n messages: originalMessages,\n });\n this.props.updateChatMessages(this.chatKey, originalMessages);\n \n const errorMessage = error.response?.data?.message || 'Failed to delete message. Please try again.';\n Alert.alert('Delete Failed', errorMessage, [{ text: 'OK' }]);\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) || this.isAdmin(this.props.user.uid)) && !this.isPrivateChat() && (\n <DropDownItem text={'Manage'} onPress={this.startEdit.bind(this)} />\n )}\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.isAdmin(this.props.user.uid) && !this.isPrivateChat() && (\n <DropDownItem text={'Delete'} onPress={this.onOpenDeletePrompt.bind(this, 'delete')} />\n )}\n {!this.isPrivateChat() && <DropDownItem last text={'Leave'} onPress={this.onOpenDeletePrompt.bind(this, 'leave')} />}\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\n messages={this.chatKey ? this.state.messages : []}\n onSend={this.onSend.bind(this)}\n onDeleteMessage={this.handleDeleteMessage}\n />\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","_defineProperty","state","group","isEmpty","Title","IsPrivate","otherUser","find","Audience","u","userId","user","Id","displayName","event","navigate","attachment","Type","place","back","goBack","isAdmin","creatorId","Creator","CreatorId","hasOtherAdmin","some","isGroupOwner","setState","settingsOpen","alert","text","onPress","closeSettings","style","cancelable","currentUser","_id","chatUserKey","chatKey","onPressBack","message","originalMessages","messages","updatedMessages","map","msg","deleted","image","undefined","attachments","replyingTo","deleteMessage","error","_error$response","console","log","errorMessage","response","data","_isMounted","MIN_COMPOSER_HEIGHT","select","ios","android","interval","uid","name","avatar","isUndefined","profilePic","chat","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","sendMessage","chats","blockedUserKeys","includes","newGrop2","muteTest","muteGroup","then","res","catch","err","onSend","groupLast","lastMessage","cloneDeep","GroupId","RowId","createdAt","utc","valueOf","mergeMessages","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","isOnlyAdmin","createElement","visible","onConfirm","yesText","hideNo","entityName","onCancel","render","flex","disabled","styles","container","top","right","width","zIndex","elevation","isPrivateChat","textStyle","color","last","leftIcon","onPressLeft","rightIconType","rightIcon","onPressRight","toggleSettings","getTitle","onTextPress","onDeleteMessage","handleDeleteMessage","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 (\n !_.isUndefined(this.state.group.Creator) &&\n (userId === this.state.group.Creator.uid || userId === this.state.group.Creator.userId)\n ) {\n return true;\n }\n return false;\n }\n\n isOnlyAdmin = userId => {\n if (!this.isAdmin(userId)) {\n return false;\n }\n const { group } = this.state;\n const creatorId = group.Creator ? group.Creator.userId : group.CreatorId;\n const hasOtherAdmin = group.Audience.some(user => {\n if (!user) {\n return false;\n }\n return user.userId !== userId && (user.isAdmin || user.userId === creatorId);\n });\n\n return !hasOtherAdmin;\n };\n\n isAdmin = userId => {\n if (this.isGroupOwner(userId)) {\n return true;\n }\n const user = _.find(this.state.group.Audience || [], u => {\n return !!u && u.userId === userId;\n });\n return user && user.isAdmin;\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 if (this.state.popUpType === 'leave' && this.isOnlyAdmin(this.props.user.uid)) {\n return (\n <ConfirmPopup\n visible={this.state.showDeleteConfirm}\n onConfirm={this.onCancelDelete.bind(this)}\n yesText=\"Okay\"\n hideNo\n text={`You can't leave this ${values.entityName} as the only admin. Please make someone else an admin first.`}\n />\n );\n }\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 handleDeleteMessage = async message => {\n // Store original message for rollback\n const originalMessages = [...this.state.messages];\n \n // Optimistic update - show deleted immediately\n const updatedMessages = this.state.messages.map(msg => {\n if (msg._id === message._id) {\n return {\n ...msg,\n text: '[Message deleted]',\n deleted: true,\n image: undefined,\n attachments: undefined,\n replyingTo: undefined, // Remove reply quote\n };\n }\n return msg;\n });\n\n this.setState({\n messages: updatedMessages,\n });\n\n // Update Redux store optimistically\n this.props.updateChatMessages(this.chatKey, updatedMessages);\n\n try {\n // Call the delete message API\n await messageActions.deleteMessage(message._id, this.chatKey);\n // Success - update is already applied\n } catch (error) {\n // Rollback on failure\n console.log('handleDeleteMessage error', error);\n \n this.setState({\n messages: originalMessages,\n });\n this.props.updateChatMessages(this.chatKey, originalMessages);\n \n const errorMessage = error.response?.data?.message || 'Failed to delete message. Please try again.';\n Alert.alert('Delete Failed', errorMessage, [{ text: 'OK' }]);\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) || this.isAdmin(this.props.user.uid)) && !this.isPrivateChat() && (\n <DropDownItem text={'Manage'} onPress={this.startEdit.bind(this)} />\n )}\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.isAdmin(this.props.user.uid) && !this.isPrivateChat() && (\n <DropDownItem text={'Delete'} onPress={this.onOpenDeletePrompt.bind(this, 'delete')} />\n )}\n {!this.isPrivateChat() && <DropDownItem last text={'Leave'} onPress={this.onOpenDeletePrompt.bind(this, 'leave')} />}\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\n messages={this.chatKey ? this.state.messages : []}\n onSend={this.onSend.bind(this)}\n onDeleteMessage={this.handleDeleteMessage}\n />\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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","ignoreList":[]}
|
|
@@ -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 { 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":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,IAAI,EAAEC,gBAAgB,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,cAAc;AACjF,SAASC,OAAO,QAAQ,aAAa;AACrC,OAAOC,MAAM,MAAM,QAAQ;AAC3B,OAAOC,CAAC,MAAM,QAAQ;AACtB,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,UAAU,EAAEC,cAAc,EAAEC,SAAS,QAAQ,WAAW;AACjE,OAAOC,iBAAiB,MAAM,4BAA4B;AAC1D,SAASC,SAAS,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,YAAY,EAAEC,8BAA8B,EAAEC,uBAAuB,QAAQ,UAAU;AACjI,SAASC,iBAAiB,QAAQ,eAAe;AACjD,OAAOC,WAAW,MAAM,8BAA8B;AACtD,SAASC,aAAa,QAAQ,cAAc;AAC5C,OAAOC,WAAW,MAAM,uBAAuB;AAC/C,SAASC,MAAM,QAAQ,qBAAqB;AAE5C,MAAMC,QAAQ,SAASzB,SAAS,CAAC;EAC/B0B,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IAEP,IAAI,CAACC,UAAU,GAAG,KAAK;IACvB,IAAI,CAACC,KAAK,GAAG;MACXC,QAAQ,EAAE,IAAI;MACdC,UAAU,EAAE,EAAE;MACdC,OAAO,EAAE,EAAE;MACXC,YAAY,EAAE;IAChB,CAAC;EACH;EAEA,MAAMC,iBAAiBA,CAAA,EAAG;IACxB,IAAI,CAACN,UAAU,GAAG,IAAI;IAEtB,IAAI,CAACO,gBAAgB,CAAC,IAAI,CAACC,KAAK,CAAC;IACjC,IAAI,CAACC,QAAQ,CAAC;MAAEJ,YAAY,EAAE,IAAI,CAACG,KAAK,CAACH;IAAa,CAAC,CAAC;EAC1D;EAEAK,gCAAgCA,CAACC,SAAS,EAAE;IAC1C,IAAIA,SAAS,CAACC,MAAM,KAAK,IAAI,CAACJ,KAAK,CAACI,MAAM,EAAE;MAC1CC,UAAU,CAAC,MAAM;QACf,IAAI,CAACN,gBAAgB,CAACI,SAAS,CAAC;MAClC,CAAC,EAAE,GAAG,CAAC;IACT;IACA,IAAIA,SAAS,CAACN,YAAY,KAAK,IAAI,CAACG,KAAK,CAACH,YAAY,EAAE;MACtD,IAAI,CAACI,QAAQ,CAAC;QACZJ,YAAY,EAAEM,SAAS,CAACN;MAC1B,CAAC,CAAC;IACJ;EACF;EAEAS,qBAAqBA,CAACH,SAAS,EAAEI,SAAS,EAAE;IAC1C,OACEA,SAAS,CAACZ,UAAU,KAAK,IAAI,CAACF,KAAK,CAACE,UAAU,IAC9CY,SAAS,CAACV,YAAY,KAAK,IAAI,CAACJ,KAAK,CAACI,YAAY,IAClDU,SAAS,CAACX,OAAO,KAAK,IAAI,CAACH,KAAK,CAACG,OAAO;EAE5C;EAEAY,oBAAoBA,CAAA,EAAG;IACrB,IAAI,CAAChB,UAAU,GAAG,KAAK;EACzB;EAEAiB,WAAWA,CAACC,KAAK,EAAE;IACjB,IAAI,CAACV,KAAK,CAACf,iBAAiB,CAACyB,KAAK,CAACC,EAAE,EAAE,IAAI,CAACX,KAAK,CAACY,IAAI,CAACC,GAAG,CAAC;IAC3DnC,iBAAiB,CAACoC,QAAQ,CAACzB,MAAM,CAAC0B,gBAAgB,EAAE;MAAEC,IAAI,EAAEN;IAAM,CAAC,CAAC;EACtE;EAEAO,WAAWA,CAAA,EAAG;IACZvC,iBAAiB,CAACwC,MAAM,CAAC,CAAC;EAC5B;EAEAC,kBAAkBA,CAACT,KAAK,EAAEU,MAAM,EAAE;IAChC,IAAIA,MAAM,EAAE;MACV,MAAMC,KAAK,GAAG,IAAI,CAAC5B,KAAK,CAACI,YAAY,CAACyB,OAAO,CAACZ,KAAK,CAAC;MACpD,IAAIW,KAAK,GAAG,CAAC,CAAC,EAAE;QACd,IAAI,CAAC5B,KAAK,CAACI,YAAY,CAAC0B,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;QACxC,MAAMG,eAAe,GAAG,IAAI,CAAC/B,KAAK,CAACI,YAAY;QAC/C,IAAI,IAAI,CAACL,UAAU,EAAE;UACnB,IAAI,CAACS,QAAQ,CAAC;YACZJ,YAAY,EAAE2B;UAChB,CAAC,CAAC;QACJ;MACF;IACF;EACF;EAEAC,WAAWA,CAACT,IAAI,EAAE;IAChB,IAAI,CAAC3C,CAAC,CAACqD,OAAO,CAACV,IAAI,CAACW,KAAK,CAAC,EAAE;MAC1B,OAAOX,IAAI,CAACW,KAAK;IACnB;IACA,IAAIX,IAAI,CAACY,SAAS,EAAE;MAClB,MAAMC,SAAS,GAAGxD,CAAC,CAACyD,IAAI,CAACd,IAAI,CAACe,QAAQ,IAAI,EAAE,EAAEC,CAAC,IAAI;QACjD,OAAOA,CAAC,CAACC,MAAM,KAAK,IAAI,CAACjC,KAAK,CAACY,IAAI,CAACD,EAAE;MACxC,CAAC,CAAC;MACF,IAAIkB,SAAS,EAAE;QACb,OAAOA,SAAS,CAACK,WAAW;MAC9B;MACA,OAAO,IAAI;IACb;IACA,IAAIlB,IAAI,CAACmB,SAAS,EAAE;MAClB,MAAMC,KAAK,GAAG/D,CAAC,CAACgE,OAAO,CAACC,MAAM,CAACC,IAAI,CAACvB,IAAI,CAACmB,SAAS,CAAC,EAAE,IAAI,CAACnC,KAAK,CAACY,IAAI,CAACsB,WAAW,CAAC;MACjF,OAAOE,KAAK,CAACI,MAAM,GAAG,CAAC,GAAG,GAAGJ,KAAK,CAAC,CAAC,CAAC,MAAMA,KAAK,CAACI,MAAM,GAAG,CAAC,SAAS,GAAGJ,KAAK,CAACK,IAAI,CAAC,IAAI,CAAC;IACzF;IACA,OAAO,mBAAmB;EAC5B;EAEAC,YAAYA,CAAC1B,IAAI,EAAE;IACjB,IAAI,CAAC3C,CAAC,CAACqD,OAAO,CAACV,IAAI,CAAC2B,SAAS,CAAC,EAAE;MAC9B,OAAO3B,IAAI,CAAC2B,SAAS;IACvB;IACA,IAAI,CAACtE,CAAC,CAACqD,OAAO,CAACV,IAAI,CAAC4B,KAAK,CAAC,EAAE;MAC1B,OAAO5B,IAAI,CAAC4B,KAAK;IACnB;IACA,IAAI5B,IAAI,CAACY,SAAS,EAAE;MAClB,MAAMC,SAAS,GAAGxD,CAAC,CAACyD,IAAI,CAACd,IAAI,CAACe,QAAQ,IAAI,EAAE,EAAEC,CAAC,IAAI;QACjD,OAAOA,CAAC,CAACC,MAAM,KAAK,IAAI,CAACjC,KAAK,CAACY,IAAI,CAACD,EAAE;MACxC,CAAC,CAAC;MACF,IAAIkB,SAAS,EAAE;QACb,OAAOA,SAAS,CAACgB,UAAU;MAC7B;IACF;IACA,OAAO,IAAI;EACb;EAEAC,WAAWA,CAACC,KAAK,EAAE;IACjB,MAAMC,GAAG,GAAG5E,MAAM,CAAC2E,KAAK,CAAC,CAACE,KAAK,CAAC,CAAC;IACjC,IACED,GAAG,CAACE,QAAQ,CACV9E,MAAM,CAAC,CAAC,CACL6E,KAAK,CAAC,CAAC,CACPE,OAAO,CAAC,GAAG,CAChB,CAAC,EACD;MACA,OAAOH,GAAG,CAACI,MAAM,CAAC,OAAO,CAAC;IAC5B;IACA,OAAOJ,GAAG,CAACI,MAAM,CAAC,OAAO,CAAC;EAC5B;EAEAC,cAAcA,CAACrC,IAAI,EAAE;IACnB,IAAI,CAACA,IAAI,CAACsC,WAAW,EAAE;MACrB,IAAItC,IAAI,CAACY,SAAS,EAAE;QAClB,OAAO,EAAE;MACX;MACA,OAAO,OAAOvC,MAAM,CAACkE,UAAU,EAAE;IACnC;IACA,IAAI,OAAOvC,IAAI,CAACsC,WAAW,KAAK,QAAQ,EAAE;MACxC,OAAOtC,IAAI,CAACsC,WAAW;IACzB;IACA;IACA,IAAI,CAACtC,IAAI,CAACsC,WAAW,CAACE,IAAI,EAAE;MAC1B,OAAOxC,IAAI,CAACsC,WAAW,CAACG,OAAO,GAAG,mBAAmB,GAAG,EAAE;IAC5D;IACA;IACA,OAAOzC,IAAI,CAACsC,WAAW,CAACE,IAAI;EAC9B;EAEA9D,QAAQA,CAAA,EAAG;IACT,IAAI,IAAI,CAACF,UAAU,EAAE;MACnB,IAAI,CAACS,QAAQ,CAAC;QAAEP,QAAQ,EAAE;MAAK,CAAC,CAAC;IACnC;IACAW,UAAU,CAAC,MAAM;MACf,IAAI,CAACN,gBAAgB,CAAC,IAAI,CAACC,KAAK,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC;EACR;EAEAD,gBAAgBA,CAACI,SAAS,EAAE;IAC1B,MAAMuD,UAAU,GAAGrF,CAAC,CAACsF,MAAM,CAACxD,SAAS,CAACC,MAAM,EAAEY,IAAI,IAAI;MACpD,OAAO,CAAC3C,CAAC,CAACqD,OAAO,CAACV,IAAI,CAAC,IAAI,CAACA,IAAI,CAACyC,OAAO,IAAI,CAACzC,IAAI,CAAC4C,OAAO,IAAI5C,IAAI,IAAI,IAAI,IAAI,CAACA,IAAI,CAACY,SAAS;IAC9F,CAAC,CAAC;IAEF,MAAMiC,QAAQ,GAAGxF,CAAC,CAACyF,OAAO,CAACJ,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;IAEzD,MAAMK,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAACtE,KAAK,CAACC,QAAQ,GAAGrB,CAAC,CAAC2F,IAAI,CAACH,QAAQ,EAAE,CAAC,CAAC,GAAGA,QAAQ,CAAC,CAAC;IAC1E;IACA;IACA;IACA;;IAEA,IAAI,CAACxF,CAAC,CAACqD,OAAO,CAACqC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAIA,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;MAC5CA,KAAK,CAAC,CAAC,CAAC,CAACE,KAAK,GAAG,IAAI;IACvB;IAEA,IAAIrE,OAAO,GAAGO,SAAS,CAACP,OAAO;IAC/B,IAAIA,OAAO,IAAI,IAAI,EAAE;MACnBA,OAAO,GAAG,EAAE;IACd;IACA,IAAI,IAAI,CAACJ,UAAU,EAAE;MACnB,IAAI,CAACS,QAAQ,CAAC;QACZN,UAAU,EAAEoE,KAAK;QACjBnE;MACF,CAAC,CAAC;IACJ;EACF;EAEAsE,iBAAiBA,CAAA,EAAG;IAClB,IAAI,IAAI,CAAClE,KAAK,CAACmE,OAAO,IAAI,CAAC9F,CAAC,CAACqD,OAAO,CAAC,IAAI,CAAC1B,KAAK,CAACmE,OAAO,CAACC,SAAS,CAAC,EAAE;MAClE,OAAO,IAAI,CAACpE,KAAK,CAACmE,OAAO,CAACC,SAAS;IACrC;IACA,OAAOjF,aAAa,CAACkF,YAAY;EACnC;EAEAC,wBAAwBA,CAAA,EAAG;IACzB,IAAI,CAAC,IAAI,CAACtE,KAAK,CAACuE,wBAAwB,EAAE;MACxC,OAAO,KAAK;IACd;IACA,IAAIlG,CAAC,CAACqD,OAAO,CAAC,IAAI,CAACjC,KAAK,CAACI,YAAY,CAAC,EAAE;MACtC,OAAO,KAAK;IACd;IACA,IAAI,IAAI,CAACG,KAAK,CAACY,IAAI,CAAC4D,QAAQ,KAAK,QAAQ,EAAE;MACzC,OAAO,KAAK;IACd;IACA,OAAO,IAAI;EACb;EAEAC,wBAAwBA,CAAA,EAAG;IACzB,IAAI,CAAC,IAAI,CAACH,wBAAwB,CAAC,CAAC,EAAE;MACpC,OAAO,IAAI;IACb;IACA,oBACE1G,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;MAAC6G,KAAK,EAAEC,MAAM,CAACC;IAA4B,gBAC9CjH,KAAA,CAAA8G,aAAA,CAACjG,SAAS;MAACqG,IAAI,EAAC,OAAO;MAACH,KAAK,EAAEC,MAAM,CAACG;IAAkB,GAAC,qBAE9C,CAAC,eACZnH,KAAA,CAAA8G,aAAA,CAACjG,SAAS;MAACqG,IAAI,EAAC,MAAM;MAACH,KAAK,EAAEC,MAAM,CAACI;IAAmB,GAAC,4EAE9C,CACP,CAAC;EAEX;EAEAC,WAAWA,CAACjE,IAAI,EAAE;IAChB,IAAIA,IAAI,CAACkE,WAAW,KAAK,IAAI,CAAClF,KAAK,CAACY,IAAI,CAACC,GAAG,EAAE;MAC5C,oBAAOjD,KAAA,CAAA8G,aAAA,CAACpG,IAAI;QAAC6G,IAAI,EAAC,YAAY;QAACL,IAAI,EAAC,cAAc;QAACM,SAAS,EAAER,MAAM,CAACS;MAAc,CAAE,CAAC;IACxF;IACA,OAAO,IAAI;EACb;EAEAC,mBAAmBA,CAACC,OAAO,EAAE;IAC3B,IAAIlH,CAAC,CAACmH,WAAW,CAACD,OAAO,CAAC,IAAIA,OAAO,GAAG,CAAC,EAAE;MACzC,OAAO,IAAI;IACb;IACA,oBACE3H,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;MAAC6G,KAAK,EAAEC,MAAM,CAACW;IAAQ,gBAC1B3H,KAAA,CAAA8G,aAAA,CAAC1G,IAAI;MAAC2G,KAAK,EAAEC,MAAM,CAACa;IAAY,GAAEF,OAAc,CAC5C,CAAC;EAEX;EAEAG,UAAUA,CAAC1E,IAAI,EAAE;IACf,IAAI3C,CAAC,CAACqD,OAAO,CAACV,IAAI,CAAC,IAAIA,IAAI,CAACyC,OAAO,IAAIzC,IAAI,IAAI,IAAI,EAAE;MACnD,OAAO,IAAI;IACb;IAEA,MAAM2E,QAAQ,GAAG,IAAI,CAAClE,WAAW,CAACT,IAAI,CAAC;IACvC,MAAM4E,SAAS,GAAG,IAAI,CAAClD,YAAY,CAAC1B,IAAI,CAAC;IACzC,MAAM6E,aAAa,GAAI7E,IAAI,CAAC8E,MAAM,IAAI9E,IAAI,CAAC8E,MAAM,CAAC,IAAI,CAAC9F,KAAK,CAACY,IAAI,CAACD,EAAE,CAAC,IAAK,CAAC;IAE3E,oBACE/C,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;MAACiI,GAAG,EAAE,OAAO/E,IAAI,CAACL,EAAE,EAAG;MAACgE,KAAK,EAAE,CAAC3D,IAAI,CAACiD,KAAK,IAAI5F,CAAC,CAACqD,OAAO,CAAC,IAAI,CAACjC,KAAK,CAACG,OAAO,CAAC,IAAI;QAAEoG,SAAS,EAAE;MAAE,CAAC;IAAE,gBACpGpI,KAAA,CAAA8G,aAAA,CAAC3G,gBAAgB;MAACkI,aAAa,EAAE,GAAI;MAACC,OAAO,EAAE,IAAI,CAACzF,WAAW,CAAC0F,IAAI,CAAC,IAAI,EAAEnF,IAAI;IAAE,gBAC/EpD,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;MACH6G,KAAK,EAAE,CACLC,MAAM,CAACwB;MACP;MAAA;IACA,gBAEFxI,KAAA,CAAA8G,aAAA,CAACnG,UAAU;MAAC8H,QAAQ,EAAE,EAAG;MAAClB,IAAI,EAAEQ,QAAS;MAACpH,UAAU,EAAEqH;IAAU,CAAE,CAAC,eACnEhI,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;MAAC6G,KAAK,EAAEC,MAAM,CAAC0B;IAAsB,gBACxC1I,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;MAAC6G,KAAK,EAAEC,MAAM,CAAC2B;IAAW,gBAC7B3I,KAAA,CAAA8G,aAAA,CAAC1G,IAAI;MAAC2G,KAAK,EAAE,CAACC,MAAM,CAAC4B,aAAa,EAAE,CAAC,CAACX,aAAa,IAAI;QAAEY,KAAK,EAAE9H,SAAS;QAAE+H,UAAU,EAAE;MAAU,CAAC;IAAE,GACjG,IAAI,CAAC5D,WAAW,CAAC9B,IAAI,CAAC2F,OAAO,CAC1B,CAAC,eACP/I,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;MAAC6G,KAAK,EAAEC,MAAM,CAACgC;IAAK,gBACvBhJ,KAAA,CAAA8G,aAAA,CAAC1G,IAAI;MAAC2G,KAAK,EAAE,CAACC,MAAM,CAACiC,YAAY,EAAE,CAAC,CAAChB,aAAa,IAAIjB,MAAM,CAACkC,YAAY,CAAE;MAACC,aAAa,EAAE;IAAE,GAC1FpB,QACG,CACF,CACF,CAAC,eACP/H,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;MAAC6G,KAAK,EAAEC,MAAM,CAAC2B;IAAW,GAC5B,IAAI,CAACjB,mBAAmB,CAACO,aAAa,CAAC,eACxCjI,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;MAAC6G,KAAK,EAAEC,MAAM,CAACgC;IAAK,gBACvBhJ,KAAA,CAAA8G,aAAA,CAAC1G,IAAI;MAAC2G,KAAK,EAAE,CAACC,MAAM,CAACoC,eAAe,EAAE,CAAC,CAACnB,aAAa,IAAI,CAAC,CAAC,CAAE;MAACkB,aAAa,EAAE;IAAE,GAC5E,IAAI,CAAC1D,cAAc,CAACrC,IAAI,CACrB,CACF,CACF,CACF,CACF,CACU,CACd,CAAC;EAEX;EAEAiG,aAAaA,CAAA,EAAG;IACd,MAAMC,MAAM,GAAG7I,CAAC,CAACsF,MAAM,CAAC,IAAI,CAAClE,KAAK,CAACG,OAAO,EAAEuH,IAAI,IAAI;MAClD,OAAO,CAACA,IAAI,CAACvD,OAAO,IAAI,CAACuD,IAAI,CAACC,QAAQ;IACxC,CAAC,CAAC;IAEF,OAAOF,MAAM,CAACG,GAAG,CAAC,CAACC,MAAM,EAAEjG,KAAK,KAAK;MACnC,IAAIiG,MAAM,IAAI,IAAI,EAAE;QAClB,oBACE1J,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;UAACiI,GAAG,EAAEuB,MAAM,CAAC3G;QAAG,gBACnB/C,KAAA,CAAA8G,aAAA,CAACxF,WAAW;UAACoI,MAAM,EAAEA,MAAO;UAACC,KAAK,EAAED,MAAO;UAACjG,KAAK,EAAEA,KAAM;UAAC0E,GAAG,EAAEuB,MAAM,CAAC3G,EAAG;UAAC6G,UAAU;QAAA,CAAE,CAClF,CAAC;MAEX;MACA,OAAO,IAAI;IACb,CAAC,CAAC;EACJ;EAEAC,kBAAkBA,CAAA,EAAG;IACnB,IAAI,CAAC,IAAI,CAACnD,wBAAwB,CAAC,CAAC,EAAE;MACpC,OAAO,IAAI;IACb;IACA,OAAO,IAAI,CAAC7E,KAAK,CAACI,YAAY,CAACwH,GAAG,CAAC,CAAC3G,KAAK,EAAEW,KAAK,KAAK;MACnD,IAAI,CAACX,KAAK,EAAE;QACV,OAAO,IAAI;MACb;MACA,oBACE9C,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;QAACiI,GAAG,EAAErF,KAAK,CAACC;MAAG,gBAClB/C,KAAA,CAAA8G,aAAA,CAACtF,WAAW;QAACsB,KAAK,EAAEA,KAAM;QAACW,KAAK,EAAEA,KAAM;QAAC0E,GAAG,EAAErF,KAAK,CAACC,EAAG;QAAC6G,UAAU;QAACE,OAAO,EAAE,IAAI,CAACvG,kBAAkB,CAACgF,IAAI,CAAC,IAAI,EAAEzF,KAAK;MAAE,CAAE,CACpH,CAAC;IAEX,CAAC,CAAC;EACJ;EAEAiH,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAAC,IAAI,CAAC3H,KAAK,CAAC4H,mBAAmB,KAAMvJ,CAAC,CAACqD,OAAO,CAAC,IAAI,CAACjC,KAAK,CAACG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC0E,wBAAwB,CAAC,CAAC,IAAK,IAAI,CAACtE,KAAK,CAAC6H,QAAQ,CAAC,EAAE;MACnI,OAAO,IAAI;IACb;IACA,IAAIC,cAAc,GAAG,IAAI;IACzB,IAAI,CAACzJ,CAAC,CAACqD,OAAO,CAAC,IAAI,CAACjC,KAAK,CAACG,OAAO,CAAC,IAAI,IAAI,CAAC0E,wBAAwB,CAAC,CAAC,EAAE;MACrEwD,cAAc,gBACZlK,KAAA,CAAA8G,aAAA,CAAC5G,IAAI,QACF,IAAI,CAAC2G,wBAAwB,CAAC,CAAC,eAChC7G,KAAA,CAAA8G,aAAA,CAACxG,UAAU;QAAC6J,UAAU;QAACC,8BAA8B,EAAE;MAAM,GAC1D,CAAC3J,CAAC,CAACqD,OAAO,CAAC,IAAI,CAACjC,KAAK,CAACG,OAAO,CAAC,IAAI,IAAI,CAACqH,aAAa,CAAC,CAAC,EACtD,IAAI,CAACQ,kBAAkB,CAAC,CACf,CACR,CACP;IACH;IACA,oBACE7J,KAAA,CAAA8G,aAAA,CAAC5G,IAAI,QACF,IAAI,CAACkC,KAAK,CAAC4H,mBAAmB,EAC9BE,cACG,CAAC;EAEX;EAEAG,eAAeA,CAAA,EAAG;IAChB,IAAI,IAAI,CAACjI,KAAK,CAACkI,SAAS,EAAE,oBAAOtK,KAAA,CAAA8G,aAAA,CAAClG,cAAc;MAAC2J,KAAK,EAAC,SAAS;MAACxD,KAAK,EAAE;QAAEyD,MAAM,EAAE,GAAG;QAAEC,UAAU,EAAE,EAAE;QAAEC,gBAAgB,EAAE;MAAG;IAAE,CAAE,CAAC;IACjI,IAAI,IAAI,CAACtI,KAAK,CAAC6H,QAAQ,EACrB,oBAAOjK,KAAA,CAAA8G,aAAA,CAAClG,cAAc;MAAC2J,KAAK,EAAE,IAAI,CAACjE,iBAAiB,CAAC,CAAE;MAACS,KAAK,EAAE;QAAEyD,MAAM,EAAE,GAAG;QAAEC,UAAU,EAAE,EAAE;QAAEC,gBAAgB,EAAE;MAAG;IAAE,CAAE,CAAC;IAC1H,oBAAO1K,KAAA,CAAA8G,aAAA,CAAClG,cAAc;MAAC2J,KAAK,EAAE,IAAI,CAACjE,iBAAiB,CAAC,CAAE;MAACS,KAAK,EAAE;QAAE2D,gBAAgB,EAAE,EAAE;QAAEtC,SAAS,EAAE;MAAG;IAAE,CAAE,CAAC;EAC5G;EAEAuC,MAAMA,CAAA,EAAG;IACP,MAAM5I,UAAU,GAAG,IAAI,CAACK,KAAK,CAACwI,KAAK,GAAG,IAAI,CAAC/I,KAAK,CAACE,UAAU,CAAC8I,KAAK,CAAC,CAAC,EAAE,IAAI,CAACzI,KAAK,CAACwI,KAAK,CAAC,GAAG,IAAI,CAAC/I,KAAK,CAACE,UAAU;IAC9G,MAAM+I,WAAW,GAAG,CAACrK,CAAC,CAACqD,OAAO,CAAC,IAAI,CAACjC,KAAK,CAACE,UAAU,CAAC;IAErD,oBACE/B,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;MAAC6G,KAAK,EAAE,CAACC,MAAM,CAAC+D,SAAS,EAAE,CAAC,IAAI,CAAC3I,KAAK,CAAC6H,QAAQ,IAAIjD,MAAM,CAACgE,aAAa;IAAE,GAC3EF,WAAW,iBACV9K,KAAA,CAAA8G,aAAA,CAACzG,QAAQ;MACP4K,yBAAyB,EAAC,QAAQ;MAClClE,KAAK,EAAEC,MAAM,CAACgC,IAAK;MACnBkC,IAAI,EAAEnJ,UAAW;MACjBoJ,kBAAkB,EAAE,IAAI,CAACd,eAAe,CAAC,CAAE;MAC3CL,mBAAmB,EAAE,IAAI,CAACD,gBAAgB,CAAC,CAAE;MAC7CqB,YAAY,EAAE7B,IAAI,IAAIA,IAAI,CAACxG,EAAG;MAC9BsI,UAAU,EAAEA,CAAC;QAAE9B,IAAI;QAAE9F;MAAM,CAAC,KAAK,IAAI,CAACqE,UAAU,CAACyB,IAAI,EAAE9F,KAAK,CAAE;MAC9D6H,mBAAmB,EAAE,CAAC,IAAI,CAAClJ,KAAK,CAAC6H,QAAQ,iBAAIjK,KAAA,CAAA8G,aAAA,CAAC5G,IAAI;QAAC6G,KAAK,EAAE;UAAEyD,MAAM,EAAE;QAAG;MAAE,CAAE,CAAE;MAC7Ee,SAAS,EAAE,IAAI,CAAC1J;IAAM,CACvB,CACF,EACA,CAACiJ,WAAW,iBACX9K,KAAA,CAAA8G,aAAA,CAAA9G,KAAA,CAAAwL,QAAA,QACG,IAAI,CAACzB,gBAAgB,CAAC,CAAC,EACvB,IAAI,CAACM,eAAe,CAAC,CACtB,CAEA,CAAC;EAEX;AACF;AAEA,MAAMrD,MAAM,GAAG;EACbgE,aAAa,EAAE;IACbS,eAAe,EAAE;EACnB,CAAC;EACDC,IAAI,EAAE;IACJC,QAAQ,EAAE,UAAU;IACpBC,iBAAiB,EAAE,CAAC;IACpBH,eAAe,EAAE,EAAE;IACnBI,YAAY,EAAE;EAChB,CAAC;EACDC,qBAAqB,EAAE;IACrBtB,MAAM,EAAE,EAAE;IACVoB,iBAAiB,EAAE,EAAE;IACrBG,aAAa,EAAE,CAAC;IAChBC,cAAc,EAAE;EAClB,CAAC;EACDC,YAAY,EAAE;IACZC,QAAQ,EAAE,EAAE;IACZpD,UAAU,EAAE,aAAa;IACzBD,KAAK,EAAE9H;EACT,CAAC;EACDgK,SAAS,EAAE;IACToB,IAAI,EAAE,CAAC;IACPR,QAAQ,EAAE;EACZ,CAAC;EACDhD,UAAU,EAAE;IACVyD,aAAa,EAAE,aAAa;IAC5BC,UAAU,EAAE;EACd,CAAC;EACDrD,IAAI,EAAE;IACJmD,IAAI,EAAE,CAAC;IACPG,eAAe,EAAE;EACnB,CAAC;EACD9D,QAAQ,EAAE;IACR8D,eAAe,EAAE,MAAM;IACvBV,iBAAiB,EAAE,EAAE;IACrBG,aAAa,EAAE,EAAE;IACjBC,cAAc,EAAE,YAAY;IAC5BI,aAAa,EAAE,KAAK;IACpBT,QAAQ,EAAE;EACZ,CAAC;EACDY,eAAe,EAAE;IACfnE,SAAS,EAAE;EACb,CAAC;EACDoE,YAAY,EAAE;IACZF,eAAe,EAAE,aAAa;IAC9BlE,SAAS,EAAE,EAAE;IACbqE,KAAK,EAAE,EAAE;IACTjC,MAAM,EAAE,EAAE;IACVkC,YAAY,EAAE;EAChB,CAAC;EACDhE,qBAAqB,EAAE;IACrByD,IAAI,EAAE,CAAC;IACPQ,UAAU,EAAE;EACd,CAAC;EACD1D,YAAY,EAAE;IACZiD,QAAQ,EAAE,EAAE;IACZpD,UAAU,EAAE,SAAS;IACrBD,KAAK,EAAE9H;EACT,CAAC;EACD6L,wBAAwB,EAAE;IACxBR,aAAa,EAAE,KAAK;IACpBJ,cAAc,EAAE,YAAY;IAC5Ba,YAAY,EAAE;EAChB,CAAC;EACDpF,aAAa,EAAE;IACbyE,QAAQ,EAAE,EAAE;IACZpD,UAAU,EAAE,YAAY;IACxBD,KAAK,EAAE7H,QAAQ;IACf8L,WAAW,EAAE;EACf,CAAC;EACD1D,eAAe,EAAE;IACf8C,QAAQ,EAAE,EAAE;IACZpD,UAAU,EAAE,WAAW;IACvBD,KAAK,EAAE5H,UAAU;IACjB6L,WAAW,EAAE;EACf,CAAC;EACD5D,YAAY,EAAE;IACZJ,UAAU,EAAE;EACd,CAAC;EACDF,aAAa,EAAE;IACbsD,QAAQ,EAAE,EAAE;IACZpD,UAAU,EAAE,aAAa;IACzBD,KAAK,EAAE5H;EACT,CAAC;EACD8L,kBAAkB,EAAE;IAClBpB,QAAQ,EAAE,UAAU;IACpBqB,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAC;EACDC,SAAS,EAAE;IACTC,IAAI,EAAE,CAAC;IACPV,KAAK,EAAE,EAAE;IACTjC,MAAM,EAAE;EACV,CAAC;EACD7C,OAAO,EAAE;IACP+E,YAAY,EAAE,EAAE;IAChBlC,MAAM,EAAE,EAAE;IACVwB,cAAc,EAAE,QAAQ;IACxBoB,QAAQ,EAAE,EAAE;IACZxB,iBAAiB,EAAE,CAAC;IACpBU,eAAe,EAAEpL;EACnB,CAAC;EACD2G,WAAW,EAAE;IACXgB,KAAK,EAAE,MAAM;IACbqD,QAAQ,EAAE,EAAE;IACZpD,UAAU,EAAE,aAAa;IACzBuE,SAAS,EAAE;EACb,CAAC;EACDpG,2BAA2B,EAAE;IAC3B2E,iBAAiB,EAAE,EAAE;IACrBnB,UAAU,EAAE,EAAE;IACdsB,aAAa,EAAE;EACjB,CAAC;EACD5E,iBAAiB,EAAE;IACjB0E,YAAY,EAAE;EAChB,CAAC;EACDzE,kBAAkB,EAAE;IAClBkG,UAAU,EAAE;EACd;AACF,CAAC;AAED,MAAMC,eAAe,GAAG1L,KAAK,IAAI;EAC/B,MAAM2L,OAAO,GAAG3L,KAAK,CAACJ,MAAM,CAACgM,UAAU,CAAC;EACxC,MAAM;IAAEzK;EAAK,CAAC,GAAGnB,KAAK;EAEtB,OAAO;IACLW,MAAM,EAAEgL,OAAO,CAACE,IAAI;IACpB1L,OAAO,EAAEwL,OAAO,CAACxL,OAAO;IACxB2L,WAAW,EAAEH,OAAO,IAAIA,OAAO,CAACG,WAAW,GAAGH,OAAO,CAACG,WAAW,GAAG,CAAC;IACrE3K,IAAI;IACJ4K,kBAAkB,EAAEzM,8BAA8B,CAACU,KAAK,CAAC;IACzD8E,wBAAwB,EAAEvF,uBAAuB,CAACS,KAAK,EAAEJ,MAAM,CAACoM,cAAc;EAChF,CAAC;AACH,CAAC;AAED,eAAetN,OAAO,CAACgN,eAAe,EAAE;EAAElM;AAAkB,CAAC,CAAC,CAACK,QAAQ,CAAC","ignoreList":[]}
|