@plusscommunities/pluss-circles-app 6.0.4-auth.0 → 6.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/module/actions/GroupActions.js +46 -111
- package/dist/module/actions/GroupActions.js.map +1 -1
- package/dist/module/components/chat/Chat.js +1 -1
- package/dist/module/components/chat/Chat.js.map +1 -1
- package/package.json +3 -7
- package/src/actions/GroupActions.js +49 -128
- package/src/components/chat/Chat.js +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
2
|
import { circleActions } from '../webapi';
|
|
3
3
|
import { getUrl } from '../webapi/helper';
|
|
4
|
-
import {
|
|
4
|
+
import { authedFunction } from '../js';
|
|
5
5
|
import NavigationService from '../js/NavigationService';
|
|
6
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';
|
|
7
7
|
import { values } from '../values.config';
|
|
@@ -71,12 +71,6 @@ export const createGroup = group => {
|
|
|
71
71
|
type: CREATED_CIRCLE,
|
|
72
72
|
payload: group
|
|
73
73
|
});
|
|
74
|
-
/* if (events != null && events.length > 0) {
|
|
75
|
-
dispatch({
|
|
76
|
-
type: UPDATE_EVENT_TIMEFRAME,
|
|
77
|
-
payload: null
|
|
78
|
-
});
|
|
79
|
-
} */
|
|
80
74
|
};
|
|
81
75
|
};
|
|
82
76
|
export const updateInvites = invites => {
|
|
@@ -89,29 +83,15 @@ export const updateInvites = invites => {
|
|
|
89
83
|
};
|
|
90
84
|
export const getGroupInvites = () => {
|
|
91
85
|
return async dispatch => {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}).catch(() => {
|
|
97
|
-
console.log('FAIL AT FETCH USER ID -- Silent Upate');
|
|
98
|
-
});
|
|
99
|
-
await getSessionTokenAWS('Bearer').then(sessionToken => {
|
|
100
|
-
token = sessionToken;
|
|
101
|
-
}).catch(() => {
|
|
102
|
-
console.log('FAIL AT FETCH TOKEN -- Silent Upate');
|
|
103
|
-
});
|
|
104
|
-
if (userID != null && token != null) {
|
|
105
|
-
circleActions.getGroupInvites(userID, token).then(res => {
|
|
106
|
-
dispatch({
|
|
107
|
-
type: CIRCLE_INVITES_LOADED,
|
|
108
|
-
payload: res.data.Items
|
|
109
|
-
});
|
|
110
|
-
}).catch(err => {
|
|
111
|
-
console.log('fetch circle invites FAIL');
|
|
112
|
-
console.log(err);
|
|
86
|
+
circleActions.getGroupInvites(userID, token).then(res => {
|
|
87
|
+
dispatch({
|
|
88
|
+
type: CIRCLE_INVITES_LOADED,
|
|
89
|
+
payload: res.data.Items
|
|
113
90
|
});
|
|
114
|
-
}
|
|
91
|
+
}).catch(err => {
|
|
92
|
+
console.log('fetch circle invites FAIL');
|
|
93
|
+
console.log(err);
|
|
94
|
+
});
|
|
115
95
|
};
|
|
116
96
|
};
|
|
117
97
|
export const handleGroupInvite = (invite, action, tempUserId) => {
|
|
@@ -151,34 +131,23 @@ export const handleGroupInvite = (invite, action, tempUserId) => {
|
|
|
151
131
|
});
|
|
152
132
|
}, 100);
|
|
153
133
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
134
|
+
await authedFunction({
|
|
135
|
+
method: 'post',
|
|
136
|
+
url: getUrl(values.serviceKey, 'handleGroupInvite'),
|
|
137
|
+
data: {
|
|
138
|
+
inviteID: invite.Id,
|
|
139
|
+
action
|
|
140
|
+
}
|
|
141
|
+
}).then(res => {
|
|
142
|
+
if (action) {
|
|
143
|
+
dispatch({
|
|
144
|
+
type: CIRCLES_LOADED,
|
|
145
|
+
payload: [res.data.group]
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}).catch(err => {
|
|
149
|
+
console.log('handle event invite fail', err);
|
|
159
150
|
});
|
|
160
|
-
if (userID != null) {
|
|
161
|
-
await authedFunction({
|
|
162
|
-
method: 'post',
|
|
163
|
-
url: getUrl(values.serviceKey, 'handleGroupInvite'),
|
|
164
|
-
data: {
|
|
165
|
-
userID,
|
|
166
|
-
inviteID: invite.Id,
|
|
167
|
-
action
|
|
168
|
-
}
|
|
169
|
-
}).then(res => {
|
|
170
|
-
if (action) {
|
|
171
|
-
dispatch({
|
|
172
|
-
type: CIRCLES_LOADED,
|
|
173
|
-
payload: [res.data.group]
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
}).catch(err => {
|
|
177
|
-
console.log('handle event invite fail', err);
|
|
178
|
-
});
|
|
179
|
-
} else {
|
|
180
|
-
console.log('no user');
|
|
181
|
-
}
|
|
182
151
|
};
|
|
183
152
|
};
|
|
184
153
|
export const joinGroup = group => {
|
|
@@ -238,31 +207,17 @@ export const deleteGroup = group => {
|
|
|
238
207
|
type: CIRCLES_LOADED,
|
|
239
208
|
payload: [group]
|
|
240
209
|
});
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
console.log('FAIL AT FETCH TOKEN -- Silent Upate');
|
|
210
|
+
await authedFunction({
|
|
211
|
+
method: 'post',
|
|
212
|
+
url: getUrl(values.serviceKey, 'deleteUsersGroup'),
|
|
213
|
+
data: {
|
|
214
|
+
userID,
|
|
215
|
+
group
|
|
216
|
+
},
|
|
217
|
+
headers: {
|
|
218
|
+
authorization: token
|
|
219
|
+
}
|
|
252
220
|
});
|
|
253
|
-
if (userID != null && token != null) {
|
|
254
|
-
await authedFunction({
|
|
255
|
-
method: 'post',
|
|
256
|
-
url: getUrl(values.serviceKey, 'deleteUsersGroup'),
|
|
257
|
-
data: {
|
|
258
|
-
userID,
|
|
259
|
-
group
|
|
260
|
-
},
|
|
261
|
-
headers: {
|
|
262
|
-
authorization: token
|
|
263
|
-
}
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
221
|
};
|
|
267
222
|
};
|
|
268
223
|
export const editGroup = (group, usersToAdd, usersToRemove) => {
|
|
@@ -280,37 +235,17 @@ export const editGroup = (group, usersToAdd, usersToRemove) => {
|
|
|
280
235
|
type: CIRCLES_LOADED,
|
|
281
236
|
payload: [localGroup]
|
|
282
237
|
});
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
}).catch(() => {
|
|
295
|
-
console.log('FAIL AT FETCH TOKEN -- Silent Upate');
|
|
296
|
-
});
|
|
297
|
-
if (userID != null && token != null) {
|
|
298
|
-
try {
|
|
299
|
-
await authedFunction({
|
|
300
|
-
method: 'post',
|
|
301
|
-
url: getUrl(values.serviceKey, 'editUsersGroup'),
|
|
302
|
-
data: {
|
|
303
|
-
userID,
|
|
304
|
-
group,
|
|
305
|
-
usersToAdd,
|
|
306
|
-
usersToRemove
|
|
307
|
-
},
|
|
308
|
-
headers: {
|
|
309
|
-
authorization: token
|
|
310
|
-
}
|
|
311
|
-
});
|
|
312
|
-
} catch (e) {}
|
|
313
|
-
}
|
|
238
|
+
try {
|
|
239
|
+
await authedFunction({
|
|
240
|
+
method: 'post',
|
|
241
|
+
url: getUrl(values.serviceKey, 'editUsersGroup'),
|
|
242
|
+
data: {
|
|
243
|
+
group,
|
|
244
|
+
usersToAdd,
|
|
245
|
+
usersToRemove
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
} catch (e) {}
|
|
314
249
|
};
|
|
315
250
|
};
|
|
316
251
|
//# sourceMappingURL=GroupActions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_","circleActions","getUrl","getSessionTokenAWS","getSessionUidAWS","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","userEyeDee","catch","console","log","sessionToken","err","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","headers","authorization","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 { getSessionTokenAWS, getSessionUidAWS, 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 /* if (events != null && events.length > 0) {\n dispatch({\n type: UPDATE_EVENT_TIMEFRAME,\n payload: null\n });\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 let userID = null;\n let token = null;\n await getSessionUidAWS()\n .then(userEyeDee => {\n userID = userEyeDee;\n })\n .catch(() => {\n console.log('FAIL AT FETCH USER ID -- Silent Upate');\n });\n await getSessionTokenAWS('Bearer')\n .then(sessionToken => {\n token = sessionToken;\n })\n .catch(() => {\n console.log('FAIL AT FETCH TOKEN -- Silent Upate');\n });\n if (userID != null && token != null) {\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};\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 let userID = null;\n await getSessionUidAWS()\n .then(userEyeDee => {\n userID = userEyeDee;\n })\n .catch(() => {\n console.log('FAIL AT FETCH USER ID -- Silent Upate');\n });\n\n if (userID != null) {\n await authedFunction({\n method: 'post',\n url: getUrl(values.serviceKey, 'handleGroupInvite'),\n data: {\n userID,\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 } else {\n console.log('no user');\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 let userID = null;\n let token = null;\n await getSessionUidAWS()\n .then(userEyeDee => {\n userID = userEyeDee;\n })\n .catch(() => {\n console.log('FAIL AT FETCH USER ID -- Silent Upate');\n });\n await getSessionTokenAWS('Bearer')\n .then(sessionToken => {\n token = sessionToken;\n })\n .catch(() => {\n console.log('FAIL AT FETCH TOKEN -- Silent Upate');\n });\n if (userID != null && token != null) {\n await authedFunction({\n method: 'post',\n url: getUrl(values.serviceKey, 'deleteUsersGroup'),\n data: {\n userID,\n group,\n },\n headers: {\n authorization: token,\n },\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 // save to database\n let userID = null;\n let token = null;\n await getSessionUidAWS()\n .then(userEyeDee => {\n userID = userEyeDee;\n })\n .catch(() => {\n console.log('FAIL AT FETCH USER ID -- Silent Upate');\n });\n await getSessionTokenAWS('Bearer')\n .then(sessionToken => {\n token = sessionToken;\n })\n .catch(() => {\n console.log('FAIL AT FETCH TOKEN -- Silent Upate');\n });\n if (userID != null && token != null) {\n try {\n await authedFunction({\n method: 'post',\n url: getUrl(values.serviceKey, 'editUsersGroup'),\n data: {\n userID,\n group,\n usersToAdd,\n usersToRemove,\n },\n headers: {\n authorization: token,\n },\n });\n } catch (e) {}\n }\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","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","headers","authorization","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: getUrl(values.serviceKey, 'deleteUsersGroup'),\n data: {\n userID,\n group,\n },\n headers: {\n authorization: token,\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,QACrB,SAAS;AAChB,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,OAAO,MAAMC,QAAQ,IAAI;IACvB,MAAMC,GAAG,GAAG,MAAMf,aAAa,CAACgB,SAAS,CAAC,CAAC;IAC3CF,QAAQ,CAAC;MACPG,IAAI,EAAEZ,uBAAuB;MAC7Ba,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,EAAER,cAAc;MACpBS,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,EAAEb,8BAA8B;MACpCc,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,EAAEZ,uBAAuB;MAC7Ba,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,CAACf,CAAC,CAAC6B,OAAO,CAACN,MAAM,CAAC,EAAE;MACtB,IAAIO,OAAO,GAAG,CAAC;MACfP,MAAM,CAACQ,OAAO,CAACC,OAAO,IAAI;QACxB,IAAI,CAACA,OAAO,CAACC,OAAO,IAAI,CAACjC,CAAC,CAACkC,WAAW,CAACF,OAAO,CAACG,MAAM,CAAC,IAAI,CAACnC,CAAC,CAAC6B,OAAO,CAACG,OAAO,CAACG,MAAM,CAAC,IAAI,CAACnC,CAAC,CAACkC,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,EAAEP,oBAAoB;QAC1BQ,OAAO,EAAEW;MACX,CAAC,CAAC;IACJ;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMM,iBAAiB,GAAGA,CAACC,OAAO,EAAET,MAAM,EAAEU,SAAS,KAAK;EAC/DrC,aAAa,CAACsC,gBAAgB,CAACF,OAAO,EAAET,MAAM,CAAC;EAC/C,OAAO;IACLV,IAAI,EAAEN,0BAA0B;IAChCO,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,EAAET,cAAc;MACpBU,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,EAAEV,qBAAqB;MAC3BW,OAAO,EAAEwB;IACX,CAAC,CAAC;EACJ,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAM;EACnC,OAAO,MAAM7B,QAAQ,IAAI;IACvBd,aAAa,CACV2C,eAAe,CAACC,MAAM,EAAEC,KAAK,CAAC,CAC9BC,IAAI,CAAC/B,GAAG,IAAI;MACXD,QAAQ,CAAC;QACPG,IAAI,EAAEV,qBAAqB;QAC3BW,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,GAAGxD,CAAC,CAACyD,KAAK,CAACJ,MAAM,CAAC;EACjC,MAAMK,SAAS,GAAG1D,CAAC,CAAC2D,SAAS,CAACN,MAAM,CAAC;EACrCK,SAAS,CAACzB,OAAO,GAAG,IAAI;EACxB,OAAO,MAAMlB,QAAQ,IAAI;IACvBA,QAAQ,CAAC;MACPG,IAAI,EAAEX,sBAAsB;MAC5BY,OAAO,EAAE,CAACuC,SAAS;IACrB,CAAC,CAAC;IACF,IAAIJ,MAAM,EAAE;MACVE,SAAS,CAACI,cAAc,GAAG,IAAI;MAC/B,MAAMC,GAAG,GAAG7D,CAAC,CAAC8D,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,EAAER,cAAc;QACpBS,OAAO,EAAE,CAACqC,SAAS;MACrB,CAAC,CAAC;MACFsB,UAAU,CAAC,MAAM;QACf1E,iBAAiB,CAAC2E,QAAQ,CAAClE,MAAM,CAACmE,gBAAgB,EAAE;UAClDX,IAAI;UACJY,GAAG,EAAE,IAAI;UACTC,IAAI,EAAErE,MAAM,CAACsE;QACf,CAAC,CAAC;MACJ,CAAC,EAAE,GAAG,CAAC;IACT;IAEA,MAAMhF,cAAc,CAAC;MACnBiF,MAAM,EAAE,MAAM;MACdC,GAAG,EAAEnF,MAAM,CAACW,MAAM,CAACyE,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,EAAER,cAAc;UACpBS,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,GAAGzF,CAAC,CAACyD,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,EAAER,cAAc;MACpBS,OAAO,EAAE,CAACsE,SAAS;IACrB,CAAC,CAAC;IACFX,UAAU,CAAC,MAAM;MACf1E,iBAAiB,CAAC2E,QAAQ,CAAClE,MAAM,CAACmE,gBAAgB,EAAE;QAClDX,IAAI;QACJY,GAAG,EAAE,IAAI;QACTC,IAAI,EAAErE,MAAM,CAACsE;MACf,CAAC,CAAC;IACJ,CAAC,EAAE,GAAG,CAAC;IAEP,MAAMlF,aAAa,CAChBuF,SAAS,CAAC/C,KAAK,CAAC8B,EAAE,CAAC,CACnBxB,IAAI,CAAC/B,GAAG,IAAI;MACXD,QAAQ,CAAC;QACPG,IAAI,EAAER,cAAc;QACpBS,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,GAAG3F,CAAC,CAAC2D,SAAS,CAAClB,KAAK,CAAC;EACnCkD,QAAQ,CAAC1D,OAAO,GAAG,IAAI;EACvB,OAAO,MAAMlB,QAAQ,IAAI;IACvBA,QAAQ,CAAC;MACPG,IAAI,EAAER,cAAc;MACpBS,OAAO,EAAE,CAACwE,QAAQ;IACpB,CAAC,CAAC;IACF,MAAMxF,cAAc,CAAC;MACnBiF,MAAM,EAAE,MAAM;MACdC,GAAG,EAAEnF,MAAM,CAACW,MAAM,CAACyE,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,EAAER,cAAc;MACpBS,OAAO,EAAE,CAACsB,KAAK;IACjB,CAAC,CAAC;IAEF,MAAMtC,cAAc,CAAC;MACnBiF,MAAM,EAAE,MAAM;MACdC,GAAG,EAAEnF,MAAM,CAACW,MAAM,CAACyE,UAAU,EAAE,kBAAkB,CAAC;MAClDlE,IAAI,EAAE;QACJyB,MAAM;QACNJ;MACF,CAAC;MACDqD,OAAO,EAAE;QACPC,aAAa,EAAEjD;MACjB;IACF,CAAC,CAAC;EACJ,CAAC;AACH,CAAC;AAED,OAAO,MAAMkD,SAAS,GAAGA,CAACvD,KAAK,EAAEwD,UAAU,EAAEC,aAAa,KAAK;EAC7D,OAAO,MAAMnF,QAAQ,IAAI;IACvB;IACA,MAAMoF,UAAU,GAAG;MAAE,GAAG1D;IAAM,CAAC;IAC/B0D,UAAU,CAAChC,QAAQ,GAAGnE,CAAC,CAACoG,MAAM,CAAC,CAAC,GAAGD,UAAU,CAAChC,QAAQ,EAAE,GAAG8B,UAAU,CAAC,EAAEI,IAAI,IAAI;MAC9E,OAAO,CAACrG,CAAC,CAACsG,IAAI,CAACJ,aAAa,EAAEtE,MAAM,IAAI;QACtC,OAAOyE,IAAI,CAACzE,MAAM,KAAKA,MAAM;MAC/B,CAAC,CAAC;IACJ,CAAC,CAAC;IACFb,QAAQ,CAAC;MACPG,IAAI,EAAER,cAAc;MACpBS,OAAO,EAAE,CAACgF,UAAU;IACtB,CAAC,CAAC;IAEF,IAAI;MACF,MAAMhG,cAAc,CAAC;QACnBiF,MAAM,EAAE,MAAM;QACdC,GAAG,EAAEnF,MAAM,CAACW,MAAM,CAACyE,UAAU,EAAE,gBAAgB,CAAC;QAChDlE,IAAI,EAAE;UACJqB,KAAK;UACLwD,UAAU;UACVC;QACF;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOK,CAAC,EAAE,CAAC;EACf,CAAC;AACH,CAAC"}
|
|
@@ -426,7 +426,7 @@ class Chat extends Component {
|
|
|
426
426
|
}, /*#__PURE__*/React.createElement(DropDownItem, {
|
|
427
427
|
text: `View ${values.entityName}`,
|
|
428
428
|
onPress: this.goToGroupInfo.bind(this)
|
|
429
|
-
}), (this.isGroupOwner(this.props.user.uid) || this.isAdmin(this.props.user.uid)) && /*#__PURE__*/React.createElement(DropDownItem, {
|
|
429
|
+
}), (this.isGroupOwner(this.props.user.uid) || this.isAdmin(this.props.user.uid)) && !this.isPrivateChat() && /*#__PURE__*/React.createElement(DropDownItem, {
|
|
430
430
|
text: 'Manage',
|
|
431
431
|
onPress: this.startEdit.bind(this)
|
|
432
432
|
}), /*#__PURE__*/React.createElement(DropDownItem, {
|
|
@@ -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","isGroupOwner","isAdmin","setState","settingsOpen","alert","text","onPress","closeSettings","style","cancelable","currentUser","_id","chatUserKey","chatKey","onPressBack","_isMounted","MIN_COMPOSER_HEIGHT","select","ios","android","interval","uid","name","avatar","isUndefined","profilePic","chat","messages","keyboardOpen","newLoading","showDeleteConfirm","popUpType","muteChat","muteSubmitting","hasInvite","inviteActioned","inviteActionPopup","invitePending","componentDidMount","new","prepareChatPage","UNSAFE_componentWillReceiveProps","nextProps","prepareNewProps","componentWillUnmount","clearInterval","key","chatName","title","newGroup","forEach","groups","Muted","statee","reducerMessages","newStates","firstMessages","message","sendMessage","chats","blockedUserKeys","includes","newGrop2","muteTest","muteGroup","then","res","data","catch","err","onSend","groupLast","lastMessage","cloneDeep","GroupId","RowId","createdAt","utc","valueOf","mergeMessages","CreatorId","Creator","getChatName","userNames","without","join","getMaxTime","maxMessage","maxBy","m","fetchMessages","iteration","getMessages","setTimeout","fetchSingleMessage","timestamp","receivedMessages","newMessages","sortBy","concat","uniqBy","reverse","setInterval","regularFetch","bind","goToGroupInfo","screenCircleDetails","startEdit","screenEditCircle","onOpenDeletePrompt","type","onCancelDelete","onConfirmDelete","renderConfirmPopup","createElement","visible","onConfirm","onCancel","entityName","render","flex","disabled","styles","container","top","right","width","zIndex","elevation","textStyle","color","isPrivateChat","last","leftIcon","onPressLeft","rightIconType","rightIcon","onPressRight","toggleSettings","getTitle","onTextPress","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 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 return (\n <ConfirmPopup\n visible={this.state.showDeleteConfirm}\n onConfirm={this.onConfirmDelete.bind(this)}\n onCancel={this.onCancelDelete.bind(this)}\n text={`Are you sure you want to ${this.state.popUpType} this ${values.entityName}?`}\n />\n );\n }\n\n render() {\n return (\n <TouchableWithoutFeedback onPress={this.closeSettings} style={{ flex: 1 }} disabled={!this.state.settingsOpen}>\n <View style={styles.container}>\n <DropDownMenu\n visible={this.state.settingsOpen}\n style={{ top: StatusBarHeight(50), right: 16, width: 150, zIndex: 300, elevation: 15 }}\n >\n <DropDownItem text={`View ${values.entityName}`} onPress={this.goToGroupInfo.bind(this)} />\n {(this.isGroupOwner(this.props.user.uid) || this.isAdmin(this.props.user.uid)) && (\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.isGroupOwner(this.props.user.uid) && !this.isPrivateChat() && (\n <DropDownItem last text={'Leave'} onPress={this.onOpenDeletePrompt.bind(this, 'leave')} />\n )}\n {this.isGroupOwner(this.props.user.uid) && !this.isPrivateChat() && (\n <DropDownItem last text={'Delete'} onPress={this.onOpenDeletePrompt.bind(this, 'delete')} />\n )}\n </DropDownMenu>\n <Header\n leftIcon=\"angle-left\"\n onPressLeft={this.onPressBack.bind(this)}\n rightIconType=\"pluss\"\n rightIcon=\"more_options\"\n onPressRight={this.toggleSettings.bind(this)}\n text={this.getTitle()}\n onTextPress={this.goToGroupInfo.bind(this)}\n />\n\n <PlussChat messages={this.chatKey ? this.state.messages : []} onSend={this.onSend.bind(this)} />\n {this.renderConfirmPopup()}\n </View>\n </TouchableWithoutFeedback>\n );\n }\n}\n\nconst styles = {\n container: {\n flex: 1,\n backgroundColor: '#fff',\n },\n send: {\n color: '#fff',\n fontSize: 15,\n width: 30,\n textAlign: 'center',\n },\n setting: {\n fontSize: 18,\n },\n settingContainer: {\n marginLeft: 20,\n },\n settingDropDown: {\n height: 0,\n width: 'auto',\n position: 'absolute',\n right: 2,\n top: 62,\n zIndex: 2,\n elevation: 2,\n paddingTop: 0,\n overflow: 'hidden',\n },\n settingDropDownOpen: {\n height: 'auto',\n },\n dropDownOuterContainer: {\n paddingTop: 9,\n overflow: 'visible',\n backgroundColor: 'transparent',\n margin: 5,\n },\n dropDownInnerContainer: {\n flexDirection: 'column',\n backgroundColor: '#fcfcfc',\n borderRadius: 3,\n paddingBottom: 10,\n paddingHorizontal: 15,\n overflow: 'visible',\n shadowColor: '#000',\n shadowOffset: { width: 1, height: 1 },\n shadowOpacity: 0.3,\n ...Platform.select({\n android: {\n borderWidth: 1,\n borderColor: 'rgba(230, 230, 230, .4)',\n },\n }),\n },\n dropDownItem: {\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: 10,\n },\n dropDownItem_Text: {\n fontFamily: 'sf-regular',\n fontSize: 15,\n lineHeight: 22,\n color: TEXT_DARK,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n reducerMessages: state[values.reducerKeyChats].messages,\n chats: state[values.reducerKeyChats].list,\n chatKey: state[values.reducerKeyChats].selectedChatKey,\n blockedUserKeys: state[values.reducerKeyChats].blockedUsers,\n user: state.user,\n groups: state[values.reducerKey].list,\n colourBrandingMain: getMainBrandingColourFromState(state),\n colourBrandingLight: getLightBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {\n updateUnreadCounter,\n getGroupInvites,\n handleGroupInvite,\n updateGroups,\n softLeaveGroup,\n deleteGroup,\n createChat,\n disconnectChat,\n blockUser,\n deleteChat,\n clearGroupCounter,\n updateChatMessages,\n})(Chat);\n"],"mappings":"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"}
|
|
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","isGroupOwner","isAdmin","setState","settingsOpen","alert","text","onPress","closeSettings","style","cancelable","currentUser","_id","chatUserKey","chatKey","onPressBack","_isMounted","MIN_COMPOSER_HEIGHT","select","ios","android","interval","uid","name","avatar","isUndefined","profilePic","chat","messages","keyboardOpen","newLoading","showDeleteConfirm","popUpType","muteChat","muteSubmitting","hasInvite","inviteActioned","inviteActionPopup","invitePending","componentDidMount","new","prepareChatPage","UNSAFE_componentWillReceiveProps","nextProps","prepareNewProps","componentWillUnmount","clearInterval","key","chatName","title","newGroup","forEach","groups","Muted","statee","reducerMessages","newStates","firstMessages","message","sendMessage","chats","blockedUserKeys","includes","newGrop2","muteTest","muteGroup","then","res","data","catch","err","onSend","groupLast","lastMessage","cloneDeep","GroupId","RowId","createdAt","utc","valueOf","mergeMessages","CreatorId","Creator","getChatName","userNames","without","join","getMaxTime","maxMessage","maxBy","m","fetchMessages","iteration","getMessages","setTimeout","fetchSingleMessage","timestamp","receivedMessages","newMessages","sortBy","concat","uniqBy","reverse","setInterval","regularFetch","bind","goToGroupInfo","screenCircleDetails","startEdit","screenEditCircle","onOpenDeletePrompt","type","onCancelDelete","onConfirmDelete","renderConfirmPopup","createElement","visible","onConfirm","onCancel","entityName","render","flex","disabled","styles","container","top","right","width","zIndex","elevation","isPrivateChat","textStyle","color","last","leftIcon","onPressLeft","rightIconType","rightIcon","onPressRight","toggleSettings","getTitle","onTextPress","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 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 return (\n <ConfirmPopup\n visible={this.state.showDeleteConfirm}\n onConfirm={this.onConfirmDelete.bind(this)}\n onCancel={this.onCancelDelete.bind(this)}\n text={`Are you sure you want to ${this.state.popUpType} this ${values.entityName}?`}\n />\n );\n }\n\n render() {\n return (\n <TouchableWithoutFeedback onPress={this.closeSettings} style={{ flex: 1 }} disabled={!this.state.settingsOpen}>\n <View style={styles.container}>\n <DropDownMenu\n visible={this.state.settingsOpen}\n style={{ top: StatusBarHeight(50), right: 16, width: 150, zIndex: 300, elevation: 15 }}\n >\n <DropDownItem text={`View ${values.entityName}`} onPress={this.goToGroupInfo.bind(this)} />\n {(this.isGroupOwner(this.props.user.uid) || 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.isGroupOwner(this.props.user.uid) && !this.isPrivateChat() && (\n <DropDownItem last text={'Leave'} onPress={this.onOpenDeletePrompt.bind(this, 'leave')} />\n )}\n {this.isGroupOwner(this.props.user.uid) && !this.isPrivateChat() && (\n <DropDownItem last text={'Delete'} onPress={this.onOpenDeletePrompt.bind(this, 'delete')} />\n )}\n </DropDownMenu>\n <Header\n leftIcon=\"angle-left\"\n onPressLeft={this.onPressBack.bind(this)}\n rightIconType=\"pluss\"\n rightIcon=\"more_options\"\n onPressRight={this.toggleSettings.bind(this)}\n text={this.getTitle()}\n onTextPress={this.goToGroupInfo.bind(this)}\n />\n\n <PlussChat messages={this.chatKey ? this.state.messages : []} onSend={this.onSend.bind(this)} />\n {this.renderConfirmPopup()}\n </View>\n </TouchableWithoutFeedback>\n );\n }\n}\n\nconst styles = {\n container: {\n flex: 1,\n backgroundColor: '#fff',\n },\n send: {\n color: '#fff',\n fontSize: 15,\n width: 30,\n textAlign: 'center',\n },\n setting: {\n fontSize: 18,\n },\n settingContainer: {\n marginLeft: 20,\n },\n settingDropDown: {\n height: 0,\n width: 'auto',\n position: 'absolute',\n right: 2,\n top: 62,\n zIndex: 2,\n elevation: 2,\n paddingTop: 0,\n overflow: 'hidden',\n },\n settingDropDownOpen: {\n height: 'auto',\n },\n dropDownOuterContainer: {\n paddingTop: 9,\n overflow: 'visible',\n backgroundColor: 'transparent',\n margin: 5,\n },\n dropDownInnerContainer: {\n flexDirection: 'column',\n backgroundColor: '#fcfcfc',\n borderRadius: 3,\n paddingBottom: 10,\n paddingHorizontal: 15,\n overflow: 'visible',\n shadowColor: '#000',\n shadowOffset: { width: 1, height: 1 },\n shadowOpacity: 0.3,\n ...Platform.select({\n android: {\n borderWidth: 1,\n borderColor: 'rgba(230, 230, 230, .4)',\n },\n }),\n },\n dropDownItem: {\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: 10,\n },\n dropDownItem_Text: {\n fontFamily: 'sf-regular',\n fontSize: 15,\n lineHeight: 22,\n color: TEXT_DARK,\n },\n};\n\nconst mapStateToProps = state => {\n return {\n reducerMessages: state[values.reducerKeyChats].messages,\n chats: state[values.reducerKeyChats].list,\n chatKey: state[values.reducerKeyChats].selectedChatKey,\n blockedUserKeys: state[values.reducerKeyChats].blockedUsers,\n user: state.user,\n groups: state[values.reducerKey].list,\n colourBrandingMain: getMainBrandingColourFromState(state),\n colourBrandingLight: getLightBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {\n updateUnreadCounter,\n getGroupInvites,\n handleGroupInvite,\n updateGroups,\n softLeaveGroup,\n deleteGroup,\n createChat,\n disconnectChat,\n blockUser,\n deleteChat,\n clearGroupCounter,\n updateChatMessages,\n})(Chat);\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plusscommunities/pluss-circles-app",
|
|
3
|
-
"version": "6.0.4
|
|
3
|
+
"version": "6.0.4",
|
|
4
4
|
"description": "Extension package to enable circles on Pluss Communities Platform",
|
|
5
5
|
"main": "dist/module/index.js",
|
|
6
6
|
"module": "dist/module/index.js",
|
|
@@ -15,9 +15,6 @@
|
|
|
15
15
|
"patch": "npm version patch",
|
|
16
16
|
"betaupload": "npm run build && npm publish --access public --tag beta",
|
|
17
17
|
"betaupload:p": "npm run betapatch && npm run betaupload",
|
|
18
|
-
"authpatch": "npm version prepatch --preid=auth",
|
|
19
|
-
"authupload": "npm run build && npm publish --access public --tag auth && rm -rf node_modules",
|
|
20
|
-
"authupload:p": "npm run authpatch && npm run authupload",
|
|
21
18
|
"upload": "npm run build && npm publish --access public",
|
|
22
19
|
"upload:p": "npm run patch && npm run upload",
|
|
23
20
|
"copy:add": "run(){ ext=${1:-default}; test -f src/values.config.$ext.js || cp src/values.config.default.js src/values.config.$ext.js; }; run",
|
|
@@ -25,14 +22,13 @@
|
|
|
25
22
|
"copy:set": "run(){ target='\\@plusscommunities\\/pluss-circles-app'; ext=${1:-default}; [ $ext == 'default' ] && replace=$target || replace=$target'-'$ext; echo 'Setting target to '$replace; test -f src/values.config.$ext.js && cp -f src/values.config.$ext.js src/values.config.js; sed -i '' -e 's/'$target'.*\"/'$replace'\"/g' package.json; }; run",
|
|
26
23
|
"copy:uploadnopatch": "for file in `ls ./src/values.config.*.js`; do dup=`echo $file | sed 's/.*values\\.config\\.\\(.*\\)\\.js/\\1/'`; npm run copy:set $dup; npm run upload; done; npm run copy:set;",
|
|
27
24
|
"copy:upload": "npm run patch; npm run copy:uploadnopatch;",
|
|
28
|
-
"copy:betaupload": "npm run betapatch; for file in `ls ./src/values.config.*.js`; do dup=`echo $file | sed 's/.*values\\.config\\.\\(.*\\)\\.js/\\1/'`; npm run copy:set $dup; npm run betaupload; done; npm run copy:set;"
|
|
29
|
-
"copy:authupload": "npm run authpatch; for file in `ls ./src/values.config.*.js`; do dup=`echo $file | sed 's/.*values\\.config\\.\\(.*\\)\\.js/\\1/'`; npm run copy:set $dup; npm run authupload; done; npm run copy:set;"
|
|
25
|
+
"copy:betaupload": "npm run betapatch; for file in `ls ./src/values.config.*.js`; do dup=`echo $file | sed 's/.*values\\.config\\.\\(.*\\)\\.js/\\1/'`; npm run copy:set $dup; npm run betaupload; done; npm run copy:set;"
|
|
30
26
|
},
|
|
31
27
|
"author": "Thorbjorn Kappel Davis",
|
|
32
28
|
"license": "ISC",
|
|
33
29
|
"dependencies": {},
|
|
34
30
|
"peerDependencies": {
|
|
35
|
-
"@plusscommunities/pluss-core-app": "^6.0.
|
|
31
|
+
"@plusscommunities/pluss-core-app": "^6.0.2",
|
|
36
32
|
"axios": "^1.6.8",
|
|
37
33
|
"lodash": "^4.17.4",
|
|
38
34
|
"moment": "^2.30.1",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
2
|
import { circleActions } from '../webapi';
|
|
3
3
|
import { getUrl } from '../webapi/helper';
|
|
4
|
-
import {
|
|
4
|
+
import { authedFunction } from '../js';
|
|
5
5
|
import NavigationService from '../js/NavigationService';
|
|
6
6
|
import {
|
|
7
7
|
PUBLIC_CIRCLES_LOAD_INITIALISE,
|
|
@@ -84,12 +84,6 @@ export const createGroup = group => {
|
|
|
84
84
|
type: CREATED_CIRCLE,
|
|
85
85
|
payload: group,
|
|
86
86
|
});
|
|
87
|
-
/* if (events != null && events.length > 0) {
|
|
88
|
-
dispatch({
|
|
89
|
-
type: UPDATE_EVENT_TIMEFRAME,
|
|
90
|
-
payload: null
|
|
91
|
-
});
|
|
92
|
-
} */
|
|
93
87
|
};
|
|
94
88
|
};
|
|
95
89
|
|
|
@@ -104,36 +98,18 @@ export const updateInvites = invites => {
|
|
|
104
98
|
|
|
105
99
|
export const getGroupInvites = () => {
|
|
106
100
|
return async dispatch => {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
console.log('FAIL AT FETCH USER ID -- Silent Upate');
|
|
115
|
-
});
|
|
116
|
-
await getSessionTokenAWS('Bearer')
|
|
117
|
-
.then(sessionToken => {
|
|
118
|
-
token = sessionToken;
|
|
101
|
+
circleActions
|
|
102
|
+
.getGroupInvites(userID, token)
|
|
103
|
+
.then(res => {
|
|
104
|
+
dispatch({
|
|
105
|
+
type: CIRCLE_INVITES_LOADED,
|
|
106
|
+
payload: res.data.Items,
|
|
107
|
+
});
|
|
119
108
|
})
|
|
120
|
-
.catch(
|
|
121
|
-
console.log('
|
|
109
|
+
.catch(err => {
|
|
110
|
+
console.log('fetch circle invites FAIL');
|
|
111
|
+
console.log(err);
|
|
122
112
|
});
|
|
123
|
-
if (userID != null && token != null) {
|
|
124
|
-
circleActions
|
|
125
|
-
.getGroupInvites(userID, token)
|
|
126
|
-
.then(res => {
|
|
127
|
-
dispatch({
|
|
128
|
-
type: CIRCLE_INVITES_LOADED,
|
|
129
|
-
payload: res.data.Items,
|
|
130
|
-
});
|
|
131
|
-
})
|
|
132
|
-
.catch(err => {
|
|
133
|
-
console.log('fetch circle invites FAIL');
|
|
134
|
-
console.log(err);
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
113
|
};
|
|
138
114
|
};
|
|
139
115
|
|
|
@@ -176,39 +152,25 @@ export const handleGroupInvite = (invite, action, tempUserId) => {
|
|
|
176
152
|
}, 100);
|
|
177
153
|
}
|
|
178
154
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
.
|
|
182
|
-
|
|
155
|
+
await authedFunction({
|
|
156
|
+
method: 'post',
|
|
157
|
+
url: getUrl(values.serviceKey, 'handleGroupInvite'),
|
|
158
|
+
data: {
|
|
159
|
+
inviteID: invite.Id,
|
|
160
|
+
action,
|
|
161
|
+
},
|
|
162
|
+
})
|
|
163
|
+
.then(res => {
|
|
164
|
+
if (action) {
|
|
165
|
+
dispatch({
|
|
166
|
+
type: CIRCLES_LOADED,
|
|
167
|
+
payload: [res.data.group],
|
|
168
|
+
});
|
|
169
|
+
}
|
|
183
170
|
})
|
|
184
|
-
.catch(
|
|
185
|
-
console.log('
|
|
171
|
+
.catch(err => {
|
|
172
|
+
console.log('handle event invite fail', err);
|
|
186
173
|
});
|
|
187
|
-
|
|
188
|
-
if (userID != null) {
|
|
189
|
-
await authedFunction({
|
|
190
|
-
method: 'post',
|
|
191
|
-
url: getUrl(values.serviceKey, 'handleGroupInvite'),
|
|
192
|
-
data: {
|
|
193
|
-
userID,
|
|
194
|
-
inviteID: invite.Id,
|
|
195
|
-
action,
|
|
196
|
-
},
|
|
197
|
-
})
|
|
198
|
-
.then(res => {
|
|
199
|
-
if (action) {
|
|
200
|
-
dispatch({
|
|
201
|
-
type: CIRCLES_LOADED,
|
|
202
|
-
payload: [res.data.group],
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
})
|
|
206
|
-
.catch(err => {
|
|
207
|
-
console.log('handle event invite fail', err);
|
|
208
|
-
});
|
|
209
|
-
} else {
|
|
210
|
-
console.log('no user');
|
|
211
|
-
}
|
|
212
174
|
};
|
|
213
175
|
};
|
|
214
176
|
|
|
@@ -277,35 +239,17 @@ export const deleteGroup = group => {
|
|
|
277
239
|
payload: [group],
|
|
278
240
|
});
|
|
279
241
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
userID
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
token = sessionToken;
|
|
292
|
-
})
|
|
293
|
-
.catch(() => {
|
|
294
|
-
console.log('FAIL AT FETCH TOKEN -- Silent Upate');
|
|
295
|
-
});
|
|
296
|
-
if (userID != null && token != null) {
|
|
297
|
-
await authedFunction({
|
|
298
|
-
method: 'post',
|
|
299
|
-
url: getUrl(values.serviceKey, 'deleteUsersGroup'),
|
|
300
|
-
data: {
|
|
301
|
-
userID,
|
|
302
|
-
group,
|
|
303
|
-
},
|
|
304
|
-
headers: {
|
|
305
|
-
authorization: token,
|
|
306
|
-
},
|
|
307
|
-
});
|
|
308
|
-
}
|
|
242
|
+
await authedFunction({
|
|
243
|
+
method: 'post',
|
|
244
|
+
url: getUrl(values.serviceKey, 'deleteUsersGroup'),
|
|
245
|
+
data: {
|
|
246
|
+
userID,
|
|
247
|
+
group,
|
|
248
|
+
},
|
|
249
|
+
headers: {
|
|
250
|
+
authorization: token,
|
|
251
|
+
},
|
|
252
|
+
});
|
|
309
253
|
};
|
|
310
254
|
};
|
|
311
255
|
|
|
@@ -323,39 +267,16 @@ export const editGroup = (group, usersToAdd, usersToRemove) => {
|
|
|
323
267
|
payload: [localGroup],
|
|
324
268
|
});
|
|
325
269
|
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
});
|
|
336
|
-
await getSessionTokenAWS('Bearer')
|
|
337
|
-
.then(sessionToken => {
|
|
338
|
-
token = sessionToken;
|
|
339
|
-
})
|
|
340
|
-
.catch(() => {
|
|
341
|
-
console.log('FAIL AT FETCH TOKEN -- Silent Upate');
|
|
270
|
+
try {
|
|
271
|
+
await authedFunction({
|
|
272
|
+
method: 'post',
|
|
273
|
+
url: getUrl(values.serviceKey, 'editUsersGroup'),
|
|
274
|
+
data: {
|
|
275
|
+
group,
|
|
276
|
+
usersToAdd,
|
|
277
|
+
usersToRemove,
|
|
278
|
+
},
|
|
342
279
|
});
|
|
343
|
-
|
|
344
|
-
try {
|
|
345
|
-
await authedFunction({
|
|
346
|
-
method: 'post',
|
|
347
|
-
url: getUrl(values.serviceKey, 'editUsersGroup'),
|
|
348
|
-
data: {
|
|
349
|
-
userID,
|
|
350
|
-
group,
|
|
351
|
-
usersToAdd,
|
|
352
|
-
usersToRemove,
|
|
353
|
-
},
|
|
354
|
-
headers: {
|
|
355
|
-
authorization: token,
|
|
356
|
-
},
|
|
357
|
-
});
|
|
358
|
-
} catch (e) {}
|
|
359
|
-
}
|
|
280
|
+
} catch (e) {}
|
|
360
281
|
};
|
|
361
282
|
};
|
|
@@ -458,7 +458,7 @@ class Chat extends Component {
|
|
|
458
458
|
style={{ top: StatusBarHeight(50), right: 16, width: 150, zIndex: 300, elevation: 15 }}
|
|
459
459
|
>
|
|
460
460
|
<DropDownItem text={`View ${values.entityName}`} onPress={this.goToGroupInfo.bind(this)} />
|
|
461
|
-
{(this.isGroupOwner(this.props.user.uid) || this.isAdmin(this.props.user.uid)) && (
|
|
461
|
+
{(this.isGroupOwner(this.props.user.uid) || this.isAdmin(this.props.user.uid)) && !this.isPrivateChat() && (
|
|
462
462
|
<DropDownItem text={'Manage'} onPress={this.startEdit.bind(this)} />
|
|
463
463
|
)}
|
|
464
464
|
<DropDownItem
|