@selfcommunity/react-ui 0.7.9-alpha.15 → 0.7.9-alpha.17
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/lib/cjs/components/ChangeGroupPicture/ChangeGroupPicture.js +13 -10
- package/lib/cjs/components/Composer/Composer.js +1 -1
- package/lib/cjs/components/Composer/Layer/AudienceLayer/AudienceLayer.js +4 -4
- package/lib/cjs/components/FeedObject/FeedObject.d.ts +1 -0
- package/lib/cjs/components/FeedObject/FeedObject.js +17 -5
- package/lib/cjs/components/Group/Group.js +3 -2
- package/lib/cjs/components/GroupForm/GroupForm.js +3 -3
- package/lib/cjs/components/GroupHeader/GroupHeader.js +2 -2
- package/lib/cjs/components/PrivateMessageComponent/PrivateMessageComponent.d.ts +1 -1
- package/lib/cjs/components/PrivateMessageComponent/PrivateMessageComponent.js +10 -7
- package/lib/cjs/components/PrivateMessageSnippetItem/PrivateMessageSnippetItem.js +11 -6
- package/lib/cjs/components/PrivateMessageSnippets/PrivateMessageSnippets.d.ts +3 -3
- package/lib/cjs/components/PrivateMessageSnippets/PrivateMessageSnippets.js +19 -5
- package/lib/cjs/components/PrivateMessageThread/PrivateMessageThread.d.ts +6 -1
- package/lib/cjs/components/PrivateMessageThread/PrivateMessageThread.js +33 -16
- package/lib/esm/components/ChangeGroupPicture/ChangeGroupPicture.js +13 -10
- package/lib/esm/components/Composer/Composer.js +1 -1
- package/lib/esm/components/Composer/Layer/AudienceLayer/AudienceLayer.js +4 -4
- package/lib/esm/components/FeedObject/FeedObject.d.ts +1 -0
- package/lib/esm/components/FeedObject/FeedObject.js +18 -6
- package/lib/esm/components/Group/Group.js +3 -2
- package/lib/esm/components/GroupForm/GroupForm.js +3 -3
- package/lib/esm/components/GroupHeader/GroupHeader.js +2 -2
- package/lib/esm/components/PrivateMessageComponent/PrivateMessageComponent.d.ts +1 -1
- package/lib/esm/components/PrivateMessageComponent/PrivateMessageComponent.js +11 -8
- package/lib/esm/components/PrivateMessageSnippetItem/PrivateMessageSnippetItem.js +11 -6
- package/lib/esm/components/PrivateMessageSnippets/PrivateMessageSnippets.d.ts +3 -3
- package/lib/esm/components/PrivateMessageSnippets/PrivateMessageSnippets.js +21 -7
- package/lib/esm/components/PrivateMessageThread/PrivateMessageThread.d.ts +6 -1
- package/lib/esm/components/PrivateMessageThread/PrivateMessageThread.js +34 -17
- package/lib/umd/react-ui.js +1 -1
- package/package.json +6 -6
|
@@ -3,7 +3,7 @@ import React, { useCallback, useContext, useEffect, useMemo, useRef, useState }
|
|
|
3
3
|
import { styled } from '@mui/material/styles';
|
|
4
4
|
import { Endpoints, http, PrivateMessageService } from '@selfcommunity/api-services';
|
|
5
5
|
import { SCUserContext, UserUtils, useSCFetchUser } from '@selfcommunity/react-core';
|
|
6
|
-
import { SCNotificationTopicType, SCNotificationTypologyType, SCPrivateMessageStatusType } from '@selfcommunity/types';
|
|
6
|
+
import { SCNotificationTopicType, SCNotificationTypologyType, SCPrivateMessageStatusType, SCPrivateMessageType } from '@selfcommunity/types';
|
|
7
7
|
import PrivateMessageThreadItem, { PrivateMessageThreadItemSkeleton } from '../PrivateMessageThreadItem';
|
|
8
8
|
import PubSub from 'pubsub-js';
|
|
9
9
|
import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
|
|
@@ -93,7 +93,7 @@ export default function PrivateMessageThread(inProps) {
|
|
|
93
93
|
props: inProps,
|
|
94
94
|
name: PREFIX
|
|
95
95
|
});
|
|
96
|
-
const {
|
|
96
|
+
const { threadObj, openNewMessage = false, onNewMessageClose = null, onNewMessageSent = null, onSingleMessageOpen = null, className, type } = props, rest = __rest(props, ["threadObj", "openNewMessage", "onNewMessageClose", "onNewMessageSent", "onSingleMessageOpen", "className", "type"]);
|
|
97
97
|
// CONTEXT
|
|
98
98
|
const scUserContext = useContext(SCUserContext);
|
|
99
99
|
// STATE
|
|
@@ -104,7 +104,7 @@ export default function PrivateMessageThread(inProps) {
|
|
|
104
104
|
const [loading, setLoading] = useState(false);
|
|
105
105
|
const [isHovered, setIsHovered] = useState({});
|
|
106
106
|
const [followers, setFollowers] = useState([]);
|
|
107
|
-
const isNew =
|
|
107
|
+
const isNew = threadObj && threadObj === SCPrivateMessageStatusType.NEW;
|
|
108
108
|
const authUserId = scUserContext.user ? scUserContext.user.id : null;
|
|
109
109
|
const [singleMessageUser, setSingleMessageUser] = useState(null);
|
|
110
110
|
const [receiver, setReceiver] = useState(null);
|
|
@@ -113,7 +113,7 @@ export default function PrivateMessageThread(inProps) {
|
|
|
113
113
|
const [openDeleteMessageDialog, setOpenDeleteMessageDialog] = useState(false);
|
|
114
114
|
const [recipients, setRecipients] = useState([]);
|
|
115
115
|
const { enqueueSnackbar, closeSnackbar } = useSnackbar();
|
|
116
|
-
const isNumber = typeof
|
|
116
|
+
const isNumber = typeof threadObj === 'number';
|
|
117
117
|
const messageReceiver = (item, loggedUserId) => {
|
|
118
118
|
var _a, _b, _c;
|
|
119
119
|
return ((_a = item === null || item === void 0 ? void 0 : item.receiver) === null || _a === void 0 ? void 0 : _a.id) !== loggedUserId ? (_b = item === null || item === void 0 ? void 0 : item.receiver) === null || _b === void 0 ? void 0 : _b.id : (_c = item === null || item === void 0 ? void 0 : item.sender) === null || _c === void 0 ? void 0 : _c.id;
|
|
@@ -126,7 +126,7 @@ export default function PrivateMessageThread(inProps) {
|
|
|
126
126
|
// HOOKS
|
|
127
127
|
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
|
|
128
128
|
// @ts-ignore
|
|
129
|
-
const { scUser } = useSCFetchUser({ id:
|
|
129
|
+
const { scUser } = useSCFetchUser({ id: threadObj, threadObj });
|
|
130
130
|
const messagesEndRef = useRef(null);
|
|
131
131
|
const scrollToBottom = () => {
|
|
132
132
|
var _a;
|
|
@@ -254,9 +254,9 @@ export default function PrivateMessageThread(inProps) {
|
|
|
254
254
|
* Fetches thread
|
|
255
255
|
*/
|
|
256
256
|
function fetchThread() {
|
|
257
|
-
if (
|
|
257
|
+
if (threadObj && typeof threadObj !== 'string' && type !== SCPrivateMessageType.GROUP) {
|
|
258
258
|
setLoadingMessageObjs(true);
|
|
259
|
-
const _userObjId = isNumber ?
|
|
259
|
+
const _userObjId = isNumber ? threadObj : messageReceiver(threadObj, authUserId);
|
|
260
260
|
PrivateMessageService.getAThread({ user: _userObjId, limit: 10 })
|
|
261
261
|
.then((res) => {
|
|
262
262
|
setMessageObjs(res.results);
|
|
@@ -289,6 +289,19 @@ export default function PrivateMessageThread(inProps) {
|
|
|
289
289
|
Logger.error(SCOPE_SC_UI, { error });
|
|
290
290
|
});
|
|
291
291
|
}
|
|
292
|
+
else if (type === SCPrivateMessageType.GROUP) {
|
|
293
|
+
PrivateMessageService.getAThread({ group: isNumber ? threadObj : threadObj.group.id, limit: 10 })
|
|
294
|
+
.then((res) => {
|
|
295
|
+
setMessageObjs(res.results);
|
|
296
|
+
setPrevious(res.next && updateAndDeleteURLParameters(res.next, 'before_message', res.results[0].id, 'offset'));
|
|
297
|
+
setLoadingMessageObjs(false);
|
|
298
|
+
})
|
|
299
|
+
.catch((error) => {
|
|
300
|
+
setLoadingMessageObjs(false);
|
|
301
|
+
console.log(error);
|
|
302
|
+
Logger.error(SCOPE_SC_UI, { error });
|
|
303
|
+
});
|
|
304
|
+
}
|
|
292
305
|
}
|
|
293
306
|
const isNewerThan60Seconds = (creationTime) => {
|
|
294
307
|
const date = new Date(creationTime);
|
|
@@ -353,11 +366,15 @@ export default function PrivateMessageThread(inProps) {
|
|
|
353
366
|
.request({
|
|
354
367
|
url: Endpoints.SendMessage.url(),
|
|
355
368
|
method: Endpoints.SendMessage.method,
|
|
356
|
-
data: {
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
369
|
+
data: Object.assign(Object.assign({}, (type === SCPrivateMessageType.GROUP
|
|
370
|
+
? { group: isNumber ? threadObj : threadObj.group.id }
|
|
371
|
+
: {
|
|
372
|
+
recipients: openNewMessage || isNew || singleMessageThread
|
|
373
|
+
? ids
|
|
374
|
+
: [isNumber && threadObj ? threadObj : messageReceiver(threadObj, authUserId)]
|
|
375
|
+
})), {
|
|
376
|
+
// recipients: openNewMessage || isNew || singleMessageThread ? ids : [isNumber && threadObj ? threadObj : messageReceiver(threadObj, authUserId)],
|
|
377
|
+
message: message, file_uuid: file && !message ? file : null })
|
|
361
378
|
})
|
|
362
379
|
.then((res) => {
|
|
363
380
|
const isOne = res.data.length <= 1;
|
|
@@ -403,13 +420,13 @@ export default function PrivateMessageThread(inProps) {
|
|
|
403
420
|
if (!authUserId) {
|
|
404
421
|
return;
|
|
405
422
|
}
|
|
406
|
-
if (
|
|
423
|
+
if (threadObj) {
|
|
407
424
|
fetchThread();
|
|
408
425
|
}
|
|
409
426
|
else {
|
|
410
427
|
reset();
|
|
411
428
|
}
|
|
412
|
-
}, [
|
|
429
|
+
}, [threadObj, authUserId, scUser]);
|
|
413
430
|
/**
|
|
414
431
|
* Notification subscriber
|
|
415
432
|
*/
|
|
@@ -424,7 +441,7 @@ export default function PrivateMessageThread(inProps) {
|
|
|
424
441
|
if (index !== -1) {
|
|
425
442
|
setMessageObjs((prev) => [...prev, res.notification_obj.message]);
|
|
426
443
|
}
|
|
427
|
-
if (isNumber ?
|
|
444
|
+
if (isNumber ? threadObj === res.thread_id : threadObj.id === res.thread_id) {
|
|
428
445
|
scrollToBottom();
|
|
429
446
|
}
|
|
430
447
|
};
|
|
@@ -455,7 +472,7 @@ export default function PrivateMessageThread(inProps) {
|
|
|
455
472
|
onMouseEnter: () => handleMouseEnter(msg.id),
|
|
456
473
|
onMouseLeave: () => handleMouseLeave(msg.id)
|
|
457
474
|
}, isHovering: isHovered[msg.id], showMenuIcon: authUserId === msg.sender.id, onMenuIconClick: () => handleOpenDeleteMessageDialog(msg) }))))))))),
|
|
458
|
-
React.createElement(PrivateMessageEditor, { className: classes.editor, send: handleSend, autoHide: !(scUser === null || scUser === void 0 ? void 0 : scUser.can_send_pm_to), autoHideDeletion: (receiver === null || receiver === void 0 ? void 0 : receiver.deleted) || (scUser === null || scUser === void 0 ? void 0 : scUser.deleted), onThreadChangeId: isNumber ?
|
|
475
|
+
React.createElement(PrivateMessageEditor, { className: classes.editor, send: handleSend, autoHide: type === SCPrivateMessageType.USER && !(scUser === null || scUser === void 0 ? void 0 : scUser.can_send_pm_to), autoHideDeletion: type === SCPrivateMessageType.USER && ((receiver === null || receiver === void 0 ? void 0 : receiver.deleted) || (scUser === null || scUser === void 0 ? void 0 : scUser.deleted)), onThreadChangeId: isNumber ? threadObj : type === SCPrivateMessageType.USER ? threadObj.receiver.id : threadObj.group.id, error: error, onErrorRemove: () => setError(false) }),
|
|
459
476
|
openDeleteMessageDialog && (React.createElement(ConfirmDialog, { open: openDeleteMessageDialog, title: React.createElement(FormattedMessage, { id: "ui.privateMessage.component.delete.message.dialog.msg", defaultMessage: "ui.privateMessage.component.delete.message.dialog.msg" }), btnConfirm: React.createElement(FormattedMessage, { id: "ui.privateMessage.component.delete.message.dialog.confirm", defaultMessage: "ui.privateMessage.component.delete.message.dialog.confirm" }), onConfirm: handleDeleteMessage, onClose: handleCloseDeleteMessageDialog }))));
|
|
460
477
|
}
|
|
461
478
|
/**
|
|
@@ -483,5 +500,5 @@ export default function PrivateMessageThread(inProps) {
|
|
|
483
500
|
/**
|
|
484
501
|
* Renders the component
|
|
485
502
|
*/
|
|
486
|
-
return (React.createElement(Root, Object.assign({}, rest, { className: classNames(classes.root, className) }),
|
|
503
|
+
return (React.createElement(Root, Object.assign({}, rest, { className: classNames(classes.root, className) }), threadObj !== null && !isNew && !singleMessageThread ? renderThread() : renderNewOrNoMessageBox()));
|
|
487
504
|
}
|