@selfcommunity/react-ui 0.7.9-alpha.19 → 0.7.9-alpha.20

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.
@@ -16,7 +16,7 @@ const Root = (0, styles_1.styled)(material_1.Box, {
16
16
  slot: 'AttributesRoot'
17
17
  })(() => ({}));
18
18
  exports.default = (props) => {
19
- var _a, _b;
19
+ var _a, _b, _c;
20
20
  // PROPS
21
21
  const { className = null, value = null, onChange = null, onClick = null } = props;
22
22
  // HANDLERS
@@ -47,8 +47,8 @@ exports.default = (props) => {
47
47
  return (react_1.default.createElement(Root, { className: (0, classnames_1.default)(classes.root, className) },
48
48
  ((_a = value === null || value === void 0 ? void 0 : value.categories) === null || _a === void 0 ? void 0 : _a.length) > 0 &&
49
49
  (value === null || value === void 0 ? void 0 : value.categories.map((c) => (react_1.default.createElement(material_1.Chip, { key: c.id, label: c.name, onDelete: handleDeleteCategory(c.id), icon: react_1.default.createElement(Icon_1.default, null, "category"), onClick: handleClickCategory })))),
50
- (value === null || value === void 0 ? void 0 : value.group) && (react_1.default.createElement(material_1.Chip, { key: value === null || value === void 0 ? void 0 : value.group.id, label: value === null || value === void 0 ? void 0 : value.group.name, onDelete: handleDeleteGroup, icon: react_1.default.createElement(Icon_1.default, null, "groups"), onClick: handleClickGroup })),
51
- ((_b = value === null || value === void 0 ? void 0 : value.addressing) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
50
+ (value === null || value === void 0 ? void 0 : value.group) && (react_1.default.createElement(material_1.Chip, { key: value === null || value === void 0 ? void 0 : value.group.id, label: value === null || value === void 0 ? void 0 : value.group.name, onDelete: handleDeleteGroup, icon: react_1.default.createElement(Icon_1.default, null, "groups"), onClick: handleClickGroup, disabled: !((_b = value === null || value === void 0 ? void 0 : value.group) === null || _b === void 0 ? void 0 : _b.subscription_status) })),
51
+ ((_c = value === null || value === void 0 ? void 0 : value.addressing) === null || _c === void 0 ? void 0 : _c.length) > 0 &&
52
52
  (value === null || value === void 0 ? void 0 : value.addressing.map((t) => (react_1.default.createElement(TagChip_1.default, { key: t.id, tag: t, onDelete: handleDeleteTag(t.id), icon: react_1.default.createElement(Icon_1.default, null, "label"), onClick: handleClickTag })))),
53
53
  (value === null || value === void 0 ? void 0 : value.location) && (react_1.default.createElement(material_1.Chip, { icon: react_1.default.createElement(Icon_1.default, null, "add_location_alt"), label: value === null || value === void 0 ? void 0 : value.location.location, onDelete: handleDeleteLocation, onClick: handleClickLocation }))));
54
54
  };
@@ -42,6 +42,10 @@ const messages = (0, react_intl_1.defineMessages)({
42
42
  visibleToAll: {
43
43
  id: 'ui.feedObject.visibleToAll',
44
44
  defaultMessage: 'ui.feedObject.visibleToAll'
45
+ },
46
+ visibleToGroup: {
47
+ id: 'ui.feedObject.visibleToGroup',
48
+ defaultMessage: 'ui.feedObject.visibleToGroup'
45
49
  }
46
50
  });
47
51
  const classes = {
@@ -446,7 +450,8 @@ function FeedObject(inProps) {
446
450
  react_1.default.createElement(Icon_1.default, null, "add_location_alt"), (_a = obj.location) === null || _a === void 0 ? void 0 :
447
451
  _a.location))),
448
452
  react_1.default.createElement(Bullet_1.default, null),
449
- react_1.default.createElement(material_1.Box, { className: classes.tag }, obj.addressing.length > 0 ? (react_1.default.createElement(Tags_1.default, { tags: obj.addressing, TagChipProps: { disposable: false, clickable: false } })) : (react_1.default.createElement(material_1.Tooltip, { title: `${intl.formatMessage(messages.visibleToAll)}` },
453
+ react_1.default.createElement(material_1.Box, { className: classes.tag }, obj.addressing.length > 0 ? (react_1.default.createElement(Tags_1.default, { tags: obj.addressing, TagChipProps: { disposable: false, clickable: false } })) : obj.group ? (react_1.default.createElement(material_1.Tooltip, { title: `${intl.formatMessage(messages.visibleToGroup, { group: obj.group.name })}` },
454
+ react_1.default.createElement(Icon_1.default, { color: "disabled", fontSize: "small" }, "groups"))) : (react_1.default.createElement(material_1.Tooltip, { title: `${intl.formatMessage(messages.visibleToAll)}` },
450
455
  react_1.default.createElement(Icon_1.default, { color: "disabled", fontSize: "small" }, "public"))))), action: renderHeaderAction() }),
451
456
  react_1.default.createElement(CardContent_1.default, { classes: { root: classes.content } },
452
457
  react_1.default.createElement(material_1.Box, { className: classes.titleSection }, 'title' in obj && (react_1.default.createElement(react_1.default.Fragment, null, template === feedObject_1.SCFeedObjectTemplateType.DETAIL ? (react_1.default.createElement(material_1.Typography, { variant: "body1", gutterBottom: true, className: classes.title }, obj.title)) : (react_1.default.createElement(react_core_1.Link, { to: scRoutingContext.url((0, contribution_1.getContributionRouteName)(obj), (0, contribution_1.getRouteData)(obj)) },
@@ -87,10 +87,14 @@ function PrivateMessageSnippets(inProps) {
87
87
  const refreshSubscription = (0, react_1.useRef)(null);
88
88
  // CONST
89
89
  const filteredSnippets = data.snippets.filter((el) => {
90
+ var _a;
90
91
  if (search === '') {
91
92
  return el;
92
93
  }
93
- else if (el.receiver.id === authUserId) {
94
+ else if (el.group) {
95
+ return el.group.slug.includes(search.toLowerCase());
96
+ }
97
+ else if (((_a = el === null || el === void 0 ? void 0 : el.receiver) === null || _a === void 0 ? void 0 : _a.id) === authUserId) {
94
98
  return el.sender.username.includes(search.toLowerCase());
95
99
  }
96
100
  return el.receiver.username.includes(search.toLowerCase());
@@ -43,6 +43,8 @@ const classes = {
43
43
  newMessageContent: `${constants_1.PREFIX}-new-message-content`,
44
44
  sender: `${constants_1.PREFIX}-sender`,
45
45
  receiver: `${constants_1.PREFIX}-receiver`,
46
+ avatar: `${constants_1.PREFIX}-avatar`,
47
+ item: `${constants_1.PREFIX}-item`,
46
48
  autocomplete: `${constants_1.PREFIX}-autocomplete`,
47
49
  autocompleteDialog: `${constants_1.PREFIX}-autocomplete-dialog`,
48
50
  editor: `${constants_1.PREFIX}-editor`
@@ -470,10 +472,16 @@ function PrivateMessageThread(inProps) {
470
472
  react_1.default.createElement("ul", null,
471
473
  react_1.default.createElement(material_1.ListSubheader, null,
472
474
  react_1.default.createElement(material_1.Typography, { align: "center", className: classes.subHeader }, key)),
473
- formattedMessages[key].map((msg) => (react_1.default.createElement(PrivateMessageThreadItem_1.default, { className: authUserId === msg.sender.id ? classes.sender : classes.receiver, message: msg, key: msg.id, mouseEvents: {
474
- onMouseEnter: () => handleMouseEnter(msg.id),
475
- onMouseLeave: () => handleMouseLeave(msg.id)
476
- }, isHovering: isHovered[msg.id], showMenuIcon: authUserId === msg.sender.id, onMenuIconClick: () => handleOpenDeleteMessageDialog(msg) }))))))))),
475
+ formattedMessages[key].map((msg) => {
476
+ var _a;
477
+ return (react_1.default.createElement(material_1.Box, { className: classes.item, key: msg.id },
478
+ msg.group && ((_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.username) !== msg.sender.username && (react_1.default.createElement(material_1.ListItemAvatar, null,
479
+ react_1.default.createElement(material_1.Avatar, { alt: msg.sender.username, src: msg.sender.avatar, className: classes.avatar }))),
480
+ react_1.default.createElement(PrivateMessageThreadItem_1.default, { className: authUserId === msg.sender.id ? classes.sender : classes.receiver, message: msg, key: msg.id, mouseEvents: {
481
+ onMouseEnter: () => handleMouseEnter(msg.id),
482
+ onMouseLeave: () => handleMouseLeave(msg.id)
483
+ }, isHovering: isHovered[msg.id], showMenuIcon: authUserId === msg.sender.id, onMenuIconClick: () => handleOpenDeleteMessageDialog(msg) })));
484
+ }))))))),
477
485
  react_1.default.createElement(PrivateMessageEditor_1.default, { className: classes.editor, send: handleSend, autoHide: type === types_1.SCPrivateMessageType.USER && !(scUser === null || scUser === void 0 ? void 0 : scUser.can_send_pm_to), autoHideDeletion: type === types_1.SCPrivateMessageType.USER && ((receiver === null || receiver === void 0 ? void 0 : receiver.deleted) || (scUser === null || scUser === void 0 ? void 0 : scUser.deleted)), onThreadChangeId: isNumber ? threadObj : type === types_1.SCPrivateMessageType.USER ? threadObj.receiver.id : threadObj.group.id, error: error, onErrorRemove: () => setError(false) }),
478
486
  openDeleteMessageDialog && (react_1.default.createElement(ConfirmDialog_1.default, { open: openDeleteMessageDialog, title: react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.privateMessage.component.delete.message.dialog.msg", defaultMessage: "ui.privateMessage.component.delete.message.dialog.msg" }), btnConfirm: react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.privateMessage.component.delete.message.dialog.confirm", defaultMessage: "ui.privateMessage.component.delete.message.dialog.confirm" }), onConfirm: handleDeleteMessage, onClose: handleCloseDeleteMessageDialog }))));
479
487
  }
@@ -13,7 +13,7 @@ const Root = styled(Box, {
13
13
  slot: 'AttributesRoot'
14
14
  })(() => ({}));
15
15
  export default (props) => {
16
- var _a, _b;
16
+ var _a, _b, _c;
17
17
  // PROPS
18
18
  const { className = null, value = null, onChange = null, onClick = null } = props;
19
19
  // HANDLERS
@@ -44,8 +44,8 @@ export default (props) => {
44
44
  return (React.createElement(Root, { className: classNames(classes.root, className) },
45
45
  ((_a = value === null || value === void 0 ? void 0 : value.categories) === null || _a === void 0 ? void 0 : _a.length) > 0 &&
46
46
  (value === null || value === void 0 ? void 0 : value.categories.map((c) => (React.createElement(Chip, { key: c.id, label: c.name, onDelete: handleDeleteCategory(c.id), icon: React.createElement(Icon, null, "category"), onClick: handleClickCategory })))),
47
- (value === null || value === void 0 ? void 0 : value.group) && (React.createElement(Chip, { key: value === null || value === void 0 ? void 0 : value.group.id, label: value === null || value === void 0 ? void 0 : value.group.name, onDelete: handleDeleteGroup, icon: React.createElement(Icon, null, "groups"), onClick: handleClickGroup })),
48
- ((_b = value === null || value === void 0 ? void 0 : value.addressing) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
47
+ (value === null || value === void 0 ? void 0 : value.group) && (React.createElement(Chip, { key: value === null || value === void 0 ? void 0 : value.group.id, label: value === null || value === void 0 ? void 0 : value.group.name, onDelete: handleDeleteGroup, icon: React.createElement(Icon, null, "groups"), onClick: handleClickGroup, disabled: !((_b = value === null || value === void 0 ? void 0 : value.group) === null || _b === void 0 ? void 0 : _b.subscription_status) })),
48
+ ((_c = value === null || value === void 0 ? void 0 : value.addressing) === null || _c === void 0 ? void 0 : _c.length) > 0 &&
49
49
  (value === null || value === void 0 ? void 0 : value.addressing.map((t) => (React.createElement(TagChip, { key: t.id, tag: t, onDelete: handleDeleteTag(t.id), icon: React.createElement(Icon, null, "label"), onClick: handleClickTag })))),
50
50
  (value === null || value === void 0 ? void 0 : value.location) && (React.createElement(Chip, { icon: React.createElement(Icon, null, "add_location_alt"), label: value === null || value === void 0 ? void 0 : value.location.location, onDelete: handleDeleteLocation, onClick: handleClickLocation }))));
51
51
  };
@@ -40,6 +40,10 @@ const messages = defineMessages({
40
40
  visibleToAll: {
41
41
  id: 'ui.feedObject.visibleToAll',
42
42
  defaultMessage: 'ui.feedObject.visibleToAll'
43
+ },
44
+ visibleToGroup: {
45
+ id: 'ui.feedObject.visibleToGroup',
46
+ defaultMessage: 'ui.feedObject.visibleToGroup'
43
47
  }
44
48
  });
45
49
  const classes = {
@@ -444,7 +448,8 @@ export default function FeedObject(inProps) {
444
448
  React.createElement(Icon, null, "add_location_alt"), (_a = obj.location) === null || _a === void 0 ? void 0 :
445
449
  _a.location))),
446
450
  React.createElement(Bullet, null),
447
- React.createElement(Box, { className: classes.tag }, obj.addressing.length > 0 ? (React.createElement(Tags, { tags: obj.addressing, TagChipProps: { disposable: false, clickable: false } })) : (React.createElement(Tooltip, { title: `${intl.formatMessage(messages.visibleToAll)}` },
451
+ React.createElement(Box, { className: classes.tag }, obj.addressing.length > 0 ? (React.createElement(Tags, { tags: obj.addressing, TagChipProps: { disposable: false, clickable: false } })) : obj.group ? (React.createElement(Tooltip, { title: `${intl.formatMessage(messages.visibleToGroup, { group: obj.group.name })}` },
452
+ React.createElement(Icon, { color: "disabled", fontSize: "small" }, "groups"))) : (React.createElement(Tooltip, { title: `${intl.formatMessage(messages.visibleToAll)}` },
448
453
  React.createElement(Icon, { color: "disabled", fontSize: "small" }, "public"))))), action: renderHeaderAction() }),
449
454
  React.createElement(CardContent, { classes: { root: classes.content } },
450
455
  React.createElement(Box, { className: classes.titleSection }, 'title' in obj && (React.createElement(React.Fragment, null, template === SCFeedObjectTemplateType.DETAIL ? (React.createElement(Typography, { variant: "body1", gutterBottom: true, className: classes.title }, obj.title)) : (React.createElement(Link, { to: scRoutingContext.url(getContributionRouteName(obj), getRouteData(obj)) },
@@ -85,10 +85,14 @@ export default function PrivateMessageSnippets(inProps) {
85
85
  const refreshSubscription = useRef(null);
86
86
  // CONST
87
87
  const filteredSnippets = data.snippets.filter((el) => {
88
+ var _a;
88
89
  if (search === '') {
89
90
  return el;
90
91
  }
91
- else if (el.receiver.id === authUserId) {
92
+ else if (el.group) {
93
+ return el.group.slug.includes(search.toLowerCase());
94
+ }
95
+ else if (((_a = el === null || el === void 0 ? void 0 : el.receiver) === null || _a === void 0 ? void 0 : _a.id) === authUserId) {
92
96
  return el.sender.username.includes(search.toLowerCase());
93
97
  }
94
98
  return el.receiver.username.includes(search.toLowerCase());
@@ -7,7 +7,7 @@ import { SCNotificationTopicType, SCNotificationTypologyType, SCPrivateMessageSt
7
7
  import PrivateMessageThreadItem, { PrivateMessageThreadItemSkeleton } from '../PrivateMessageThreadItem';
8
8
  import PubSub from 'pubsub-js';
9
9
  import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
10
- import { Box, Card, CardContent, IconButton, List, ListSubheader, TextField, Typography } from '@mui/material';
10
+ import { Avatar, Box, Card, CardContent, IconButton, List, ListItemAvatar, ListSubheader, TextField, Typography } from '@mui/material';
11
11
  import PrivateMessageEditor from '../PrivateMessageEditor';
12
12
  import Autocomplete from '@mui/material/Autocomplete';
13
13
  import classNames from 'classnames';
@@ -41,6 +41,8 @@ const classes = {
41
41
  newMessageContent: `${PREFIX}-new-message-content`,
42
42
  sender: `${PREFIX}-sender`,
43
43
  receiver: `${PREFIX}-receiver`,
44
+ avatar: `${PREFIX}-avatar`,
45
+ item: `${PREFIX}-item`,
44
46
  autocomplete: `${PREFIX}-autocomplete`,
45
47
  autocompleteDialog: `${PREFIX}-autocomplete-dialog`,
46
48
  editor: `${PREFIX}-editor`
@@ -468,10 +470,16 @@ export default function PrivateMessageThread(inProps) {
468
470
  React.createElement("ul", null,
469
471
  React.createElement(ListSubheader, null,
470
472
  React.createElement(Typography, { align: "center", className: classes.subHeader }, key)),
471
- formattedMessages[key].map((msg) => (React.createElement(PrivateMessageThreadItem, { className: authUserId === msg.sender.id ? classes.sender : classes.receiver, message: msg, key: msg.id, mouseEvents: {
472
- onMouseEnter: () => handleMouseEnter(msg.id),
473
- onMouseLeave: () => handleMouseLeave(msg.id)
474
- }, isHovering: isHovered[msg.id], showMenuIcon: authUserId === msg.sender.id, onMenuIconClick: () => handleOpenDeleteMessageDialog(msg) }))))))))),
473
+ formattedMessages[key].map((msg) => {
474
+ var _a;
475
+ return (React.createElement(Box, { className: classes.item, key: msg.id },
476
+ msg.group && ((_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.username) !== msg.sender.username && (React.createElement(ListItemAvatar, null,
477
+ React.createElement(Avatar, { alt: msg.sender.username, src: msg.sender.avatar, className: classes.avatar }))),
478
+ React.createElement(PrivateMessageThreadItem, { className: authUserId === msg.sender.id ? classes.sender : classes.receiver, message: msg, key: msg.id, mouseEvents: {
479
+ onMouseEnter: () => handleMouseEnter(msg.id),
480
+ onMouseLeave: () => handleMouseLeave(msg.id)
481
+ }, isHovering: isHovered[msg.id], showMenuIcon: authUserId === msg.sender.id, onMenuIconClick: () => handleOpenDeleteMessageDialog(msg) })));
482
+ }))))))),
475
483
  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) }),
476
484
  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 }))));
477
485
  }