@selfcommunity/react-ui 0.7.0-alpha.361 → 0.7.0-alpha.363

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.
@@ -90,7 +90,7 @@ function AccountDataPortability(inProps) {
90
90
  */
91
91
  const handleDownloadDataPortabilityFile = () => {
92
92
  setDownloadingDataPortability(true);
93
- api_services_1.DataPortabilityService.downloadDataPortability()
93
+ api_services_1.DataPortabilityService.downloadDataPortability({ timeout: 30 * 60 * 1000 })
94
94
  .then((res) => {
95
95
  const url = window.URL.createObjectURL(new Blob([res], { type: 'application/zip' }));
96
96
  const link = document.createElement('a');
@@ -1,4 +1,5 @@
1
1
  import { IconButtonProps } from '@mui/material';
2
+ import { SCUserType } from '@selfcommunity/types';
2
3
  export interface PrivateMessageSettingsIconButtonProps extends IconButtonProps {
3
4
  /**
4
5
  * Overrides or extends the styles applied to the component.
@@ -6,7 +7,7 @@ export interface PrivateMessageSettingsIconButtonProps extends IconButtonProps {
6
7
  */
7
8
  className?: string;
8
9
  /**
9
- * Handles callback on menu item click
10
+ * Handles callback on menu item delete click
10
11
  */
11
12
  onMenuItemDeleteClick?: () => void;
12
13
  /**
@@ -17,6 +18,10 @@ export interface PrivateMessageSettingsIconButtonProps extends IconButtonProps {
17
18
  * The deleting thread id
18
19
  */
19
20
  threadToDelete?: any;
21
+ /**
22
+ * The user receiver context
23
+ */
24
+ user?: SCUserType;
20
25
  /**
21
26
  * Any other properties
22
27
  */
@@ -8,6 +8,7 @@ const react_intl_1 = require("react-intl");
8
8
  const Icon_1 = tslib_1.__importDefault(require("@mui/material/Icon"));
9
9
  const classnames_1 = tslib_1.__importDefault(require("classnames"));
10
10
  const system_1 = require("@mui/system");
11
+ const react_core_1 = require("@selfcommunity/react-core");
11
12
  const ConfirmDialog_1 = tslib_1.__importDefault(require("../../shared/ConfirmDialog/ConfirmDialog"));
12
13
  const api_services_1 = require("@selfcommunity/api-services");
13
14
  const pubsub_js_1 = tslib_1.__importDefault(require("pubsub-js"));
@@ -62,13 +63,14 @@ function PrivateMessageSettingsIconButton(inProps) {
62
63
  props: inProps,
63
64
  name: PREFIX
64
65
  });
65
- const { className = null, onMenuItemDeleteClick, onItemDeleteConfirm, threadToDelete } = props, rest = tslib_1.__rest(props, ["className", "onMenuItemDeleteClick", "onItemDeleteConfirm", "threadToDelete"]);
66
+ const { className = null, onMenuItemDeleteClick, user, onItemDeleteConfirm, threadToDelete } = props, rest = tslib_1.__rest(props, ["className", "onMenuItemDeleteClick", "user", "onItemDeleteConfirm", "threadToDelete"]);
66
67
  // STATE
67
68
  const [anchorEl, setAnchorEl] = (0, react_1.useState)(null);
68
69
  const [openConfirmDialog, setOpenConfirmDialog] = (0, react_1.useState)(false);
69
70
  // HOOKS
70
71
  const theme = (0, material_1.useTheme)();
71
72
  const isMobile = (0, material_1.useMediaQuery)(theme.breakpoints.down('md'));
73
+ const scRoutingContext = (0, react_core_1.useSCRouting)();
72
74
  // HANDLERS
73
75
  const handleOpen = (event) => {
74
76
  setAnchorEl(event.currentTarget);
@@ -108,7 +110,11 @@ function PrivateMessageSettingsIconButton(inProps) {
108
110
  react_1.default.createElement(material_1.ListItem, { className: classes.item, key: "delete", onClick: threadToDelete ? handleOpenDialog : onMenuItemDeleteClick },
109
111
  react_1.default.createElement(material_1.ListItemIcon, null,
110
112
  react_1.default.createElement(Icon_1.default, { fontSize: "small" }, "delete")),
111
- react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.privateMessageSettingsIconButton.item.delete", defaultMessage: "ui.privateMessageSettingsIconButton.item.delete" }))
113
+ react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.privateMessageSettingsIconButton.item.delete", defaultMessage: "ui.privateMessageSettingsIconButton.item.delete" })),
114
+ react_1.default.createElement(material_1.ListItem, { className: classes.item, key: "profile", component: react_core_1.Link, to: scRoutingContext.url(react_core_1.SCRoutes.USER_PROFILE_ROUTE_NAME, user) },
115
+ react_1.default.createElement(material_1.ListItemIcon, null,
116
+ react_1.default.createElement(Icon_1.default, { fontSize: "small" }, "people_alt")),
117
+ react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.privateMessageSettingsIconButton.item.profile", defaultMessage: "ui.privateMessageSettingsIconButton.item.profile" }))
112
118
  ];
113
119
  }
114
120
  else {
@@ -116,7 +122,11 @@ function PrivateMessageSettingsIconButton(inProps) {
116
122
  react_1.default.createElement(material_1.MenuItem, { className: classes.item, onClick: threadToDelete ? handleOpenDialog : onMenuItemDeleteClick, key: "delete" },
117
123
  react_1.default.createElement(material_1.ListItemIcon, null,
118
124
  react_1.default.createElement(Icon_1.default, { fontSize: "small" }, "delete")),
119
- react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.privateMessageSettingsIconButton.item.delete", defaultMessage: "ui.privateMessageSettingsIconButton.item.delete" }))
125
+ react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.privateMessageSettingsIconButton.item.delete", defaultMessage: "ui.privateMessageSettingsIconButton.item.delete" })),
126
+ react_1.default.createElement(material_1.MenuItem, { className: classes.item, component: react_core_1.Link, to: scRoutingContext.url(react_core_1.SCRoutes.USER_PROFILE_ROUTE_NAME, user), key: "profile" },
127
+ react_1.default.createElement(material_1.ListItemIcon, null,
128
+ react_1.default.createElement(Icon_1.default, { fontSize: "small" }, "people_alt")),
129
+ react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.privateMessageSettingsIconButton.item.profile", defaultMessage: "ui.privateMessageSettingsIconButton.item.profile" }))
120
130
  ];
121
131
  }
122
132
  };
@@ -94,9 +94,12 @@ function PrivateMessageSnippets(inProps) {
94
94
  }
95
95
  return el.receiver.username.includes(search.toLowerCase());
96
96
  });
97
- const messageReceiver = (item, loggedUserId) => {
98
- var _a, _b, _c;
99
- 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;
97
+ const messageReceiver = (item, loggedUserId, obj) => {
98
+ var _a, _b, _c, _d;
99
+ if (obj) {
100
+ return ((_a = item === null || item === void 0 ? void 0 : item.receiver) === null || _a === void 0 ? void 0 : _a.id) !== loggedUserId ? item === null || item === void 0 ? void 0 : item.receiver : item === null || item === void 0 ? void 0 : item.sender;
101
+ }
102
+ return ((_b = item === null || item === void 0 ? void 0 : item.receiver) === null || _b === void 0 ? void 0 : _b.id) !== loggedUserId ? (_c = item === null || item === void 0 ? void 0 : item.receiver) === null || _c === void 0 ? void 0 : _c.id : (_d = item === null || item === void 0 ? void 0 : item.sender) === null || _d === void 0 ? void 0 : _d.id;
100
103
  };
101
104
  //HANDLERS
102
105
  const handleChange = (event) => {
@@ -218,7 +221,7 @@ function PrivateMessageSnippets(inProps) {
218
221
  } }),
219
222
  react_1.default.createElement(material_1.List, null, filteredSnippets.map((message) => (react_1.default.createElement(PrivateMessageSnippetItem_1.default, { message: message, key: message.id, onItemClick: () => handleOpenThread(message), secondaryAction: react_1.default.createElement(react_1.default.Fragment, null,
220
223
  message.thread_status === types_1.SCPrivateMessageStatusType.NEW && (react_1.default.createElement(material_1.Icon, { fontSize: "small", color: "secondary" }, "fiber_manual_record")),
221
- !isMobile && (react_1.default.createElement(PrivateMessageSettingsIconButton_1.default, { threadToDelete: messageReceiver(message, authUserId), onItemDeleteConfirm: () => handleDeleteConversation(messageReceiver(message, authUserId)) }))), selected: userObj !== types_1.SCPrivateMessageStatusType.NEW &&
224
+ !isMobile && (react_1.default.createElement(PrivateMessageSettingsIconButton_1.default, { threadToDelete: messageReceiver(message, authUserId), onItemDeleteConfirm: () => handleDeleteConversation(messageReceiver(message, authUserId)), user: messageReceiver(message, authUserId, true) }))), selected: userObj !== types_1.SCPrivateMessageStatusType.NEW &&
222
225
  messageReceiver(message, authUserId) === (isObj ? messageReceiver(userObj, authUserId) : userObj) })))))))));
223
226
  }
224
227
  exports.default = PrivateMessageSnippets;
@@ -88,7 +88,7 @@ export default function AccountDataPortability(inProps) {
88
88
  */
89
89
  const handleDownloadDataPortabilityFile = () => {
90
90
  setDownloadingDataPortability(true);
91
- DataPortabilityService.downloadDataPortability()
91
+ DataPortabilityService.downloadDataPortability({ timeout: 30 * 60 * 1000 })
92
92
  .then((res) => {
93
93
  const url = window.URL.createObjectURL(new Blob([res], { type: 'application/zip' }));
94
94
  const link = document.createElement('a');
@@ -1,4 +1,5 @@
1
1
  import { IconButtonProps } from '@mui/material';
2
+ import { SCUserType } from '@selfcommunity/types';
2
3
  export interface PrivateMessageSettingsIconButtonProps extends IconButtonProps {
3
4
  /**
4
5
  * Overrides or extends the styles applied to the component.
@@ -6,7 +7,7 @@ export interface PrivateMessageSettingsIconButtonProps extends IconButtonProps {
6
7
  */
7
8
  className?: string;
8
9
  /**
9
- * Handles callback on menu item click
10
+ * Handles callback on menu item delete click
10
11
  */
11
12
  onMenuItemDeleteClick?: () => void;
12
13
  /**
@@ -17,6 +18,10 @@ export interface PrivateMessageSettingsIconButtonProps extends IconButtonProps {
17
18
  * The deleting thread id
18
19
  */
19
20
  threadToDelete?: any;
21
+ /**
22
+ * The user receiver context
23
+ */
24
+ user?: SCUserType;
20
25
  /**
21
26
  * Any other properties
22
27
  */
@@ -6,6 +6,7 @@ import { FormattedMessage } from 'react-intl';
6
6
  import Icon from '@mui/material/Icon';
7
7
  import classNames from 'classnames';
8
8
  import { useThemeProps } from '@mui/system';
9
+ import { Link, SCRoutes, useSCRouting } from '@selfcommunity/react-core';
9
10
  import ConfirmDialog from '../../shared/ConfirmDialog/ConfirmDialog';
10
11
  import { PrivateMessageService } from '@selfcommunity/api-services';
11
12
  import PubSub from 'pubsub-js';
@@ -60,13 +61,14 @@ export default function PrivateMessageSettingsIconButton(inProps) {
60
61
  props: inProps,
61
62
  name: PREFIX
62
63
  });
63
- const { className = null, onMenuItemDeleteClick, onItemDeleteConfirm, threadToDelete } = props, rest = __rest(props, ["className", "onMenuItemDeleteClick", "onItemDeleteConfirm", "threadToDelete"]);
64
+ const { className = null, onMenuItemDeleteClick, user, onItemDeleteConfirm, threadToDelete } = props, rest = __rest(props, ["className", "onMenuItemDeleteClick", "user", "onItemDeleteConfirm", "threadToDelete"]);
64
65
  // STATE
65
66
  const [anchorEl, setAnchorEl] = useState(null);
66
67
  const [openConfirmDialog, setOpenConfirmDialog] = useState(false);
67
68
  // HOOKS
68
69
  const theme = useTheme();
69
70
  const isMobile = useMediaQuery(theme.breakpoints.down('md'));
71
+ const scRoutingContext = useSCRouting();
70
72
  // HANDLERS
71
73
  const handleOpen = (event) => {
72
74
  setAnchorEl(event.currentTarget);
@@ -106,7 +108,11 @@ export default function PrivateMessageSettingsIconButton(inProps) {
106
108
  React.createElement(ListItem, { className: classes.item, key: "delete", onClick: threadToDelete ? handleOpenDialog : onMenuItemDeleteClick },
107
109
  React.createElement(ListItemIcon, null,
108
110
  React.createElement(Icon, { fontSize: "small" }, "delete")),
109
- React.createElement(FormattedMessage, { id: "ui.privateMessageSettingsIconButton.item.delete", defaultMessage: "ui.privateMessageSettingsIconButton.item.delete" }))
111
+ React.createElement(FormattedMessage, { id: "ui.privateMessageSettingsIconButton.item.delete", defaultMessage: "ui.privateMessageSettingsIconButton.item.delete" })),
112
+ React.createElement(ListItem, { className: classes.item, key: "profile", component: Link, to: scRoutingContext.url(SCRoutes.USER_PROFILE_ROUTE_NAME, user) },
113
+ React.createElement(ListItemIcon, null,
114
+ React.createElement(Icon, { fontSize: "small" }, "people_alt")),
115
+ React.createElement(FormattedMessage, { id: "ui.privateMessageSettingsIconButton.item.profile", defaultMessage: "ui.privateMessageSettingsIconButton.item.profile" }))
110
116
  ];
111
117
  }
112
118
  else {
@@ -114,7 +120,11 @@ export default function PrivateMessageSettingsIconButton(inProps) {
114
120
  React.createElement(MenuItem, { className: classes.item, onClick: threadToDelete ? handleOpenDialog : onMenuItemDeleteClick, key: "delete" },
115
121
  React.createElement(ListItemIcon, null,
116
122
  React.createElement(Icon, { fontSize: "small" }, "delete")),
117
- React.createElement(FormattedMessage, { id: "ui.privateMessageSettingsIconButton.item.delete", defaultMessage: "ui.privateMessageSettingsIconButton.item.delete" }))
123
+ React.createElement(FormattedMessage, { id: "ui.privateMessageSettingsIconButton.item.delete", defaultMessage: "ui.privateMessageSettingsIconButton.item.delete" })),
124
+ React.createElement(MenuItem, { className: classes.item, component: Link, to: scRoutingContext.url(SCRoutes.USER_PROFILE_ROUTE_NAME, user), key: "profile" },
125
+ React.createElement(ListItemIcon, null,
126
+ React.createElement(Icon, { fontSize: "small" }, "people_alt")),
127
+ React.createElement(FormattedMessage, { id: "ui.privateMessageSettingsIconButton.item.profile", defaultMessage: "ui.privateMessageSettingsIconButton.item.profile" }))
118
128
  ];
119
129
  }
120
130
  };
@@ -92,9 +92,12 @@ export default function PrivateMessageSnippets(inProps) {
92
92
  }
93
93
  return el.receiver.username.includes(search.toLowerCase());
94
94
  });
95
- const messageReceiver = (item, loggedUserId) => {
96
- var _a, _b, _c;
97
- 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;
95
+ const messageReceiver = (item, loggedUserId, obj) => {
96
+ var _a, _b, _c, _d;
97
+ if (obj) {
98
+ return ((_a = item === null || item === void 0 ? void 0 : item.receiver) === null || _a === void 0 ? void 0 : _a.id) !== loggedUserId ? item === null || item === void 0 ? void 0 : item.receiver : item === null || item === void 0 ? void 0 : item.sender;
99
+ }
100
+ return ((_b = item === null || item === void 0 ? void 0 : item.receiver) === null || _b === void 0 ? void 0 : _b.id) !== loggedUserId ? (_c = item === null || item === void 0 ? void 0 : item.receiver) === null || _c === void 0 ? void 0 : _c.id : (_d = item === null || item === void 0 ? void 0 : item.sender) === null || _d === void 0 ? void 0 : _d.id;
98
101
  };
99
102
  //HANDLERS
100
103
  const handleChange = (event) => {
@@ -216,6 +219,6 @@ export default function PrivateMessageSnippets(inProps) {
216
219
  } }),
217
220
  React.createElement(List, null, filteredSnippets.map((message) => (React.createElement(PrivateMessageSnippetItem, { message: message, key: message.id, onItemClick: () => handleOpenThread(message), secondaryAction: React.createElement(React.Fragment, null,
218
221
  message.thread_status === SCPrivateMessageStatusType.NEW && (React.createElement(Icon, { fontSize: "small", color: "secondary" }, "fiber_manual_record")),
219
- !isMobile && (React.createElement(PrivateMessageSettingsIconButton, { threadToDelete: messageReceiver(message, authUserId), onItemDeleteConfirm: () => handleDeleteConversation(messageReceiver(message, authUserId)) }))), selected: userObj !== SCPrivateMessageStatusType.NEW &&
222
+ !isMobile && (React.createElement(PrivateMessageSettingsIconButton, { threadToDelete: messageReceiver(message, authUserId), onItemDeleteConfirm: () => handleDeleteConversation(messageReceiver(message, authUserId)), user: messageReceiver(message, authUserId, true) }))), selected: userObj !== SCPrivateMessageStatusType.NEW &&
220
223
  messageReceiver(message, authUserId) === (isObj ? messageReceiver(userObj, authUserId) : userObj) })))))))));
221
224
  }